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/)
-   -   Fast Report PrepareRaport (https://www.delphipraxis.net/197599-fast-report-prepareraport.html)

michael.cohrs 21. Aug 2018 11:43

Fast Report PrepareRaport
 
Guten Tag zusammen,

ich habe erstellten Report zur Optimierung bekommen und folgendes Problem:

Das Auslesen der Daten aus der Datenbank geht erwartungsgemäß schnell, bei 3 gelesenen Reports
a 6 Seiten wird durch Aufruf von PrepareReport jedoch eine Zeit für die Voransicht von ca. 2,5 Minuten
benötigt. In der Realität werden jedoch nicht nur 3 Reports a 6 Seiten sondern um die 100 Reports
benötigt, für die Darstellung würden ca. 2 - 3 Stunden benötigt. Warum ist PrepareReport so langsam
und kennt jemand eine Lösung für dieses Problem?

Vielen Dank

Michael Cohrs

Steku 21. Aug 2018 12:08

AW: Fast Report PrepareRaport
 
Hi,

mal so auf die Schnelle aus dem FR Forum:

frxReport1.EngineOptions.MaxMemSize:=200;
frxReport1.EngineOptions.UseFileCache:=True;

Vielleicht hilft es ja schon.

Welche IDE bzw. FR Version setzt du ein?

Grüße
Steku

Frickler 21. Aug 2018 12:37

AW: Fast Report PrepareRaport
 
1- oder 2-Pass Reports? (2-Pass braucht man z.B., um die Gesamtsumme schon auf der ersten Seite anzeigen zu können oder auch die Gruppensummen im Gruppenkopf) Komplexe Berechnungen in der Scriptsprache, die ebenfalls die DataSets mehrfach durchgraben? Da nutzt auch ein schneller Einmalzugriff nix, vor allem wenn die Queries x-fache JOINs darstellen, womöglich auf etliche Views usw.

Wir haben diese Probleme umschifft, indem wir alle Reports auf temporäre Tabellen (detached ClientDataSets) zugreifen lassen und nie direkt auf die Queries.

michael.cohrs 22. Aug 2018 06:24

AW: Fast Report PrepareRaport
 
Guten Morgen Steku, guten Morgen Frickler,

erst einmal vielen Dank für eure Antworten!!

@ Steku: die Einstellungen habe ich bereits vorgenommen, haben aber leider keinen Erfolg gebracht :(
Wir setzen Delphi Seattle ein und nutze den dort enthaltenen Fastreport, die Version habe ich
leider nicht im Kopf, bin heut nicht in der Firma.

@ Frickler: Es sind 2-Pass Reports. Dein Ansatz / Lösung kling vielversprechend, hast Du vielleicht ein
Beispiel für mich an dem ich mich Orientieren kann, ich habe bisher keine Erfahrung damit.

Lemmy 22. Aug 2018 07:01

AW: Fast Report PrepareRaport
 
Servus,

Zitat:

Zitat von michael.cohrs (Beitrag 1411195)
bei 3 gelesenen Reports
a 6 Seiten wird durch Aufruf von PrepareReport jedoch eine Zeit für die Voransicht von ca. 2,5 Minuten
benötigt.

nur um sicher zu gehen: Die 3 Reports werden unabhängig voneinander angezeigt? Oder werden die 3 Reports zu einem Report zusammengebaut?

Macht ihr irgend welche Berechnungen innerhalb der Reports? Werden Events vom Report gefeuert und durch die Anwendung abgearbeitet?

Grüße

michael.cohrs 22. Aug 2018 07:34

AW: Fast Report PrepareRaport
 
Guten Morgen Lemmy,

die Reports werden zusammengebaut zu einem, innerhalb der Reports werden noch SQL Statements ausgeführt,
Die SQL`s außerhalb der Reports sind für die Komplexibilität verhältnismäßig schnell, es hackt / hängt nur
an der Fastreportroutine PrepareReport, soviel habe ich herausfinden können.

Viele Grüße

Michael

Lemmy 22. Aug 2018 07:41

AW: Fast Report PrepareRaport
 
Und iwe baust Du die zusammen? Setzt du die PreparedReports zusammen oder packst Du einfach
ReportA
PrepareREport
+ReportB
PrepeareReport
+ReportC
PrepareReport

Die Teile zusammen? Da ist es dann klar, dass Prepare verdammt lange dauert, da bei jedem Prepare ALLE Reports neu aufgebaut werden.

Wenn Du unterschiedliche Reports zusammen bauen willst, dann musst Du so vorgehen:

2 frxReport Komponenten:
frx1: zum Prepare
frx2: zum halten der vorbereiteten Reports

frx1.LoadFromFile(<>);
frx1.PrepareReport(true);
frx2.Pages.AddPrepared(frx1.Page)

das habe ich mit einigen dutzend Reportvorlagen gemacht und Reports mit mehreren hundert Seiten generiert die sich zur Laufzeit aufgrund der Eingabedaten dynamisch zusammen gestellt haben, incl. Inhaltsverzeichnis!
HInweis: Code ist von fr3, sollte aber so, bzw. mit kleinen Abweichungen auch noch unter fr4 und neuer laufen.

Edit:
da ist er:

https://www.delphipraxis.net/1328028-post8.html

michael.cohrs 22. Aug 2018 07:48

AW: Fast Report PrepareRaport
 
Danke Lemmy,

in der Tat werden die Teile einfach zusammen gepackt, das habe ich so übernommen
und soll es optimieren (verständlicher weise)

sag hast Du hierfür ein exemplarischen Codesnipsel an dem ich mich orientieren kann,
das wäre sehr nett und würde mich echt weiterhelfen....

Viele Grüße

Michael

michael.cohrs 22. Aug 2018 07:49

AW: Fast Report PrepareRaport
 
Ach übrigens, die erstellen Reports können nicht
als File gespeichert werden deshalb geht hier Loadfromfile nicht...

michael.cohrs 22. Aug 2018 08:09

AW: Fast Report PrepareRaport
 
Danke für das Beispiel, ich werde es Morgen gleich ausprobieren, wäre ja cool wenn das so läuft!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 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