AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fast Report PrepareRaport

Ein Thema von michael.cohrs · begonnen am 21. Aug 2018 · letzter Beitrag vom 31. Aug 2018
Antwort Antwort
Seite 1 von 2  1 2      
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#1

Fast Report PrepareRaport

  Alt 21. Aug 2018, 11:43
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
Michael Cohrs
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
181 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Fast Report PrepareRaport

  Alt 21. Aug 2018, 12:08
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
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#3

AW: Fast Report PrepareRaport

  Alt 21. Aug 2018, 12:37
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.
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#4

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 06:24
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.
Michael Cohrs
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 07:01
Servus,

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
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#6

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 07:34
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
Michael Cohrs
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 07:41
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

Geändert von Lemmy (22. Aug 2018 um 07:45 Uhr)
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#8

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 07:48
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
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#9

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 07:49
Ach übrigens, die erstellen Reports können nicht
als File gespeichert werden deshalb geht hier Loadfromfile nicht...
Michael Cohrs
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#10

AW: Fast Report PrepareRaport

  Alt 22. Aug 2018, 08:09
Danke für das Beispiel, ich werde es Morgen gleich ausprobieren, wäre ja cool wenn das so läuft!!!
Michael Cohrs
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 Uhr.
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