Steuerung der Reportformen

Navigation:  Bericht im FR-Designer > Dialogformen >

Steuerung der Reportformen

Previous pageReturn to chapter overviewNext page

Im vorherigen Beispiel werden die Dialogformen angezeigt. Unabhängig davon, ob wir ein Häkchen bei "Have children" gesetzt haben oder nicht. Schauen wir uns an, wie man den zweiten Dialog verbergen kann, falls kein Häkchen gesetzt worden ist. Hierfür erstellen wir einen Bearbeiter OnClick beim Button OK im ersten Dialog (führen Sie einen Doppelklick auf den Button aus, um den Bearbeiter zu erstellen):

 

PascalScript:

 

procedure Button1OnClick(Sender: TfrxComponent);

begin

 DialogPage2.Visible := CheckBox1.Checked;

end;

 

C++Script:

 

void Button1OnClick(TfrxComponent Sender)

{

 DialogPage2.Visible = CheckBox1.Checked;

}

 

Dieser Code verbirgt den zweiten Dialog (DialogPage2), falls man kein Häkchen gesetzt hat. Wenn wir den Report nun starten, sehen wir, dass der Report einwandfrei funktioniert.

 

Eine andere Möglichkeit der Steuerung der Dialogformen, ist die Verwendung des Ereignisses OnRunDialogs. Um den Bearbeiter dieses Ereignisses zu erstellen, wählen sie das Objekt Report im Reporttree oder im Objektinspektor aus und gehen auf den Tab "Ereignis" im Inspektor. Der Doppelklick auf das Ereignis OnRunDialogs erstellt nun den Bearbeiter:

 

clip0260

 

Im Bearbeiter schreiben wir folgenden Code:

 

PascalScript:

 

procedure frxReport1OnRunDialogs(var Result: Boolean);

begin

 Result := DialogPage1.ShowModal = mrOk;

if Result then

begin

   if CheckBox1.Checked then

     Result := DialogPage2.ShowModal = mrOk;

end;

end;

 

C++Script:

 

void frxReport1OnRunDialogs(bool &Result);

{

 Result = DialogPage1.ShowModal == mrOk;

if (Result)

 {

   if (CheckBox1.Checked)

     Result = DialogPage2.ShowModal == mrOk;

 }

}

Der Bearbeiter arbeitet folgendermaßen: wir zeigen den ersten Dialog. Wird dieser mit OK geschlossen, schauen wir uns das Kontrollkästchen CheckBox1 an und zeigen den zweiten Dialog, falls nötig. Gibt der Bearbeiter Result = True wieder, so wird der Report erstellt. Ist Result = False, so wird der Report gestoppt.