Tutorial zu LazReport

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
LazarusFuchs
Beiträge: 21
Registriert: Mo 19. Aug 2013, 22:28
OS, Lazarus, FPC: Windows 11 24H2 (Lazarus 4.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Österreich
Kontaktdaten:

Tutorial zu LazReport

Beitrag von LazarusFuchs »

Habe ein Tutorial für LazReport programmiert.
Dieses soll später erweitert werden und auch eine Dokumentation dazu erstellt werden. Es wird jedoch einige Wochen dauern bis ich wieder Zeit darür habe. Da das Programm aber jetzt schon ziemlich umfangreich ist möcht ich es hier in etwas rudimentärer Form präsentieren - es kann sicher sehr gut beim Einstieg in dieses Thema helfen.

Einige Hinweise zum Tutorial:

> Die mitgelieferte Datenbank ist eine 64-bit Version.
. Das Programm sollte daher mit 64-bit kompiliert werdem.


> Sie können ganz einfach eigene Berichte zum Lernen speichern.

> Die Datenbank ist Firebird embedded 5 und muss nicht installiert werden.

> Es gibt einen Datenbank-Masterbericht.

> Es gibt einen Datenbank-Master-Detailbericht.

> Beispiel für die Einbindung von Grafiken in den Bericht.

> Es werden verschiedene Möglichkeiten der Datenintegration demonstriert.

> Beispiele für die Verarbeitung aktueller Datensätze mithilfe von im Programm festgelegten Parametern.

> Wie Sie Sprachen verwalten können, damit sie im Designer angezeigt werden.

> Die Verbindung zur Datenbank wird über Zeos und ein Datenmodul verwaltet.

> ...

Sie können Screenshots ansehen und das Programm mit Quellcode hier herunterladen:
https://lazarus.intern.ws/tutorial_lazreport.html
Zuletzt geändert von LazarusFuchs am Mo 23. Jun 2025, 11:54, insgesamt 2-mal geändert.
„Je mehr ich weiß, desto mehr wird mir klar, dass ich nichts weiß“
https://lazarus.intern.es

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Tutorial zu LazReport

Beitrag von fliegermichl »

Ich hab's mal heruntergeladen, Zeos und LazReport installiert.

Das Programm startet auch. Ich hab's dann mal auf deutsch umgestellt.
Wenn ich dann neu starte und auf den Button "Vorschau" oder "Öffne Datenbank" klicke, erhalte ich eine Exception "invalid Pointer Operation"

Muß da noch etwas anderes installiert sein?

Benutzeravatar
LazarusFuchs
Beiträge: 21
Registriert: Mo 19. Aug 2013, 22:28
OS, Lazarus, FPC: Windows 11 24H2 (Lazarus 4.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Österreich
Kontaktdaten:

Re: Tutorial zu LazReport

Beitrag von LazarusFuchs »

Normalerweise nicht. Ich habe zwar einiges mehr an Komponenten installiert, aber diese nicht verwendet. Die exe-Datei ist beigefügt. Wann man das mit dieser macht, passiert dann das gleiche?
Werde mit Lazarus ein zweites mal installieren und nur die beiden Komponenten um das bei mir zu überprüfen. Ich verwende Lazarus 4.0 und Zeos in der letzten verfügbaren Version.
Beim kompilieren gibt es keinen Fehler?

Im Datenmodul bei ZConnectionAdress diese Einträge löschen
Database: Q:\___LAZENTWICKLUNG\SMALLEXAMPLES\LAZREPORT\LazReportTutor\ADRESSEN.FDB
LibraryConnection: Q:\___LAZENTWICKLUNG\SMALLEXAMPLES\LAZREPORT\LazReportTutor\fb564\fbclient.dll

wie schaut es dann aus? Ich habe das Programm schon wo anders weitergegeben, da trat der Fehler nicht auf.
„Je mehr ich weiß, desto mehr wird mir klar, dass ich nichts weiß“
https://lazarus.intern.es

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Tutorial zu LazReport

Beitrag von fliegermichl »

Bei der mitgelieferten exe funktioniert es. Ich hatte zunächst mit Lazarus für 64 Bit versucht. Dann nochmal mit 32 Bit.
Da erhalte ich eine andere Fehlermeldung.
screenshot.png
screenshot.png (32.88 KiB) 800 mal betrachtet
Ich habe das Projekt dann mal mit Debuginfos compilieren lassen.
Die Exception wird verursacht bei

Code: Alles auswählen

ZConnectionAdress.Connected:= true;

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Tutorial zu LazReport

Beitrag von fliegermichl »

LazarusFuchs hat geschrieben: Mo 23. Jun 2025, 10:52
Beim kompilieren gibt es keinen Fehler?

Im Datenmodul bei ZConnectionAdress diese Einträge löschen
Database: Q:\___LAZENTWICKLUNG\SMALLEXAMPLES\LAZREPORT\LazReportTutor\ADRESSEN.FDB
LibraryConnection: Q:\___LAZENTWICKLUNG\SMALLEXAMPLES\LAZREPORT\LazReportTutor\fb564\fbclient.dll

wie schaut es dann aus? Ich habe das Programm schon wo anders weitergegeben, da trat der Fehler nicht auf.
Nein, compilieren tut es ohne Fehlermeldungen. Diese Einträge habe ich gelöscht, geht trotzdem nicht.

Benutzeravatar
LazarusFuchs
Beiträge: 21
Registriert: Mo 19. Aug 2013, 22:28
OS, Lazarus, FPC: Windows 11 24H2 (Lazarus 4.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Österreich
Kontaktdaten:

Re: Tutorial zu LazReport

Beitrag von LazarusFuchs »

Ich habe Lazarus 4 neu installiert, nur Zeos 8 mit dem Online Package Manager und LazReport mit Installierte Packages einrichten angelegt - neu kompiliert - kein Problem. Die erste Fehlermeldung ist logisch - die mitgelieferte Firebird 5 ist eine 64 bit Version. Ich arbeite nur mehr mit 64 bit - das könnte auch der Grund sein warum es nicht funktioniert. Wird das Programm im 32 bit Modus kompiliert? Daher wird wahrscheinlich das Problem kommen.

Firebird download: https://firebirdsql.org/en/firebird-5-0/#windows-x64
Firebird-5.0.2.1613-0-windows-x86.exe (Sollte eine 32-bit Version sein).
„Je mehr ich weiß, desto mehr wird mir klar, dass ich nichts weiß“
https://lazarus.intern.es

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Tutorial zu LazReport

Beitrag von fliegermichl »

Ich hatte die 64 Bit Version 3.9 installiert. Habe es jetzt gelöscht und Fixes 4.0 installiert.
Jetzt läuft es.

Vielen Dank für das Tutorial. Ich hatte bislang noch nichts mit Datenbanken gemacht und auch den LazReport nur mal so am Rande verwendet.

charlytango
Beiträge: 1097
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Tutorial zu LazReport

Beitrag von charlytango »

Hi.

Ich bin noch bis Montag unterwegs und tippe das hier Mal auf dem Smartphone.

Du hast dir sicher eine Menge Arbeit gemacht und Lazarus braucht auch aktuelle Beispiele und Tutorials

Mich stört an fast allen verfügbaren Beispielen dass derjenige der sich das Beispiel ansehen will dazu gezwungen wird die Datenbank des Erstellers zu installieren oder zu verwenden. Ich zb mag Firebird nicht, das ist eine persönliche Aversion. Nun zu sagen , dann benutze es halt nicht, würde zu kurz greifen weil es ja nicht nur um mich geht.
Der Köder muss dem Fisch schmecken und nicht dem Angler.

Es gibt sicher eine Möglichkeit, die Daten der Test Datenbank so zu exportieren dass man sie in eine beliebige von Lazarus unterstützte DB importieren kann
Dann ist es egal ob jemand 32 od 64 bit bevorzugt.
Das Tutorial müsste unter allen Varianten funktionieren.

Falls du ein Framework möchtest, das genau für diesen Anwendungsfall geschrieben wurde kannst du mich gerne kontaktieren.
Da kann sich der User auch die Datenbank verschießen und die kann immer wieder neu erstellt werden. In SQLDB und ZEOS.

Benutzeravatar
LazarusFuchs
Beiträge: 21
Registriert: Mo 19. Aug 2013, 22:28
OS, Lazarus, FPC: Windows 11 24H2 (Lazarus 4.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Österreich
Kontaktdaten:

Re: Tutorial zu LazReport

Beitrag von LazarusFuchs »

Zu "Mich stört an fast allen verfügbaren Beispielen dass derjenige der sich das Beispiel ansehen will dazu gezwungen wird die Datenbank des Erstellers zu installieren oder zu verwenden."

Genau wegen dieser Kritik verwende ich Firebird.

Weil ich sonst keine Datenbank gefunden habe mit der man Einzelplatzlösungen OHNE Installation weitergeben kann und diese auch als leistungsfähige Mehrplatzlösungen installieren kann. Die einzige Voraussetzung für das Tutorial ist dass es als 64Bit Anwendung kompiliert werden muss. Und dies wird auch explizit angeführt. Weil ich davon ausgehe, dass so gut wie jeder Entwickler, der Lazarus verwendet auch die 64 Bit Version installiert oder mit 32 Bit kombiniert installiert hat. Und über eine eventuell zerschossene Datenbank (wobei ich nicht weiß wie das hier gehen sollte) einfach wieder das Orignal darüber zu kopieren sollte auch kein Problem sein.

Das Tutorial herunterladen, an einem beliebigen Platz speichern, mit Lazarus die .lpi Datei aufrufen, kompilieren, starten und die Beispiele im Designer anschauen und eventuell neu erstellen oder die bestehenden bearbeiten. So ist das gedacht und es funktioniert auch so. Ich verstehe nicht, wo da das Problem liegt.

Sollte es aber daran scheitern, dass Firebird den Rechner nicht berühren darf so kann man hier die SQL-Datei für das erstellen einer Datenbank herauskopieren und im Datenmodul eine andere Datenbank verbinden :? :

Beschreibung: https://lazarus.intern.es/tutorial_fire ... eos_2.html
Download: https://lazarus.intern.es/download/tuto ... EBIRD2.ZIP

Ich habe schon Meldungen bekommen, ob mir "Ins Gehirn geschissen" wurde, weil ich Lazarus und Firebird mit ZEOS als eine gute Kombination zur Entwicklung von Programmen bezeichnet habe :lol: .

Jeder soll seine Datenbank verwenden die er will. Ich auch. So werden alle meine Tutorials immer mit Firebird Embedded zur Verfügung gestellt werden. Weil ich dadurch nicht noch mehr zusätzliche Arbeit habe und der Anwender des Tutorials auch nicht.

Viel Erfolg, Spaß und Freude noch mit Lazarus!
„Je mehr ich weiß, desto mehr wird mir klar, dass ich nichts weiß“
https://lazarus.intern.es

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 393
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: Tutorial zu LazReport

Beitrag von Jorg3000 »

Hi!
Vielen Dank für deine Mühe und dass du es auch als Webseite bereitstellst!

Bezüglich des Installierens - oder halt nicht -, ist mir auf deiner englischen Webseite eine Kleinigkeit aufgefallen: "with embedded firebird database, must not install".
"must not" heißt "darf nicht" (ein False Friend).
Ich vermute du meinst: "braucht nicht installiert zu werden", was übersetzt heißt: "does not need to be installed" oder "no installation necessary".

Ich finde es sehr spannend, wie Sprachen die Logik unterschiedlich interpretieren: Im Deutschen "muss nicht" nimmt die Verneinung nur den Zwang heraus, so dass noch ein "kann/darf aber" übrig bleibt.
Im Englischen dreht die Verneinung den Zwang komplett um, so dass ein Verbot daraus wird: "must" ist eine starke Verpflichtung, "must not" ist ein strenges Verbot.

Benutzeravatar
LazarusFuchs
Beiträge: 21
Registriert: Mo 19. Aug 2013, 22:28
OS, Lazarus, FPC: Windows 11 24H2 (Lazarus 4.0 FPC 3.2.0)
CPU-Target: 64Bit
Wohnort: Österreich
Kontaktdaten:

Englische Seite

Beitrag von LazarusFuchs »

Danke für den Hinweis. Text ist schon geändert! :D
„Je mehr ich weiß, desto mehr wird mir klar, dass ich nichts weiß“
https://lazarus.intern.es

charlytango
Beiträge: 1097
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Tutorial zu LazReport

Beitrag von charlytango »

LazarusFuchs hat geschrieben: Do 3. Jul 2025, 09:16 Weil ich sonst keine Datenbank gefunden habe mit der man Einzelplatzlösungen OHNE Installation weitergeben kann
SQLite zb, aber...
LazarusFuchs hat geschrieben: Do 3. Jul 2025, 09:16 und diese auch als leistungsfähige Mehrplatzlösungen installieren kann
diese Prämisse schließt SQLite natürlich aus.

Trotzdem wird FB jetzt nicht meine LieblingsDB, aber das ist einfach persönliche Meinung.
LazarusFuchs hat geschrieben: Do 3. Jul 2025, 09:16 Ich habe schon Meldungen bekommen, ob mir "Ins Gehirn geschissen" wurde, weil ich Lazarus und Firebird mit ZEOS als eine gute Kombination zur Entwicklung von Programmen bezeichnet habe :lol: .
Zu FB hab ich ja eine gespaltene Meinung aber Lazarus/ZEOS ist eine Kombination mit der man schneller und stabiler entwickeln kann als mit vielen anderen Sprachen. Was ich mehrfach beweisen konnte.

Du hast eine Menge Arbeit in den Tutor (aun auch in deine Webseite -- Kompliment) reingesteckt. Ohne Kritik sind mir einige Sachen aufgefallen.

Ich habe den Tutor mit Laz 4.1 und ZEOS 8.0 unter Win10 mit Erfolg getestet.

Die Pfade zu den nötigen Dateien würde ich bei Programmstart setzen. Das manuelle auswählen könnte vielleicht einen Anfänger überfordern.

Die Verbindung Tutorial und Webseite finde ich grundsätzlich sehr gut. Das würde ich mir für andere Tutorials und Beispiele wünschen. Meine Bedenken gehen eher in Richtung längerfristige Persistenz.

Das Zusammenstellen der SQL-Statements mit +QuotedStr(xy) mache ich gelegentlich auch, für ein Tutorial wären vielleicht Parameter die bessere Wahl.

Bei Programmstart ist der Tab Settings aktiv. Der würde dann mit aktuellen Pfaddaten bestückt werden.
Als nächstes müsste die DB erstellt werden, sofern sie nicht schon existiert.
Wenn der Benutzer da nicht selbst dahinter kommst würde ich ihn (sofern die DB noch nicht existiert) bei jedem OPEN Button auf den Tabs zuerst zu Tab Create Database umleiten

Vieles davon ist halt Geschmackssache -- Kompliment

wp_xyz
Beiträge: 5204
Registriert: Fr 8. Apr 2011, 09:01

Re: Tutorial zu LazReport

Beitrag von wp_xyz »

Hab lange hinundher überlegt, ob ich das Folgende schreiben soll oder nicht... Ich mach's jetzt trotzdem:

Ich versetze mich in die Rolle eines Users, der lernen will, wie er mit LazReport umgehen kann. Ich finde deine Seite - "Tutorial for LazReport", klingt toll. "Tutorial" - da denke ich an eine Schritt-für-Schritt-Anleitung, genau das, was ich brauche. Da ist eine herunterladbare Datei LAZREPORT_TUTOR.zip, da wird alles drin sein... Aber denkste: das ist ein Lazarus-Projekt. Ich starte Lazarus und lade das Projekt. Mist: Fehler, dass LazReport nicht installiert ist - ok, mein Fehler, hätte ich mir denken können... Installiere LazReport. Lade das Projekt erneut - nun fehlt die ZEOS Bibliothek. Hole mir ZEOS vom OPM, lade das Projekt nochmal, Run -> "System error, (OS Code 193)".

Ich bin nah daran aufzugeben und schaue ein letztes Mal auf deine Seite - Mist: da steht ganz deutlich: das ganze läuft nur unter 64bit, und meine Standard-IDE ist 32bit... Dass ich das nicht gesehen habe? Wechsle zur 64-bit IDE, installiere auch hier LazReport und ZEOS - nun läuft das Programm. Aber: da kann ich ein paar Buttons klicken, es tun sich neue Fenster auf. Aber was soll das? Wie lerne ich jetzt, wie ich LazReport verwende?

Sorry - das war jetzt etwas sarkastisch geschrieben, ist so nicht gemeint. Aber wenn jemand eine Seite "Tutorial" nennt, dann erwarte ich genau das: einen Text, in dem Schritt für Schritt erklärt wird, wie man etwas macht, und wenn's ganz gut sein soll, auch noch warum.

Und die Abhängigkeit von ZEOS gefällt mir auch nicht: Soll ich mir wirklich für ein "Tutorial" ein Drittanbieter-Package installieren, das ich sonst nicht brauche? Kannst du auf FireBird nicht mit den bei Lazarus mitgelieferten SqlDB-Komponenten zugreifen? Oder noch besser: Lege FireBird beiseite und nimm eine Wald-und-Wiesen-Desktop-Datenbank (TBufDataset, TDbf), die auf jedem Lazarus installiert ist und keine zusätzlichen Bilbiothenken erfordert.

Und rechne immer mit dem DAU, wie in meinem Text oben gezeigt... Am besten lege dem DAU keine Steine in den Weg,

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6859
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: Tutorial zu LazReport

Beitrag von af0815 »

WP +1

PS: Und gehe davon aus, das ein User keine Ahnung von 32Bit und 64 Bit Lazarus hat. Bzw. Was das überhaupt ist.

Das ist jetzt nicht böse gemeint, sondern 10Jahre Erfahrung mit LazInfos und ich durfte junge Leute nach der höheren Schule in Lazarus/FPC einschulen.

Gehe davon aus, jeder will Reports machen, hat aber keine Ahnung von den Basics, die wir als selbstverständlich ansehen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten