Entwickler-Ecke

Sonstiges (Delphi) - Mit Fastreport 4 ein PDF erzeugen


Awaidon - Do 20.05.10 08:43
Titel: Mit Fastreport 4 ein PDF erzeugen
Moin Moin Leute,

ich hätte eine Frage zu Fastreport 4.

Also ich möchte mit Fastreport 4 ein PDF erzeugen.

Den Report habe ich schon fertig, aber ich komme mit der frxPDFExport Komponente nicht richtig zurecht.

Ich habe schon im Internet nachgeguckt aber ich bin noch nicht fündig geworden.

Wäre nett wenn mir jemand von euch auf die Sprünge helfen könnte ;)


mfg Awaidon


ED1: Vergessen zu sagen: Ich benutze Delphi 7


bummi - Do 20.05.10 10:24


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
procedure TDataModuleReport.CreatePDFFile(APDFFileName: String; Silent: Boolean = true);
var
   tmpFrxPreview : TfrxPreview;
begin
  with frxPDFExport do begin
    ShowDialog := not Silent;
    OpenAfterExport:= not Silent;

    Author := 'Author';
    Subject := 'MeinReport';

    ShowProgress := not Silent;

    Compressed := true;
    OverwritePrompt := true;
    UseFileCache := true;

    FileName := APDFFileName;
  end;

   frxReport.PrepareReport(false);
   tmpFrxPreview := TfrxPreview.Create(Self);
  try
    tmpFrxPreview.Report := frxReport;
    tmpFrxPreview.Export(frxPDFExport);
  finally
    tmpFrxPreview.Free;
  end;

  Application.ProcessMessages;
end


Awaidon - Do 20.05.10 13:20

Moin,

Schonmal danke für diesen Quellcode!

Ich habe nurnoch ein kleines Problem...


TfrxPreview ist ihm nicht bekannt!

Ich habe meine Fastreport Komponenten durchsucht, aber keinen Preview gefunden.


mfg Awaidon


bummi - Do 20.05.10 13:29

???\FastReport 4\Source\frxPreview.pas


Awaidon - Do 20.05.10 13:52

Okay Dankeschön.

Soweit so gut....

Jetzt hat er einen Fehler in der frxPreview.pas.

Ich habe deinen Code genauso übernommen und nichts geändert.


Er hat eine Zugriffsverletzung an der Stelle:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
        try
          Lock;
          PreviewPages.ModifyPage(PageNo - 1, Page);
        finally
          Unlock;
        end;


Unzwar beim "Lock;" bleibt er hängen.

Wäre echt Top wenn es auch auf dieses Probelm eine Antwort geben würde!

mfg Awaidon

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt


bummi - Do 20.05.10 14:07

puh innerhalb von Fastreports ...

gegf. eine falsche oder doppelt vorhanden {$I frx.inc}

anonsten wirst Du jetzt wohl selber weitergraben müssen ....


Awaidon - Do 20.05.10 14:45

JAWOLL!

habs doch hingekriegt!

Riesen Dank an dich bummi für deine bemühungen

Lösung:

Ich habe es auch ohne den frxPreview hinbekommen.

Delphi-Quelltext
1:
2:
3:
        dmMain.frxReport.PrepareReport;
        dmMain.frxPDFExport.FileName := 'C:\Test.pdf';
        dmMain.frxReport.Export(dmMain.frxPDFExport);

Das wäre es auch schon.
Den Filename kann man auch weglassen da sich ein SaveDialog öffnet.


Nochmal Danke an bummi ;)

und bye bye Leute!


mfg Awaidon

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt