balgor
Goto Top

Crystal Reports - Umsätze Monatsweise ausgeben

Hallo,

ich habe mal wieder eine Frage bzgl. Crystal Reports, ich finde entweder nicht das richtige oder ich bin nicht in der Lage das gefundene umzusetzen.

Ich habe eine relativ simple Abfrage gebaut mit der ich Umsätze nach Lieferanten unterteilt für einen gewissen Zeitraum angezeigt bekomme.
Den Zeitraum hatte ich ganz einfach als Parameterfeld zum auswählen erstellt. z.B. 01.01.2022 bis 30.06.2022.
Soweit funktioniert auch alles ganz gut...
Jetzt hatte ich beim verfeinern des ganzen den Zeitraum fix definiert vom Anfang des aktuellen Jahres bis Ende des aktuellen Jahres
auch bis hierhin kein Problem...
Danach wollte ich gerne Spalten für die einzelnen Monate einbauen, also für Umsätze/Januar, Umsätze/Februar, etc.
und hier habe ich ein Problem.

Wie kann ich in einer Formel sagen "Umsätze auswählen, wenn Zeitraum 01.01.2022-31.01.2022", "Umsätze auswählen, wenn Zeitraum 01.02.2022-28.02.2022", etc.
ich hoffe ich konnte meine Frage verständlich machen?

Muss ich das ganze schon bei der Datensatzauswahl definieren? Oder ziehe ich mir erstmal alle Daten und teile diese dann in einer Formel im Nachgang?
Ich habe schon so viel probiert, aber komme irgendwie kein stück weiter.

Vielen Dank für die Hilfe!

Content-Key: 3268054760

Url: https://administrator.de/contentid/3268054760

Printed on: February 23, 2024 at 19:02 o'clock

Member: SachsenHessi
SachsenHessi Jul 06, 2022 at 14:30:42 (UTC)
Goto Top
Hallo,

SELECT, GROUP BY, HAVING sollte Problem lösen.
Beispiel: https://www.datenbanken-verstehen.de/sql-tutorial/sql-having-befehl/

LG
SH
Member: Balgor
Balgor Jul 06, 2022 at 15:00:07 (UTC)
Goto Top
Hallo,

danke für den Lösungsansatz!
Leider stehen mir keine SQL-Befehle zur Verfügung.
Manche Decken sich mit SQL, funktionieren aber oft anders.

Habe ich etwas übersehen und kann ich SQL-Befehle irgendwie "aktivieren"?
Diesbezüglich habe ich leider keine Erfahrung.

Mfg
Member: Balgor
Balgor Jul 07, 2022 at 10:25:44 (UTC)
Goto Top
Hallo,

ich bin jetzt mit einem anderen Lösungsansatz rangegangen - ein Unterbericht für jeden Monat.
Das ist zwar ziemlich aufwendig, aber zumindest soweit funktionstüchtig.

Dabei bin ich aber auf ein ganz anderes Problem gestoßen. Ich habe in den Unterberichten nach Artikel gruppiert und errechne dann im Gruppenfuß eine Summe des Netto-Preises. Das hat auch soweit wunderbar funktioniert, solang von jedem Artikel mindestens 1 Exemplar verkauft wurde, erst als ich bei Juli angekommen war war mir das unten stehende Problem aufgefallen. Da der Juli noch recht Frisch ist, ist natürlich noch nicht jeder der Artikel verkauft worden.
So soll mir Crystal Reports das ganze darstellen:
         | Januar | Februar | März | etc.
Artikel 1|    120 |      80 |    0 |
Artikel 2|     80 |       0 |    0 |
Artikel 3|    100 |     120 |   80 | 

So stellt mir Crystal Reports das ganze leider dar:
         | Januar | Februar | März | etc.
Artikel 1|    120 |      80 |   80 |
Artikel 2|     80 |     120 |      |
Artikel 3|    100 |         |      | 
Und zwar werden Gruppen die keine Werte haben einfach weggelassen und die Artikel darunter rutschen hoch. Dadurch ist natürlich die Darstellung massiv verfälscht.

Ich hatte es schon so, dass er mir statt leer eine 0 angezeigt hat...
if not isnull(Sum ({table.preisnetto}))
then Sum({table.preisnetto})
else 0
Aber eben nur eine 0, nicht eine 0 pro Artikel
         | Januar | Februar | März | etc.
Artikel 1|    120 |      80 |   80 |
Artikel 2|     80 |     120 |   0  |
Artikel 3|    100 |       0 |      | 

Jemand eine Idee?

Mfg
Member: Balgor
Solution Balgor Oct 19, 2022 at 14:26:51 (UTC)
Goto Top
Ich bin nach wirklich vielem hin und her probieren zu einer Lösung gekommen die für meine Zwecke perfekt zu funktionieren scheint.

Erst einmal bin ich wieder komplett weg von mehreren Unterreports. Stattdessen habe ich das Problem mit mehreren "Laufende Summe-Felder"(SumJan, SumFeb, etc.) gelöst und wie Anfangs schon erwähnt nach Lieferanten gruppiert.
Bei der Datensatzauswahl habe ich das ganze Jahr ausgewählt.

Laufende Summe-Feld:
- Als Feld für Gruppenergebnis habe ich Datenbank.PREISNETTO gewählt.
- Als Art des Gruppenergebnisses habe ich "Summe" ausgewählt
- Beim Punkt "Auswerten" habe ich "Formel verwenden" ausgewählt
Folgende Formeln habe ich dort verwendet

Beispiel Januar: 01.01.2022 bis 31.01.2022
{Datenbank.DATUM} >= (minimum(yeartodate))and
{Datenbank.DATUM} <= (dateadd("m",1,minimum(yeartodate))-1)  

Beispiel Februar: 01.02.2022 bis 28.02.2022 (die Formel passt sich automatisch an falls der Februar mal 29 Tage hat)
{Datenbank.DATUM} >= (dateadd("m",1,minimum(yeartodate)))and  
{Datenbank.DATUM} <= (dateadd("m",2,minimum(yeartodate))-1)  

- Beim Punkt "Zurücksetzen" habe ich "Bei Änderung der Gruppe" - "Gruppe 1: Datenbank.LIEFERANTEN" ausgewählt

Fertig

Die Laufenden Summen Formeln für jeden Monat und auch einmal fürs ganze Jahr habe ich in den Gruppenfuß der Gruppe Lieferanten gepackt.

Für jeden Lieferanten der im laufe des Jahres Auftaucht kommt eine weitere Zeile mit Umsätzen dazu.
Ist in einem Monat kein Umsatz bei einem Lieferanten zu verzeichnen bleibt an dieser Stelle die Formel leer aber es verrutscht nichts wie es Anfangs bei mir das Problem war.

Zum Schluss habe ich noch eine Kopie jeder Laufenden Summen-Felder erstellt und sie "SumJanGesamt, SumFebGesamt, etc." genannt und eine kleine Änderung vorgenommen. Ich habe beim Punkt "Zurücksetzen" die Auswahl auf "Nie" gesetzt. Der Rest ist identisch.
Dieses Laufende Summe-Feld habe ich dann in den Berichtsfuß gepackt und damit unter meiner Einzelauflistung der Umsatzzahlen der Lieferanten eine Gesamt Umsatzsumme über alle Lieferanten pro Monat bekommen.

Auch ein Vergleich mit dem Vorjahr war auf diesem Wege ganz einfach umzusetzen. face-smile