Wenn in einem Formular SFormattedFields zum Filtern von Datensätzen benutzt werden, um Beispielsweise in einem SScrollTable die Anzahl der Datensätze einzuschränken, und von diesem Formular aus einen Bericht, mit genau diesen Einschränkungen geöffnet wird, müssen die Einstellungen des SFormattedFields in der SQL Anweisung, des Berichtes mit currentForm!Feldname Konstrukten abgebildet werden.
Man kann beliebig viele currentForm!Feldname Konstrukte in der SQL Anweisung einsetzen. Wenn nach mehreren Feldern gefiltert werden soll, kann man die WHERE Klausel entsprechend den Einstellungen in den SFormattedFields und dem STableElement aufbauen:
Beispiel:
SELECT * FROM books WERE (author LIKE 'currentForm!txt_author%') AND (title LIKE 'currentForm!txt_title%')
Das AND entspricht dem Vorgabewert der Eigenschaft UseOrOperator im STableElement (deaktiviert). Wenn diese Eigenschaft aktiviert ist, entsprich dies dem OR Operator.
Durch Wildcards kann man die Eigenschaft FilterOperator der SFormattedFields nachbilden:
| FilterOperator | Entsprechende SQL Operartion |
|---|---|
| a* | spalte LIKE 'currentForm!Feldname%' |
| a*a | spalte LIKE '%currentForm!Feldname%' |
| *a | spalte LIKE '%currentForm!Feldname' |
So entspricht jedes currentForm!Feldname einem der filternden SFormattedFields.
Beispiel: Wenn bei einer Formulierung wie
spalte LIKE 'currentForm!Feldname%'
das Feld lehr ist, wird diese in die Formulierung
spalte LIKE '%'
übersetzt. In diesem Fall gibt es nichts, nach dem gefiltert wird. Hat das Feld den Wert abc, wird die Formulierung
spalte LIKE 'abc%'
generiert. Dies entspricht dem Verhalten eines SFormattedField mit der Einstellung a*.