Ereignis OnAfterData

Navigation:  Bericht im FR-Designer > Script >

Ereignis OnAfterData

Previous pageReturn to chapter overviewNext page

Dieses Ereignis wird generiert, nachdem das Objekt im Report mit den verknüpften Daten gefüllt worden ist. Das Ereignis ist praktisch, um die Werte des DB-Feldes oder die Ausdrücke im Objekt zu analysieren. Tatsache ist, dass sich dieser Wert in der Dienstvariable Value befindet und deren Werte sind nur in diesem Ereignis zugänglich. Hat man zwei Objekte "Text" mit dem Inhalt  [Table1."Field1"] und  [<Table2."Field1"> + 10], kann man die Werte dieser Ausdrücke bequem analysieren, wenn man sich auf die Variable Value bezieht:

 

PascalScript:

 

if Value > 3000then

 Memo1.Color := clRed

 

C++ Script:

 

if (Value > 3000)

 Memo1.Color = clRed;

 

anstatt etwas wie dies zu schreiben:

 

PascalScript:

 

if <Table1."Field1"> > 3000then

 Memo1.Color := clRed

 

C++ Script:

 

if (<Table1."Field1"> > 3000)

 Memo1.Color = clRed;

 

Darüber hinaus  gibt die Verwendung von Value, anstatt eines Ausdrucks, die Möglichkeit einen universellen Bearbeiter für das Ereignis OnAfterData zu erstellen und diesen mit mehreren Objekten zu verknüpfen.

 

Eins muss noch erwähnt werden, enthält das Objekt mehrere Ausdrücke z.B. [expr1] [expr2], so wird in die Variable Value der Wert des letzten Ausdruckes übernommen.

 

Das Ereignis OnAfterData passt ausgezeichnet, um die Höhe und Breite von Objekten wie z.B. "Text" zu berechnen. Sprich, wenn man im Script des Reports den tatsächlichen Wert der Höhe des Objekts haben möchte (dehnbares Objekt) und im Objekt "Text" wird ein Ausdruck verwendet, so kann man solch ein Script benutzen im Ereignis OnAfterData:

 

PascalScript:

 

var

 MemoWidth: Extended;

 

begin

 MemoWidth := TfrxMemoView(Sender).CalcWidth;      

end;

 

C++ Script:

 float MemoWidth;

 

 MemoWidth = TfrxMemoView(Sender).CalcWidth;

 

Wenn der Datencode in das Ereignis OnBeforePrint einfügt wird, so wird das Resultat, die Höhe des Objektes (welches den Ausdruck enthält)  und nicht sein Wert sein.