eva/3 Application BuilderEntwicklung von eva/3 AnwendungenArbeiten mit Formularen 

Arbeiten mit Filtern

Daten die von einem STableElement angeboten werden, können durch den Einsatz von FilterBeans eingeschränkt werden. Bezieht das STableElement seine Daten aus einer Tabelle, bleiben die Daten des STableElement auch nach dem Filtern weiterhin bearbeitbar.

Filter-Komponenten

Um ein STableElement nach den gewünschten Kriterien zu filtern, können Filter-Komponenten in das Formular eingefügt werden, die zur Anwendungslaufzeit die Daten eines STableElement filtern. Zu den Filter-Komponenten gehören die folgenden eva/3 Application Builder Standard-Komponenten:

Filter-Eigenschaften

Das Filtern eines STableElement erfolgt mit den Filter-Komponenten Eigenschaften FilteredTableSource, FilteredControlSource und FilterOperator.

Die Eigenschaft FilteredTableSource spezifiziert das STableElement auf das der Filter angewendet werden, bzw. dessen Daten gefiltert werden sollen.

Die Eigenschaft FilteredControlSource legt die Tabellenspalte des STableElement fest, in dem die Werte enthalten sind, nach denen gefiltert werden soll.

Die Eigenschaft FilterOperator erlaub das Festlegen des Vergleichsoperators nach dem die Daten in der Tabellenspalte, die mit der Eigenschaft FilteredControlSource spezifiziert wurde, gefiltert werden sollen.

Siehe auch: Gemeinsame Eigenschaften zu FilteredTableSource, FilteredControlSource und FilterOperator

Filter-Werte

Wird der Filter-Komponente ein Wert zugewiesen, so wird dieser zur Anwendungslaufzeit automatisch für die Filterung des zur filternden STableElementes angewendet. Bezieht die Filter-Komponente selbst Werte aus einer Tabellenspalte, so wird dieser Wert automatisch als Filterwert verwendet. Dies erlaubt zum Beispiel das Einrichten von 1:n Beziehungen zwischen zwei STableElement-Komponenten. Besitzt die Filter-Komponente keine eigene Datenquelle, so wird der Wert, der mit der Eigenschaft DefaultValue spezifiziert wurde als Filterwert hinzugezogen. Erfolgt eine Eingabe des Benutzers, wird die Benutzereingabe als Filterwert angewendet.

Listenkomponenten wie die SComboBox oder STableComboBox ermöglichen das Filtern nach den vorgegebenen Listenwerten. Der Benutzer hat die Möglichkeit einen vordefinierten Filterwert aus der Listenkomponenten auszuwählen. Beziehen die Listenkomponenten ihren Wert aus einem STabelElement, wird dieser Wert ebenso wie bei den anderen Filter-Komponenten als Filterwert herangezogen.

Filter zur Laufzeit festlegen

Ist zur Entwurfszeit noch nicht bekannt, welches STableElement oder welche Spalte des STableElement zu filtern ist, so kann der Filter auch zur Anwendungslaufzeit eingerichtet werden. Hierbei können die Eigenschaften FilteredTableSource, FilteredControlSource und FilterOperator mit dem Systembefehl SetFilter eingerichtet werden.

Filter mittels Ausdruck zur Laufzeit einrichten

Mit der Hilfe von Ausdrücken lassen sich verschiedene Filteraktionen erstellen und individualisieren.

Siehe auch: Arbeiten mit Ausdrücken.

Soll eine Filteraktion durch eine Schaltfläche ausgeführt werden, so ist dies auch mittels eine Ausdrucks möglich. Um ein STableElement durch einen Klick auf einen SButton zu filtern müssen das STableElement mit den zu filternden Daten, der SButton und ein SFilter im Formular enthalten sein. Wird der SButton ausgelöst, richtet der SButton die SFilter-Komponente so ein, dass das STableElement nach einem vorgegebenen Wert gefiltert wird. Der Ausdruck kann in das ActionPerformed-Event des SButton eingetragen werden:

=SetFilter("currentWindow", "SFilter", "STableElement_unternehmen", "unternehmen_name", 6) ; [SFilter].setDefaultValue("Z") ; [SFilter].initDefaultValue()

Der Ausdruck führt als erstes den Systembefehl SetFilter aus, und richtet die SFilter-Komponente so ein, dass das STableElement mit dem Namen STableElement_unternehmen auf die Werte der Spalte unternehmen_name filtert. Das letzte Paremeter, in diesem Fall die 6, spezifiziert den Filteroperator BEGINS WITH. Weitere mögliche Werte sind:



Der Ausdrucksteil [SFilter].setDefaultValue("Z") spezifziert den Wert, nach dem gefiltert werden soll. In diesem Beispiel werden anschließend alle Datensätze angezeigt, die in der Spalte unternehmen_name mit einem Z beginnen. Dies wird durch das Setzen des DefaultValue der SFilter-Komponente bewekstelligt.

Um den Filter mit dem neuen Filterwert auszulösen ist mit dem letzten Ausdrucksteil die initDefaultValue() Methode der SFilter-Komponente aufzurufen. Der Filter wird nun aktiviert und das STableElement enthält anschließend ausschließlich die mit Z beginnennden Datensätze.

Ist der Filter wieder aufzuheben, so kann dies durch setzen eines Leerzeichens als DefaultValue erfolgen. Beispiel: [SFilter].setDefaultValue(" ")