Einzelnen Beitrag anzeigen

LKutscher

Registriert seit: 25. Sep 2003
7 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Quickreport Vorschau und Druck

  Alt 27. Apr 2004, 10:28
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:

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 !!!';
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.
Die Methode ShowReport kannst du auf dem QR-Formular als public Methode deklarieren und dann (statt Form8.QuickReport.Preview)
als Form8.ShowReport aufrufen.
  Mit Zitat antworten Zitat