![]() |
Fastreport: ExportPDF im TTask
Hallöle...:P
Delphi-Quellcode:
der Aufruf sollte so sein:
function TPrintBase.ExportPDF(FilePath, FileName: string): Boolean;
begin Result := FReport.Export(FReportPDFExport); // in TPrintBase erstellt - Fehler: hier if Result then begin try if not FGhostscript.PDFShrink(FilePath + FileName) then // Fehler über Event begin Result := False; end; except Result := False; end; end; end;
Delphi-Quellcode:
Fehler:
TTask.Run(procedure
begin ExportPDF(Print.PDF.FilePath, Print.PDF.FileName); // Archiv end); Im Projekt XX.exe ist eine Exception der Klasse EClassNotFound mit der Meldung 'Klasse Picture nicht gefunden' aufgetreten. :74f7a8b2 KERNELBASE.RaiseException + 0x62 System.Classes.ClassNotFound('Picture') System.Classes.FindClass('Picture') frxXMLSerializer.TfrxXMLSerializer.ReadComponentSt r($25192D50,'Picture',True) frxPreviewPages.DoObjects($28781730,$25192D50) frxPreviewPages.TfrxPreviewPages.GetPage(0) im Report:
Code:
sonst kein 'Picture':?
<TfrxPictureView Name="TitleImageFirstPage" AllowVectorExport="True" Left="0" Top="0" Width="699,21305" Height="170,07885" Hyperlink.Value="" Frame.Typ="0" HightQuality="False" Transparent="False" TransparentColor="16777215"/>
PS: Ohne den TTask wird normal das PDF exportiert. :? Was habe ich übersehen? :wink: |
AW: Fastreport: ExportPDF im TTask
Zitat:
Letzteres könnte man mit folgendem Code beheben:
Delphi-Quellcode:
function TPrintBase.MakeExportPDF(FilePath, FileName: string):TProc;
begin Resulr := procedure begin ExportPDF(FilePath, FileName); // Archiv end) end; ... TTask.Run(MakeExportPDF(Print.PDF.FilePath, Print.PDF.FileName)); // FilePath und FileName sofort auflösen |
AW: Fastreport: ExportPDF im TTask
Zitat:
Zitat:
Zitat:
Nachtrag: MakeExportPDF: das PDF wird nicht exportiert...aber keine Fehlermeldung. :zwinker: PS: Diese Optimierung auf Eis gelegt...das mit dem Copy reicht erst mal. :thumb: Danke |
AW: Fastreport: ExportPDF im TTask
CoInitializeEx(nil,COINIT_MULTITHREADED); und CoUninitialize; innerhalb des Task/Threadkontextes aufrufen?
Delphi-Quellcode:
function TPrintBase.MakeExportPDF(FilePath, FileName: string):TProc;
begin Result := procedure begin CoInitializeEx(nil,COINIT_MULTITHREADED); ExportPDF(FilePath, FileName); // Archiv CoUninitialize; end) end; ... TTask.Run(MakeExportPDF(Print.PDF.FilePath, Print.PDF.FileName)); // FilePath und FileName sofort auflösen |
AW: Fastreport: ExportPDF im TTask
Vielleicht hilfreich:
![]() |
AW: Fastreport: ExportPDF im TTask
Danke...:P
Im Prinzip habe ich das auch so...bis auf das CoInitialize. ...heute nicht mehr. :zwinker: |
AW: Fastreport: ExportPDF im TTask
[QUOTE=Uwe Raabe;1498564]
Zitat:
Fastreport Export ist Threadsicher möglich. Beispiel: frxReport := TfrxReport.Create(nil); try if not loadReport(fr3Lieferliste, frxReport) then begin log(messageVarStr(reportNichtGeladenMsg, [fr3Lieferliste]), true); exit; end; // if thr:= TThread.CurrentThread; frxReport.EngineOptions.ReportThread := thr; frxReport.EngineOptions.SilentMode := true; frxReport.EngineOptions.NewSilentMode := simSilent; frxReport.EngineOptions.EnableThreadSafe := true; frxReport.EngineOptions.DestroyForms := false; frxReport.PrintOptions.Printer := drucker; frxReport.PrintOptions.ShowDialog := false; frxReport.ReportOptions.Name := titelLieferliste+' '+fdAuftragAUFTRAGNR.DisplayText; frxReport.PrepareReport(); if frxReport.Errors.Count<>0 then begin log(fr3Lieferliste+' '+frxReport.Errors.Text, true); exit; end; // if finally frxReport.Free; end; // try |
AW: Fastreport: ExportPDF im TTask
Zitat:
|
AW: Fastreport: ExportPDF im TTask
Liste der Anhänge anzeigen (Anzahl: 2)
Moin...:?
Ich hätte was Vernünftiges lernen sollen... :? Das hat gestern funktioniert:
Delphi-Quellcode:
...heute mache ich das Delphi an und "Erzeuge": Fehler: siehe Bilder :evil:
TTask.Run(procedure
var I: Integer; Success: Boolean; begin Success := True; for I := 0 to FFileList.Count - 1 do begin NewFile := CurrentNewFilePath + ExtractFileName(FFileList[I]); if TFile.GetSize(FFileList[I]) > 0 then // keine leeren Dateien kopieren begin if CopyFileEx(PChar(FFileList[I]), PChar(NewFile), nil, nil, nil, COPY_FILE_NO_BUFFERING) then begin TThread.Synchronize(nil, procedure begin WriteSendToDB(FFileList[I], sdtFolder); // Transus end); end else begin ... Eingegrenzt (Test):
Delphi-Quellcode:
Fehler: Fehler: siehe Bilder :evil:
TTask.Run(procedure
var Success: Boolean; begin Success := True; end); // TTask.Run(procedure // var // I: Integer; Lasse ich TTask komplett weg...alles gut. :evil: |
AW: Fastreport: ExportPDF im TTask
Das sieht mir nach einer verkorksten FastReport Installation aus. Eventuell werden Units unterschiedlicher Versionen verwendet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz