![]() |
FastReport und frxUserDataSet Problem
Hallo zusammen,
kann mir vielleicht jemand sagen, warum das OnGetValue Ereigniss der frxUserDataSet-Komponente immer zweimal ausgeführt wird? Es fällt mir gerade schwer das Problem eindeutig zu schildern daher folgend ein Beispiel: Aufruf des Reports:
Delphi-Quellcode:
frxReportAusdruck.LoadFromFile(Report+'\FRAusdruck.fr3');
frxUserDataSet1.Tag:= 0; frxReportAusdruck.PrepareReport(); frxReportAusdruck.ShowPreparedReport;
Delphi-Quellcode:
Der Report wird korrekt Angezeigt, aber die Procedure TfrmAusdruck.frxUserDataSet1GetValue wird zweimal ausgeführt. Das heißt, jeder VarName wird zweimal aufgerufen und beschrieben.
procedure TfrmAusdruck.frxUserDataSet1CheckEOF(Sender: TObject;
var Eof: Boolean); begin Eof:= frxUserDataSet1.Tag = frmPuffer.lvPuffer.Items.Count; end; procedure TfrmAusdruck.frxUserDataSet1First(Sender: TObject); begin frxUserDataSet1.Tag := 0; end; procedure TfrmAusdruck.frxUserDataSet1GetValue(const VarName: string; var Value: Variant); begin if VarName = 'XY' then begin Value := strXY; end else if VarName = 'FA' then Value := strFA else if VarName = 'Titel' then Value := strFRTitel else if VarName = 'Anlage' then ... end; procedure TfrmAusdruck.frxUserDataSet1Next(Sender: TObject); begin frxUserDataSet1.Tag:= frxUserDataSet1.Tag + 1; end; Hat vielleicht jemand eine Idee für mich woran das liegen könnte? Vielen Dank |
AW: FastReport und frxUserDataSet Problem
weil Du mehr als einen Datensatz hast?
|
AW: FastReport und frxUserDataSet Problem
Ich könnte mir vorstellen, dass es an der Double Pass-Option liegt. Ist aber nur ne Vermutung.
|
AW: FastReport und frxUserDataSet Problem
Ok. Viel geschrieben und die Aussage noch nicht treffend formuliert von mir.
Ja ich habe mehrere Datensätze aber in einem Datensatz wird der VarName zweimal aufgerufen und beschrieben. Beispiel: 1234 2345 3456 jetzt wird bei Datensatz 1234 zweimal Value:= 'XY' und so weiter aufgerufen. Double Pass-Option? sagt mir leider nichts. |
AW: FastReport und frxUserDataSet Problem
Im Reportdesigner kannst Du in den Optionen für den Report irgendwo einen Haken "Double Pass" (ich glaub, ist auf Deutsch mit "Zweipass" übersetzt) setzen.
Einige Report-Funktionen benötigen diese Option. Dabei wird der Report praktisch 2x generiert. Wenn Du z.B. eine Seitennummerierung haben willst "Seite 1/10", dann wird im ersten Durchgang ermittelt, wie viele Seiten der Report insgesamt hat und im 2. Durchgang wird dann der Report mit der richtigen Gesamtseitenzahl generiert. Daher könnte ich mir vorstellen, dass mit dieser Option auch das GetValue-Event 2x aufgerufen wird. |
AW: FastReport und frxUserDataSet Problem
Also an der DoublePass-Option lag es nicht. Stand schon auf False.
Aber auch mit True und nochmals False schalten liegt der Fehler weiterhin vor. Danke führ den Hinweis |
AW: FastReport und frxUserDataSet Problem
Könnte es daran liegen, dass du den Report zunächst "vorbeitest" mit Prepare und dann anzeigst?
|
AW: FastReport und frxUserDataSet Problem
Daran hatte ich auch schon gedacht, ist allerdings nicht der Fall.
Ohne das PrepareReport wird nichts angezeigt und ShowPreparedReport durch ShowReport ersetzt zeigt nur eine Art abgespeckten Report an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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