![]() |
Quickreport Vorschau und Druck
Hallo,
ich habe ein kleines Problem mit dem Quickreport (delphi 6).
Delphi-Quellcode:
vergebe hiermit eine fortlaufende Rechnungsnummer auf jeder Seite der Reports.
procedure TForm8.ChildBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean); ... if form1.radiogroup3.ItemIndex = 1 then begin form1.tb_rg_nr.Last; rgnr := strtoint(copy(form1.tb_rg_nr.fieldbyname('rgnr').Asstring,6,4)) + 1; dummy_rgnr := inttostr(rgnr); dummy_rgnr2 := copy(form1.tb_rg_nr.fieldbyname('rgnr').Asstring,1,5); laenge := 4; laenge := laenge - length (dummy_rgnr); for t := 1 to laenge do begin dummy_rgnr := '0' + dummy_rgnr; end; qrlabel54.Caption := copy(form1.tb_rg_nr.fieldbyname('rgnr').Asstring,1,5) + dummy_rgnr; form1.tb_rg_nr.Edit; form1.tb_rg_nr.Append; form1.tb_rg_nr.fieldbyname('rgnr').Asstring := dummy_rgnr2 + dummy_rgnr; end else begin qrlabel54.Caption := 'keine !!!'; end; .... Rufe den Report mit Preview auf. Rechnungsnummern sind auch alle korrekt. Wenn ich nun den Report aus der Vorschau drucke werden die Rechnungsnummern nochmal vergeben. Also in Preview stehen die Nummern 1,2,3,4,5, auf dem Ausdruck aber die Nummern 6,7,8,9,10. Verstehe ich nicht. kann mir jemand helfen ? Gruss Andreas [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Quickreport Vorschau und Druck
Hai af99,
ersteinmal: "Herlich willkommen in der Delphi-PRAXIS". wenn ich das richtig sehe speicherst Du ja die Rechnungsnummern. Da die ganze Prozedure bei drucken noch einmal durchlaufen wird werden jetzt natürlich die nächsten Rechnungsnummern verwendet. |
Re: Quickreport Vorschau und Druck
hi Sharky,
jep das wusste ich auch !!! (habe ich ja an meinen ausdrucken gesehen). Ich frage mich nur wieso die Prozedur nochmal durchlaufen wird. Ist doch schon alles beim Preview passiert. Es muss doch eigentlich nur Das Ergebnis als "screenshot" ausgedruckt werden. Kann ich irgendwie den nochmaligen Durchlauf verhindern ????? Gruss Andreas |
Re: Quickreport Vorschau und Druck
Hi,
hat keiner eine Idee. Gruss Andreas |
Re: Quickreport Vorschau und Druck
Setze eine Boolean-Variable am Ende der Schleife. Falls die Boolean-Variable schon gesetzt ist, darfst du die Schleife nicht mehr durchlaufen. Nach dem drucken muss die Boolean-Variable zurückgesetzt werden.
|
Re: Quickreport Vorschau und Druck
Hi,
habe ich gemacht (abwechselnd bei allen Ereignissen des QR). Entweder erhalte ich nur noch eine Nummer, Keine Nummer oder wie oben beschrieben 2 x fortlaufende Nummern. Gruss Andreas |
Re: Quickreport Vorschau und Druck
Da das BeforePrint von QR vor jedem Neuaufbau des Berichtes aufgerufen wird (also vor jedem Preview und jedem Print), solltest du das Füllen der Label-Felder an anderer Stelle durchführen - z.B. dort, wo du die Preview aufrufst:
Delphi-Quellcode:
RgNrText kann entweder ein Formularfeld, eine Unit-Variable (Deklaration im Implementation-Abschnitt) oder eine Globale Variable (Deklaration im Interfaces-Abschnitt) sein - je nachdem, von wo aus du darauf zugreifst.var RgNrText: string procedure TForm8.ShowReport; begin [...] form1.tb_rg_nr.Last; rgnr := strtoint(copy(form1.tb_rg_nr.fieldbyname('rgnr').Asstring,6,4)) + 1; dummy_rgnr := formatFloat('0000', rgNr) //hat denselben Effekt, wie deine Schleife dummy_rgnr2 := copy(form1.tb_rg_nr.fieldbyname('rgnr').Asstring,1,5); RgNrText := dummy_rgnr2 + dummy_rgnr; //form1.tb_rg_nr.Edit; (vor dem Append überflüssig) form1.tb_rg_nr.Append; form1.tb_rg_nr.fieldbyname('rgnr').Asstring := RgNrText; QuickReport1.Preview; end; procedure TForm8.ChildBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if form1.radiogroup3.ItemIndex = 1 then begin qrlabel54.Caption := RgNrText; [...] (eventuell zuweisung von RgNrText zu weitern Labels ...) end else qrlabel54.Caption := 'keine !!!'; Die Methode ShowReport kannst du auf dem QR-Formular als public Methode deklarieren und dann (statt Form8.QuickReport.Preview) als Form8.ShowReport aufrufen. |
Re: Quickreport Vorschau und Druck
Hi,
ersteimal vielen Dank. habe ich umgesetzt und dann leider festellen müssen das ich immer nur eine RGNR habe(ist ja auch logisch da Sie auch nur einmal erzeugt wird). Mein Report besteht aber aus 1-n Rechnungen, also auch aus 1-n Seiten. D.H. ich brauche natürlich auch n Rechnungsnummern. Gruss Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 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