Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi FastReports zeigt Einträge doppelt (https://www.delphipraxis.net/212583-fastreports-zeigt-eintraege-doppelt.html)

TurboMagic 2. Mär 2023 09:19

FastReports zeigt Einträge doppelt
 
Hallo,

komisches Phänomen mit FastReports VCL EMBT Edition:
Von einem Report gibt es zwei definitionen. Eine schmale und eine für A4.
Beide beziehen sich auf das selbe Dataset und werden vom selben Code bedient (nur eine jeweils andere
.fr3 Datei wird geladen).

Auf dem schmalen Report stimmt alles. In einem bestimmten Band werden 2 Einträge angezeigt wie in
den Daten vorhanden. Beim A4 Report (zur Erstellung dessen wurden die Elemente des schmalen rüber
kopiert und dann nur Positionen verändert) wird in diesem Band der 2. Eintrag der Liste doppelt
angezeigt, der erste dafür gar nicht.

Beim Debuggen sieht man auch, dass im A4 Report der Index des 2. Eintrags mehrfach verarbeitet wird,
teilweise aber ohne die zugehörige OnNext... Methode aufzurufen. Beim schmalen Report ist der Index
wie beim A4 Report zuerst 0, dann 1 und dann wird korrekterweise aufgehört. Beim A4 Report wird der
Index 1 mehrfach im OnGetValue event verarbeitet. Aber warum?

Grüße
TurboMagic

mytbo 2. Mär 2023 17:15

AW: FastReports zeigt Einträge doppelt
 
Aufgrund der Beschreibung die Ursache zu erraten wäre ein glücklicher Zufall. Ich vermute mal, dass der TfrxUserDataSet so initialisiert ist:
Delphi-Quellcode:
begin
  RangeEndCount := DataList.Count;
  RangeBegin := rbFirst;
  RangeEnd := reCount;
  First;
end;
Die Anzahl der Datensätze lässt sich im MasterData vorgeben. Die Eigenschaft ist RowCount. Sie begrenzt den Wert von RangeEndCount.

Wenn bei Fragen zum Thema FastReport im Forum die Demo aus diesem Artikel zur Erstellung eines kleinen Beispiels verwendet würde, könnte ganz konkret am Fall gearbeitet werden.

Bis bald...
Thomas

TurboMagic 2. Mär 2023 18:01

AW: FastReports zeigt Einträge doppelt
 
Ich vermute, dass das wenn ich es in das Beispielprogramm versuche einzubauen plötzlich irgendwie geht.
Der schmale Bon geht ja korrekterweise. Hier etwas Code:

Delphi-Quellcode:
  dm_ZBon.frxUserDataSetEmployeePurchase.RangeEnd     := reCount;
  dm_ZBon.frxUserDataSetEmployeePurchase.RangeEndCount := FData.EmployeePurchase.Count;
  dm_ZBon.frxUserDataSetEmployeePurchase.OnNext       := OnNextEmployeePurchaseRecord;
  dm_ZBon.frxUserDataSetEmployeePurchase.First;


und noch das:

procedure TZBonPrinting.OnNextEmployeePurchaseRecord(Sender: TObject);
begin
  if FEmployeePurchIndex + 1 < FData.EmployeePurchase.Count then
    inc(FEmployeePurchIndex);
end;

mytbo 2. Mär 2023 18:32

AW: FastReports zeigt Einträge doppelt
 
Zitat:

Zitat von TurboMagic (Beitrag 1519394)
Ich vermute, dass das wenn ich es in das Beispielprogramm versuche einzubauen plötzlich irgendwie geht.

Ich sehe keinen Grund für die Verwendung von OnNext. Setze einfach RangeBegin, wenn es auch andere Werte außer rbFirst geben kann, wie oben gezeigt und dann im Event OnGetValue RecNo. Meine Beschreibung im Artikel passt perfekt für deinen Fall.

Bis bald...
Thomas

TurboMagic 2. Mär 2023 18:42

AW: FastReports zeigt Einträge doppelt
 
Hallo,

danke für die Antwort. Was mich halt so verwirrt ist, dass es mit der schmalen .fr3 Datei
funktioniert mit der A4 aber nicht. Die A4 ist eine Kopie der schmalen in der anschließend
nur Layoutdetails geändert wurden.

=> der Code ist derselbe und daher sollte es nicht an dem Code wirklich liegen...

Grüße
TurboMagic

TurboMagic 2. Mär 2023 18:51

AW: FastReports zeigt Einträge doppelt
 
Hallo,

habe das jetzt auf einen .RecNo Hinweis etc. umgebaut und plötzlich klappt es...

Grüße
TurboMagic


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