In den Formularfeldeigenschaften kann eine Scriptfunktion hinterlegt werden die immer dann aufgerufen wird, wenn das entsprechende Feld neue Dateninhalte erhält.
Hier können Dateninhalte erzeugt oder formatiert, oder Feldattribute wie Farbe oder Fonteigenschaften verändert werden.
Das Format der Scriptaufrufdefinition entspricht dem Aufruf für Datensätze selektieren und/oder sortieren.
Die aufgerufene Scriptfunktion muss folgendermaßen definiert sein:
static public object Funktionsname3( IFormDoc theDoc, IFormField field, IFormRecordList records, int recordNumber, string aktValue )
Die Parameter haben folgende Bedeutung:
SOGForms Formular. Dies ist die eigentliche Formularklasse. Sie realisiert den Zugriff auf Formularfelder, Quelldaten u.a. Hier können auch Voreinstellungen für die Druckausgabe beeinflusst werden.
SOGForms Datenfeldobjekt. Das Objekt bietet Zugriff auf alle Eigenschaften des Datenfeldes.
ArrayList (einfache Liste) von XML-Nodes, die jeweils einen Datensatz repräsentieren. Über diese Liste kann auf alle Datensatzinhalte zugegriffen werden um z.B. Summen zu bilden.
Aktuelle Datensatznummer auf die sich die Aufbereitung bezieht. 1 = 1. Datensatz 0 = Kein Datensatzbezug. Auf Folgeseiten wird hier die hochgerechnete, tatsächliche Datensatznummer übergeben.
Bislang ermittelter Datenfeldinhalt. Hat das Formularfeld einen Datenquellenbezug, oder ist es möglich Datenwerte einzugeben, wird hier der aktuelle Datenfeldinhalt übergeben. Die Übergabe erfolgt im internen Datenformat (z.B. numerische Daten immer mit "." getrennt)!
Soll der aktuell formatierte Dateninhalt verwendet werden, kann auf "Field.GetAktValue()" oder "Field.AktValueNumeric" zugegriffen werden!
Rückgabewert: "null" wenn der aktuelle Feldinhalt nicht verändert werden soll. Ein beliebiger anderer Wert: Neuer Feldinhalt. Das Rückgabeobjekt wird von SOG Forms mit Hilfe der Objektfunktion "ToString" in einen String gewandelt. Ist die Rückgabe ein String, muss dieser im internen Format geliefert werden. (z.B. numerische Inhalt mit "."). Die Formatierung des Ergebnisses erfolgt nach dem Scriptaufruf. Soll die anschließende Formatierung nicht erfolgen, kann "Field.FormatField" auf "false" gesetzt werden.
Sollen über den Scriptaufruf Parameter an die Funktion übergeben werden, so müssen diese als weitere Datenfelder des Types "string" im Funktionskopf deklariert werden, wie hier beschrieben.
Hier der genaue Ablauf der Datenfeld Wertermittlung:
Ermittlung des aktuellen Datenfeldinhaltes aus der Datenquelle, einem Fixtext oder einem Beispielwert.
Formatierung des Wertes.
Aufruf der Scriptfunktion. Als Übergabe an das Script erfolgt der nicht formatierte Datenwert.
Neu-Formatierung des Rückgabewertes. Die Formatierung kann vom Script abgeschaltet werden, indem die Feldeigenschaft "FormatField" auf "false" gesetzt wird.