[Erledigt] fpReport: Wie Design aus .lfm verwenden?

Rund um die LCL und andere Komponenten

[Erledigt] fpReport: Wie Design aus .lfm verwenden?

Beitragvon laz_frank » 4. Feb 2019, 16:23 [Erledigt] fpReport: Wie Design aus .lfm verwenden?

Hallo,

auf Basis des Beispielprogramms von Andreas (af0815) habe ich erfolgreich einfache Reports zur Laufzeit erzeugen können.

Auf Basis der Informationen im Wiki (TFPReport and TFPJSONReport component editor ... Basic usage) lässt sich im Komponenteneditor auch ein Reportdesign erstellen und in der Lazarus Formulardatei speichern. Ein "Preview Report" aus dem Komponenteneditor funktioniert damit einwandfrei. Aber wie kann dieser Report dann zur Laufzeit angezeigt werden? Die Anleitung "1. At runtime, run the report, ..." impliziert sicherlich einige notwendige Schritte vor dem Aufruf von fpJSONReportInstanz.RunReport, denn das bringt nur die Fehlermeldung "Invalid report, detect 1 errors: Need at least 1 report page.".

Wie lädt man das Design aus der Formulardatei?

fpJSONReportInstanz.LoadFromJSON(fpJSONReportInstanz.DesignTimeJSON) erzeugt erst einmal keinen Fehler.
fpReportPreviewExportInstanz.Execute bringt dann aber einen InvalidTypeCast in Unit fpReportLclExport, procedure TFPReportExportCanvas.RenderMemo, Zeile 484, lMemo := THackReportMemo(AMemo);

'Hack' klingt vielversprechend...

fpReport im aktuellen Zustand scheint sich eher für gestandene Computer-Forensikerinnen als für Einsteiger zu eignen.

EDIT: Nach einem "Clean up and Build" funktioniert es jetzt so:
Code: Alles auswählen
type
  TfrmRptAddress = class(TForm)
    fpRepAddress: TfpJSONReport;
    fprepAddressDatasetData: TFPReportDatasetData;
    fprepAddressPreview: TFPreportPreviewExport;
    .
    .
    .
  end;
.
.
.
procedure TfrmRptAddress.FormActivate(Sender: TObject);
begin
  gTTFontCache.SearchPath.Add('blabla\fonts');
  gTTFontCache.BuildFontCache;
  gTTFontCache.ReadStandardFonts;
  fpRepAddress.LoadFromJSON(fpRepAddress.DesignTimeJSON);
  fpRepAddressPreview.AutoRun := True;
  fpRepAddressPreview.Execute;
end;    

Ausführliche Tests stehen noch aus...
Gruß, Frank
laz_frank
 
Beiträge: 13
Registriert: 3. Okt 2012, 19:31
OS, Lazarus, FPC: Winux64 (Laz 2.0 fixes FPC 3.2.0 fixes 64 Bit) | 
CPU-Target: x86-64
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried