Lazreport und Gruppierungen

Rund um die LCL und andere Komponenten
Antworten
Joh
Lazarusforum e. V.
Beiträge: 187
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Lazreport und Gruppierungen

Beitrag von Joh »

Moin,

ich kämpfe gerade mit Lazreport.
Aber irgendwie habe ich mit dem System noch meine Probleme.

Was möchte ich:
- Master-Daten
- Detail1-Daten
- Detail2-Gruppen-Header (ein DB-Textfeld - eine Zeile)
- Detail2-Daten

Theoretisch funktionierts so weit, wenn ich den Detail2-Gruppen-Header mit ins Band Detail2-Daten bringe. Dann habe ich alles untereinander stehen, aber blöderweise ist das Band dann trotzdem doppelt hoch und ich habe Leerzeilen.

Also das Detail2-Gruppen-Header-Band über dem Detail2-Daten-Band angeordnet.
Jetzt steht die-Header-Zeile gestapelt oben am Seitenkopf (Also so, das ich nur eine Zeile sehe).

Eigentlich funktionierts ohne Gruppen-Header genauso: einfach das eine Textfeld in das Detail2-Daten-Band einfügen und HideDuplicates auf true...
Jetzt nur noch schnell die Eigenschaft: ZeileEntfernenWennLeer finden, auf true setzen und fertig. Doof nur, das es die nicht gibt.

Wo habe ich hier einen Knoten im Kopf?

lg
Jochen
just my two Beer

Joh
Lazarusforum e. V.
Beiträge: 187
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Lazreport und Gruppierungen

Beitrag von Joh »

Hmmm, ja.

ohne funktionierende Datengruppierung disqualifiziert sich der Lazreport ja selber.

Allerdings:
Für mein aktuelles Projekt nicht weiter tragisch.
Ich muß eigentlich nicht drucken, sondern benötige eine pdf-Ausgabe. Da ist Free-JPDF-Pascal mein Freund.
Link: https://github.com/jepafi/Free-JPDF-Pascal
Ein paar geschachtelte

Code: Alles auswählen

while not SQLxx.Eof do
und ein paar einfache Anweisungen;

Code: Alles auswählen

SetFont(ffHelvetica,fsBold,11);
Ln(10);
Cell(190, 7, SQLxx.FieldByName('Text').AsString,'LTBR',0,'C',1);
SetFont(ffHelvetica,fsNormal,9);
Ln(10);
Writer(5.5, SQLxy.FieldByName('Block1').AsString + ' ');  // Satz 1
Writer(5.5, SQLxy.FieldByName('Block2').AsString);      // Satz 2
fertig ist das pdf. Ich kann sogar einzelne Substrings auszeichnen (fett, rot, groß).
Das ganze in 50kb Pascal-Code.
Leider nicht zur Laufzeit änderbar, aber: irgendwas ist ja immer ;-)

lg
Joh
just my two Beer

Soner
Beiträge: 623
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 und Gruppierungen

Beitrag von Soner »

Lazreport kann Gruppierungen, es ist das mächtigste Report-Werkzeug für Lazarus. Ich verwende es in meinen Programmen. Im Lazreport-Ordner gibt es Dokumentation lies es und auch Beispiele. Es kann auch PDF-Dateien erzeugen. Wenn du Probleme hast suche im Web nach Freereport(Vorgänger) und Fastreport("Nachfolger") nach.

Ich habe dein Problem nicht ganz verstanden, ein Bildschirmfoto oder minimal Beispiel wäre hilfreich. Denke daran, die Bandhöhe bestimmt die Zeilenhöhe.

Vielleicht ist es besser deine Fragen über Lazreport im englischen Forum zu stellen. Nach meinen Erfahrungen gibt es dort noch sehr viele Leute, die Lazreport verwenden und hier nur wenige.

Antworten