Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#10

AW: FastReport - Zuordnung Page zu DataSet-Record

  Alt 26. Okt 2022, 12:36
Nach langer Suche dort angekommen
https://www.fast-report.com/en/blog/...view-mode-vcl/
mir ganz unten den vesteckten Hinweis im Gauge1OnContentChanged zu Herzen genommen
{frxReport1.}PreviewPages.Page[i].AllObjects

und nun kämpfe ich mich da mal durch.

Auf den ersten Blick passt es genau, zur Report-Vorschau im Post #7 (abgesehn vom TfrxNullBand)
Code:
--- 0 -------------------------------------------
TfrxNullBand
TfrxMasterData MasterData1
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 1 -------------------------------------------
TfrxMasterData MasterData1
TfrxBarcode2DView Barcode2D1
--- 2 -------------------------------------------
TfrxMasterData MasterData1
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 3 -------------------------------------------
TfrxMasterData MasterData1
TfrxBarcode2DView Barcode2D1
Weiter rein, sagen sämtliche Indexwerte rein garnichts und das DataSet ist auch immer NIL.
Code:
--- 0 -------------------------------------------
[nil] [nil]
TfrxNullBand
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 1 -------------------------------------------
[nil] [nil]
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxBarcode2DView Barcode2D1
--- 2 -------------------------------------------
[nil] [nil]
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxMemoView Memo2
TfrxMemoView Memo3
TfrxBarCodeView BarCode1
TfrxMemoView Memo4
TfrxMemoView Memo5
--- 3 -------------------------------------------
[nil] [nil]
TfrxMasterData MasterData1
   col 0
   row 0
   bnd 6
   idx 0
   grp 0
   pg0 False
   pg.idx 0
   pg.grp 0
   dsn WorkSql
   ds [nil] [nil]
   vds TfrxUserDataSet
TfrxBarcode2DView Barcode2D1
Delphi-Quellcode:
  for i := 0 to frxReport1.PreviewPages.Count - 1 do begin
    OutputDebugString(PChar('--- ' + IntToStr(i) + ' -------------------------------------------'));
    OutputDebugString(PChar(frxReport1.PreviewPages.Page[i].DataSet.SecureClassName + ' ' + frxReport1.PreviewPages.Page[i].DataSet.SecureName));
    for P in frxReport1.PreviewPages.Page[i].AllObjects do begin
      if TObject(P) is TComponent then
        OutputDebugString(PChar(TObject(P).SecureClassName + ' ' + TComponent(P).SecureName))
      else
        OutputDebugString(PChar(TObject(P).SecureClassName));

      if TObject(P) is TfrxMasterData then begin
        OutputDebugString(PChar(' col ' + IntToStr(TfrxMasterData(P).Columns)));
        OutputDebugString(PChar(' row ' + IntToStr(TfrxMasterData(P).RowCount)));
        OutputDebugString(PChar(' bnd ' + IntToStr(TfrxMasterData(P).BandNumber)));
        OutputDebugString(PChar(' idx ' + IntToStr(TfrxMasterData(P).IndexTag)));
        OutputDebugString(PChar(' grp ' + IntToStr(TfrxMasterData(P).GroupIndex)));
        OutputDebugString(PChar(' pg0 ' + BoolToStr(TfrxMasterData(P).Page = frxReport1.Pages[0], True)));
        OutputDebugString(PChar(' pg.idx ' + IntToStr(TfrxMasterData(P).Page.IndexTag)));
        OutputDebugString(PChar(' pg.grp ' + IntToStr(TfrxMasterData(P).Page.GroupIndex)));
        OutputDebugString(PChar(' dsn ' + TfrxMasterData(P).DataSetName));
        OutputDebugString(PChar(' ds ' + TfrxMasterData(P).DataSet.SecureClassName + ' ' + TfrxMasterData(P).DataSet.SecureName));
        OutputDebugString(PChar(' vds ' + TfrxMasterData(P).VirtualDataSet.SecureClassName + ' ' + TfrxMasterData(P).VirtualDataSet.SecureName));
      end;
    end;
  end;
Das "eine" Memo oder den QRCode könnte ich verwenden, aber welches soll ich da nehmen (kann ja nicht wissen, was auf dem Report drauf ist)
Das frxMasterData selber sagt bisher garnichts.
Im VirtualDataSet und der Page selber schau ich dann mal weiter.

Am Einfachsten mal den Hersteller fragen, warum TfrxMasterData kein TagStr hat und ob er es schnell einbauen kann ... dann wäre ich fertig.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (26. Okt 2022 um 12:58 Uhr)
  Mit Zitat antworten Zitat