Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Fastreport export nach PDF (https://www.delphipraxis.net/194963-fastreport-export-nach-pdf.html)

Luckner 23. Jan 2018 10:30

Fastreport export nach PDF
 
Hallo Zusammen,
ich habe folgendes Problem: Mit Fastreport möchte ich eine PDF-Datei erzeugen und per E-Mail versenden. Das funktioniert auch weitgehens, jedoch nach Ausführung der Exportzeile (Zeile 2) wird plötzlich die Verbindung über ein Dataset zur Datenbank unterbrochen.
Delphi-Quellcode:
 frxPDFExportRechnung.FileName := 'C:\Temp\Rechnung.pdf';
 frxReportAuftrag.Export(frxPDFExportRechnung);
Wenn ich die 2. Zeile weglasse, kann ich aus dem Fastreportviewer ebenfalls exportieren. Das funktioniert, ohne dass die Verbindung zur Datenbank unterbrochen wird.

Hatt Jemand schon so ein Problem gehabt? Ist die Exportzeile auch richtig?
Danke und Gruß,
Luckner

Lemmy 23. Jan 2018 12:26

AW: Fastreport export nach PDF
 
Zitat:

Zitat von Luckner (Beitrag 1391742)
jedoch nach Ausführung der Exportzeile (Zeile 2) wird plötzlich die Verbindung über ein Dataset zur Datenbank unterbrochen.

was heißt das? Ist das DataSet dann geschlossen? Oder kommt ne Fehlermeldung?

Wie ist eigentlich die Eigenschaft "CloseDataSouce" bei dem verwendeten frxDataSet eingestellt?

Grüße

Luckner 23. Jan 2018 12:58

AW: Fastreport export nach PDF
 
Es kommt keine Fehlermeldung. Folgende Erklärung. Habe ein DBGrid mit einem Dataset1 mit Tabelle verbunden. Selektiere per Maus oder Tastatur einige Datensätze aus diesem Grid und kopiere die selektierten Datensätze über einen Dataset2 in eine neue Tabelle der Datenbank. Das 'frxReportAuftrag' ist auch mit Dataset2 an der Tabelle verbunden. Erzeuge dann eine Pdf-Datei und plötzlich ist das DBGrid leer (obwohl Dataset1 nicht geschlossen wurde. Jedenfalls nicht von mir aktiv). Kann noch einmal select und open machen, aber dann ist meine Gridselektion weg. Und die brauche ich, weil ich in die selektierten Datensätze einen Eintrag machen muss.

Luckner

Lemmy 23. Jan 2018 13:17

AW: Fastreport export nach PDF
 
Welche Datenbank hast Du im Einsatz?

Dann: Im BeforeClose des DataSet das für das Grid zuständig ist einen Breakpoint machen und schauen, wie der Aufrufstack aussieht.... da solltest Du dann recht schnell finden, warum das DataSet geschlossen wird...
Grüße

Luckner 23. Jan 2018 13:30

AW: Fastreport export nach PDF
 
Die Datenbank ist Firebird 2.1. Breakpoint hatte ich schon gesetzt, findes es trotzdem nicht, weil es auch keine Fehlermeldung gibt.
Luckner.

alex517 23. Jan 2018 14:08

AW: Fastreport export nach PDF
 
Welche Zugriffskomponenten?
Laufen beide Datasets in einer Transaktion?
Wird beim Close von Dataset2 ein Commit(Autocommit) ausgeführt?

himitsu 23. Jan 2018 14:15

AW: Fastreport export nach PDF
 
Alternativ ein eigenes DataSet für den PDF-Export verwenden, wenn sonst nichts geht.

Der selektierte Datensatz im DataSet und eventuell auch der Fokus im Grid (wenn das Grid seine fokusierte Row mir dem selektierten Record synchronisiert) würden sich auch ändern,
wenn der Export durch das DataSet scrollt, und zusätzlich noch die AfterScroll-Events.

Luckner 23. Jan 2018 15:00

AW: Fastreport export nach PDF
 
Für PDF-Export benutze ich Dataset2, für das DBGrid das Dataset1. Beide haben verschiedene Transactionen. Wie schon geschrieben, aus dem Fastreportviewer funktioniert der Export, nur nicht über frxReportAuftrag.Export(frxPDFExportRechnung);

Luckner

alex517 23. Jan 2018 15:57

AW: Fastreport export nach PDF
 
Meine Vermutung war eine gemeinsame Transaction die geschlossen wird.
Je nach Zugriffskomponente werden damit auch alle an dieser Transaction hängenden Datasets geschlossen.

Da du aber zwei getrennte Transactionen verwendest kann das nicht sein.:?

Lemmy 23. Jan 2018 16:05

AW: Fastreport export nach PDF
 
Zitat:

Zitat von Luckner (Beitrag 1391771)
Die Datenbank ist Firebird 2.1. Breakpoint hatte ich schon gesetzt, findes es trotzdem nicht, weil es auch keine Fehlermeldung gibt.
Luckner.

um das geht es doch nicht. Aber wenn Du im BeforeClose des Grid-Dataset einen Brakepoint hast, der beim PDF-Export angesprungen wird, dann kannst Du im Aufrufstack der Methode sehen wer die aufruft bzw. wer das Close in "Auftrag" gibt. Das sieht man sicherlich nicht gleich auf den ersten Blick aber imho eine sinnvolle Sache sich das anzuschauen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz