Hallo zusammen,
ich habe folgende Situation, bei der ich nicht so recht weiterkommen
In meinem Programm drucke ich Verträge mittels QuickReport.
Die Anwender haben ein spezielles Papier, welches auf der Rückseite mit Vertragsinformationen bzw. Geschäftsbedingungen bereits bedruckt ist.
Nun sollen beim Anwender spezielle Duplex-Drucker angeschafft werden und mein Programm soll die Rückseite bedrucken. Hier nun das Problem...
Um den Vertrag korrekt ausgedruckt zu bekommen, muss pro Vertragsseite eine Zwischenseite gedruckt werden. Ich habe das ganze nun per TQRPageList einigermaßen realisiert bekommen. Leider hänge ich aktuell an Zugriffsverletzungen
In Delphi habe ich 2 Reports.
Report A: Der Vertrag
Report B: Die Rückseite
Die Logik:
Hier nun der Code:
Soweit so gut, ich bekomme die Vorschau angezeigt und dachte mir, "Gut, ausdrucken wird ja wohl kein Problem sein."
Tja, sobald ich versuche
auszuführen bekomme ich eine Zugriffsverletzung. Wenn ich
ausführe und in der Vorschau versuche die Druckeinstellungen aufzurufen oder zu drucken, bekomme ich Zugriffsverletzungen.
Mittlerweile weiß ich leider nicht mehr weiter. Ich hoffe es hatte jemand schonmal eine ähnliche Situation und kann mir weiterhelfen.
Bei Bedarf kann ich auch ein Dummy-Projekt zur Verfügung stellen.
Mit freundlichen Grüßen,
Michael Brotrück
ich habe folgende Situation, bei der ich nicht so recht weiterkommen
In meinem Programm drucke ich Verträge mittels QuickReport.
Die Anwender haben ein spezielles Papier, welches auf der Rückseite mit Vertragsinformationen bzw. Geschäftsbedingungen bereits bedruckt ist.
Nun sollen beim Anwender spezielle Duplex-Drucker angeschafft werden und mein Programm soll die Rückseite bedrucken. Hier nun das Problem...
Um den Vertrag korrekt ausgedruckt zu bekommen, muss pro Vertragsseite eine Zwischenseite gedruckt werden. Ich habe das ganze nun per TQRPageList einigermaßen realisiert bekommen. Leider hänge ich aktuell an Zugriffsverletzungen
In Delphi habe ich 2 Reports.
Report A: Der Vertrag
Report B: Die Rückseite
Die Logik:
Code:
- Gehe durch alle Seiten des Vertrages. - Füge die aktuelle Vertragsseite der PageList hinzu. - Füge die Rückseite der PageList hinzu. - Drucke die PageList
Code:
procedure DruckeVertrag; var I : Integer; PL : TQRPageList; begin PL := nil; try PL := TQRPageList.Create; PL.Stream := TQRStream.Create(100000); QuickRepA.Prepare; QuickRepB.Prepare; PL.LockList; try for I := 1 to QuickRepA.QRPrinter.PageCount do begin PL.AddPage(QuickRepA.QRPrinter.GetPage(I)); PL.AddPage(QuickRepB.QRPrinter.GetPage(1)); end; PL.Finish; finally PL.UnlockList; end; PL.SaveToFile('test.qrp'); finally FreeAndNil(PL); end; QRPreview1.QRPrinter := TQrPrinter.Create(self); QrPreview1.QRPrinter.Load('test.qrp'); QrPreview1.PageNumber := 1; QrPreview1.Refresh; end;
Tja, sobald ich versuche
Code:
QrPreview1.Print;
Code:
QrPreview1.Preview;
Mittlerweile weiß ich leider nicht mehr weiter. Ich hoffe es hatte jemand schonmal eine ähnliche Situation und kann mir weiterhelfen.
Bei Bedarf kann ich auch ein Dummy-Projekt zur Verfügung stellen.
Mit freundlichen Grüßen,
Michael Brotrück
Comment