Beispiel der Nutzung des Ereignisses OnBeforePrint
Demonstrieren wir das oben genannte an einem Beispiel. Erstellen wir einen Report und zwar eine Kundenliste, die nur Unternehmen enthalten soll deren Name mit „A“ beginnt.
Erstellen wir ein neues Projekt in Delphi und legen auf die Seite die Komponenten TTable, TfrxDBDataSet, TfrxReport und stellen diese wie folgt ein:
Table1:
DatabaseName = 'DBDEMOS'
TableName = 'customer.db'
frxDBDataSet1:
DataSet = Table1
UserName = 'Customers'
Gehen wir in den Reporteditor und erstellen einen Report mit folgendem Aussehen:
Markieren wir das Datenband und gehen auf den Tab „Ereignisse“ im Objektinspektor:
Um den Bearbeiter des Ereignisses OnBeforePrint (dieses passt hier am besten) zu starten, müssen wir einen Doppelklick mit der Maus auf eine leere Stelle gegenüber den Namen des Ereignisses durchführen:
Dadurch wird in den Scripttext ein leerer Bearbeiter hinzugefügt und der Designer schaltet auf den Tab „Code“:
Die Arbeitsweise ist der der Umgebung Delphi ähnlich. Wir müssen nur noch den folgenden Code in den Bearbeiter eingeben.
PascalScript:
if Copy(<Customers."Company">, 1, 1) = 'A' then
MasterData1.Visible := True else
MasterData1.Visible := False;
C++Script:
if (Copy(<Customers."Company">, 1, 1) == "A")
MasterData1.Visible = true;
else
MasterData1.Visible = false;
Starten wir den Report und überzeugen uns, dass das Script richtig funktioniert:
Sie können einen Bearbeiter für mehrere Ereignisse verschiedener Objekte bestimmen. In diesem Fall Parameter Sender bestimmt das Objekt, welches das Ereignis initialisiert hat (analog dem Parameter Sender in den Ereignissen Delphi). Um dem Ereignis den Namen eines schon bestehenden Bearbeiters zu geben, kann dieser manuell im Objektinspektor eingetragen werden oder man kann ihn in der Drop-Down-Liste auswählen (ebenfalls analog der Umgebung Delphi):
Der Link zum Bearbeiter kann leicht entfernt werden. Wählen Sie die Eigenschaft aus und klicken auf Entf.