Lazreport

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
BoraBora
Beiträge: 53
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: FPC 3..2.2, L 2.2.0 , Linux Mint, WIN 10&11, Android,
CPU-Target: xxBit

Lazreport

Beitrag von BoraBora »

Hallo,

in einer Sqlite-Tabelle habe ich gleiche Artikelnummern, die einfach oder mehrfach enthalten sein können.

1001 Mutter Edelstahl M 10 Platz 45 Bestand 10 Stück
1002 Mutter Edelstahl M 5 Platz 67 Bestand 62 Stück
1002 Mutter Edelstahl M 5 Platz 98 Bestand 44 Stück
1003 Mutter Edelstahl M 6 Platz 33 Bestand 0 Stück

Ich möchte, dass Lazreport jeden Artikel nur einmal druckt aber mit den Bestandinformationen aller gleichen
Artikel.
Hat jemand eine Idee, ob so etwas geht und wenn ja, wie?

Bin für jeden Hinweis dankbar.

Gruss BB

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6848
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lazreport

Beitrag von af0815 »

Hängt davon ab, wie du die Tabellen designst hast. Eine Gruppierung auf die Teilenummer und Summe über die Stückzahlen reicht da ja. Dann kannst aber nicht weiter auf die Platznummer gruppieren.

Worüber die Summen gebildet werden hängt immer davon ab, wie du die Daten in Gruppen zusammenfasst. Hier sehe ich die Artikelnummer (1001,1002,1003) und zusätzlich die Platznummer (45,67.98,33). Damit wird der Bestand auf Höhe der Plätze UND Artikelnummer summiert. Nimmst du die Ebene der Platznummern heraus, so kannst du auch alleine nach den Artikelnummern gruppieren. Nur fehlt dir dann die Platzinfo. Beides zusammen geht so nicht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
BoraBora
Beiträge: 53
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: FPC 3..2.2, L 2.2.0 , Linux Mint, WIN 10&11, Android,
CPU-Target: xxBit

Re: Lazreport

Beitrag von BoraBora »

Hallo af0815,

vielen Dank für die schnelle Antwort.
ich möchte gar keine Summen bilden. Es reicht aus, wenn der Report in etwa so aussieht:

1001 Mutter Edelstahl M 10 Platz 45 Bestand 10 Stück
--------------------------------------------
1002 Mutter Edelstahl M 5 Platz 67 Bestand 62 Stück
Platz 98 Bestand 44 Stück
--------------------------------------------
1003 Mutter Edelstahl M 6 Platz 33 Bestand 0 Stück

Im Prinzip eine simple Auflistung, wo was liegt.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6848
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lazreport

Beitrag von af0815 »

Gerade das vermeintlich einfache ist dein Problem. Du willst auf Teilenummer gruppieren, dort aber eine Subgruppierung auf die Platznummer machen. Ein Master/Detail Report.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

schoschy
Beiträge: 56
Registriert: Di 18. Okt 2022, 15:46

Re: Lazreport

Beitrag von schoschy »

Jede ID eine einzelne abfrage auf die Plätze?
Hab es nur kurz überflogen, aber es wird wohl darauf hinauslaufen.

Wenn die Relation in etwa so aussieht:
Artikel 1:n AP_Teile n:1 Plätze

Stevie
Beiträge: 173
Registriert: Di 27. Feb 2024, 22:40

Re: Lazreport

Beitrag von Stevie »

... ich glaube ja, es wäre deutlich einfacher zu helfen, wenn wir das Schema bzw. die Relationen kennen würden.

Soner
Beiträge: 734
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Lazreport

Beitrag von Soner »

BoraBora hat geschrieben: Di 28. Mai 2024, 14:40 Hallo af0815,

vielen Dank für die schnelle Antwort.
ich möchte gar keine Summen bilden. Es reicht aus, wenn der Report in etwa so aussieht:

1001 Mutter Edelstahl M 10 Platz 45 Bestand 10 Stück
--------------------------------------------
1002 Mutter Edelstahl M 5 Platz 67 Bestand 62 Stück
Platz 98 Bestand 44 Stück
--------------------------------------------
1003 Mutter Edelstahl M 6 Platz 33 Bestand 0 Stück

Im Prinzip eine simple Auflistung, wo was liegt.
Das ist leicht, ich habe so etwas auch. Nehmen wir an du hast Auftragstabelle (Auftrag), Auftragspositionentabelle(Aufpos), Artikeltabelle(Artikel) und Lagertabelle(Platz), dann muss dein SQL ungefähr so aussehen, vorausgesetzt, dass du ähnlichen Tabellenaufbau hast. Ich denke von dem "Feldnamen" weißt du was ich meine:

Code: Alles auswählen

select artikel.nr, artikel.name, platz.name, sum(aufpos.anzahl) from Auftrag
left join aufpos on aufpos.auftrag=auftragid
left join artikel on artikel.nr=aufpos.artikel
left join platz on platz.nr=artikel.platz
where auftragdatum='29.5.2024'
group by artikel.nr, artikel.name, platz.name
order by artikel.nr
Jetzt kannst du bei Lazreport entweder Gruppenreport nehmen und als Gruppenfeld Artikel.nr wählen oder ganz normale einfache Masterdaten-Band nehmen.
Mit Gruppenreport kann man Summe bilden, das ist besser. Ich denke irgendwann braucht irgendjemand das, weil es viele Lagerplätze gibt. Mach dann gleich am Anfang so.

Soner
Beiträge: 734
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Lazreport

Beitrag von Soner »

Einer meiner Berichte sieht so aus:
Beispielreport
Beispielreport
prodlist.png (22.57 KiB) 1077 mal betrachtet
Der Unterschied ist bei mir wird nach Produktvariation gruppiert, bei dir nach Lager. Ich habe auch einen ähnlichen Bericht mit Lager, aber ich weiss nicht mehr welcher das war.
Eigentlich hätte ich Überschriften bei Seiten/Spalten-Wechsel machen sollen. Aber damals war ich neu bei Lazreport.

Benutzeravatar
BoraBora
Beiträge: 53
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: FPC 3..2.2, L 2.2.0 , Linux Mint, WIN 10&11, Android,
CPU-Target: xxBit

Re: Lazreport

Beitrag von BoraBora »

Vielen Dank für die Unterstützung!

Master/Detail war das Schlüsselwort, das mir weitergeholfen hat.

Gruss BB

Antworten