Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   FastReport5 - Zeile in frxDBDataset einfügen (https://www.delphipraxis.net/185887-fastreport5-zeile-frxdbdataset-einfuegen.html)

fillibuster 20. Jul 2015 20:28

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
Hi,

gefallen tut mir das schon, ich verstehe nur nicht, wie ich das umsetzen soll. Erst in ein UserDataset die Anzahl der zu überspringenden Daten einfügen und dann mit denen aus dem DBDataset auffüllen?

Viele Grüße ...

Lemmy 20. Jul 2015 21:14

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
nein du verwendest dann kein frxdataset.

Du verwendest das frxUserDataset, wie das angewendet wird steht in div. Posts hier. Du musst dort die notwendigen Felder anlegen und die Ereignisse implementieren.

Im OnNewGetValue überspringst du so lange das Füllen der Daten, so lange dein Zähler der Etiketten die übersprungen werden müssen >1 ist. In OnNext und OnEof musst Du ebenfalls beide Zähler berücksichtigen, d.h. erst mit dem Überspringenzähler arbeiten, ist der auf 0 dann den normalen Zeilenzähler bzw. mit deinem DataSet.EOF .

fillibuster 20. Jul 2015 21:43

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
Ah ok, danke. Das werde ich so mal probieren :thumb:

fillibuster 23. Jul 2015 10:35

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
Ja ich nochma :oops:

habe es jetzt so probiert, aber die Labels werden nicht übersprungen. Ich finde den Fehler nicht:

Delphi-Quellcode:
  private
    labeljump : integer;
    linecount : integer;

....

procedure Treport.Button3Click(Sender: TObject);
begin
  labeljump := 5;

  data.reportQuery.Open;

  datasetLabels.RangeEndCount := (data.reportQuery.RecordCount + labeljump);

  main.frxReport1.Clear;
  main.frxReport1.DataSet := datasetLabels;
  main.frxReport1.LoadFromFile(reportPath + 'test.fr3');
  SetVariables();
  main.frxReport1.ShowReport(true);

end;

procedure Treport.datasetLabelsCheckEOF(Sender: TObject; var Eof: Boolean);
begin
  Eof := linecount >= (data.reportQuery.RecordCount + labeljump)
end;

procedure Treport.datasetLabelsFirst(Sender: TObject);
begin
  linecount := 0;
end;

procedure Treport.datasetLabelsNext(Sender: TObject);
begin
  inc(linecount);
end;

procedure Treport.datasetLabelsPrior(Sender: TObject);
begin
  dec(linecount);
end;

procedure Treport.datasetLabelsGetValue(const VarName: string;
  var Value: Variant);
begin
  if datasetLabels.RecNo > labeljump then
  begin
    if VarName = 'id' then Value := data.reportQuery.FieldByName('id').AsInteger;
    if VarName = 'lastname' then Value := data.reportQuery.FieldByName('lastname').AsString;
    ...
  end;
end;

Lemmy 23. Jul 2015 10:38

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
und wo ist der Rest (OnEOF, OnNext, OnPrior) des Userdataset?

fillibuster 23. Jul 2015 10:56

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
siehe oben ...

Lemmy 23. Jul 2015 12:09

AW: FastReport5 - Zeile in frxDBDataset einfügen
 
schon mal debugged?

Du prüfts im GetValue auf

if datasetLabels.RecNo > labeljump then


änderst aber die RecNo weder im Next noch im Prior... Daher würde ich vermuten dass Du hier eheer

if LineCount > labeljump then


prüfen solltest damit was kommt..

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 Uhr.
Seite 3 von 3     123   

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