![]() |
QR ist einfach leer
HI,
da das mit miener Virtuellen Tabelle nicht geklappt hat :( , hab ich es nun doch mit dem OnNeedData versucht. Doch langsam bin ich am verzweifeln. :cry: :x Nun wird mein Bericht zwar aufgerufen aber er enthält einfach nichts. Hier ist der betreffende Quellcode
Code:
Ein paar Sätze dazu. TempArray wird von einer anderen Unit übergeben ud ist im Deugger auch richtig befüllt.
procedure FrmForm1.Arrayuebergabe(TempArray: TDoubleArray);
var //TempArrayDruck : TDoubleArray; MoreData : Boolean; begin SetLength(TempArrayDruck,300,2); TempArrayDruck := TempArray; MoreData := True; begin //FrmForm1.QuickRep1NeedData(MoreData); FrmForm1.QuickRep1.OnNeedData(Self,MoreData); end; end; procedure FrmForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); begin while TempArrayDruck[CurrentIndex,0] <> 0 do begin MoreData := True; if MoreData then begin QRLabel_Land.Caption := FloatToStr(TempArrayDruck[CurrentIndex,0]); QRLabel_KM.Caption := FloatToStr(TempArrayDruck[CurrentIndex,1]); MoreData:=False; Inc(CurrentIndex); end; end; //QuickRep1 ist leer!!! QuickRep1.Preview; end; procedure FrmForm1.QuickRep1BeforePrint( Sender: TCustomQuickRep; var PrintReport: Boolean); begin CurrentIndex := 0; end; Mit der schleife sollte er ausgelesen und dargestellt werden. Was mache ich falsch? Hat mir jemand eine Tipp? Dankeschön! Grüßle Mada :cat: |
Hallo Mada,
OnNeedData ist ein Ereignis vom Quickreport, d.h. es wird automatisch aufgerufen. Ich würde es so machen:
Delphi-Quellcode:
Ich habs zwar nicht ausprobiert, sollte aber funktionieren :D
type
FrmForm1 = class(TForm) FrmForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); private { Private-Deklarationen } CurrentIndex: Integer; aTempArray: TDoubleArray; public { Public-Deklarationen } Arrayuebergabe(TempArray: TDoubleArray); end; var Form1: TForm1; implementation {$R *.DFM} procedure FrmForm1.Arrayuebergabe(TempArray: TDoubleArray); begin CurrentIndex := 0; aTempArray := TempArray; QuickRep1.Preview; end; procedure FrmForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); begin if High(aTempArray) >= CurrentIndex do begin MoreData := True; QRLabel_Land.Caption := FloatToStr(TempArrayDruck[CurrentIndex,0]); QRLabel_KM.Caption := FloatToStr(TempArrayDruck[CurrentIndex,1]); Inc(CurrentIndex); end; end; end. |
HI,
danke das war meine Rettung. Ich habe mal wieder viel zu kompliziert gedacht. Muss nur noch nen Filter drumrumbauen und dann FERTIG!! Vielen vielen Dank! :hello: Gruß, Mada :cat: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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