Datenfilter (Ab Version 9.0.4)

Ein Datenfilter enthält parametrisierbare Bedingungen, die für bestimmte Daten-Elemente als Einschränkung verwendet werden können. Die Analogie im SQL wäre die WHERE Bedingung einer Parameterabfrage.

Die Definitionen der Datenfilter liegen im Verzeichnis "DataFilters". Pro Datenfilter existiert eine eigene Datei. Der zur Referenzierung verwendete Name wird als Dateiname verwendet.

Die Dateien enthalten jeweils die Definition eines Datenfilters, die wie folgt aufgebaut ist (Attribute, die in AppDesigner-Übersichten angezeigt werden sollen (nicht nur in Detailansichten), sind unterstrichen; Attribute, die auch in der Übersetzungsdatei liegen, sind fett markiert):

Eigenschaften des Datenfilters

Bereich

Eigenschaft

Wert

Bereich

Eigenschaft

Wert

Allgemeines

Name

(Name)

Name des Datenfilters

 

Anhängen an Datenfilter der Partner-Kennung

(AppendToPartnerId, AppendToPackageID)

Partner- und Lösungs-Kennung (bei Sage „Sage“) des gleichnamigen Datenfilters, an den diese Definition angehängt werden soll;

Einsatzzwecke:

  • Sub-Datenklassen an den Datenfilter anhängen

  • Zusätzliche Datenquellen an den Datenfilter anhängen

  • Parameter an den Datenfilter anhängen

  • SQL-Filter an den Datenfilter anhängen

Hinweis: Anhängen ist immer einstufig, Verkettungen sind nicht möglich

 

Titel

(Titel

Titel des Datenfilters

 

Kommentar

(Comment)

Beliebiger Kommentar zur Dokumentation.

Der Kommentar wird nicht zum Client übertragen und dient nur zur Dokumentation von Besonderheiten, Hinweisen, etc. Bei Auslieferung/Weitergabe der Lösung wird der Kommentar eingeschlossen, so dass der Empfänger ihn im AppDesigner sieht.

Verweise

Name Datenklasse

(DataClassName, DataClassPartnerId, DataClassPackageId)

Partner- und Lösungs-Kennung und Name der Datenklasse.

 

Sub-Datenklassen

(SubDataClasses)

Liste von Datenklassen-Definitionen.

Wenn in einem Datenbereich zusätzliche Datenklassen definiert sind, z.B. "clsErsatzartikel" oder auch "clsArtikelVarianten", die beide ebenfalls auf der Tabelle "KHKArtikel" basieren, können diese hier hinzugenommen werden.

Bei angehängten Filtern (siehe "AppendTo") wird dieser Wert an die vorhandene Liste angehängt.

 

Verweis auf benutzerdefinierte Felder

(UserDefinedFieldsSource

Verweislist auf benutzerdefinierte Felder (Definition in Tabelle "USysSetup", Einträge "Tree"="UserFields"; z.B. "Adresse" oder "Artikel").

Diese Eigenschaft verbindet den Datenfilter mit allen Daten-Elementen, bei denen in der Definition in der gleichnamigen Eigenschaft der gleiche Wert enthalten ist.

 

Zusätzliche Datenquellen

(AdditionalDataSources)

Liste von Datenquellen-Definitionen.

Nur für Ausnahmefälle als direkter Bezug. In der Regel werden Daten-Elemente über die Eigenschaft "UserDefinedFieldsSources" mit diesem Datenfilter verbunden.

Bei angehängten Filtern (siehe "AppendTo") wird dieser Wert an die vorhandene Liste angehängt.

Filter

Parameter

(Parameters)

Parameter in Form einer Liste:

  • Name des Parameters (Schlüssel)

  • Titel des Parameters (für Anwender sichtbar)

  • Position des Parameters (Sortierung im Dialog; muss größer 0 sein)

  • Datentyp des Parameters:

    • 1 = Boolean

    • 2 = Int32

    • 3 = Decimal

    • 4 = Date

    • 5 = String (Default)

    • 6 = DateTime

    • 7 = Time

    • 8 = Duration

    • 23 = Currency

    • 100 = Schlüssel 1 einer Datenklasse

  • Datenklasse:
    Für den Fall, dass der Datentyp "Schlüssel 1 einer Data Class" eingestellt ist, muss hier die entsprechende Datenklasse im Format "<name>.<partnerid>.<packageid>" angegeben werden.

  • Defaultwert für die Eingabe: Die Angabe eines Ausdrucks (muss mit "=" beginnen) ist zulässig, wobei dort kein Zugriff auf andere Felder erlaubt ist.Datumswerte müssen im ISO-Format ("yyyy-mm-dd" bzw. "yyyy-mm-ddThh:mm:ss") angegeben werden. Zahlen mit Nachkommastellen müssen Kultur-invariant angegeben werden, d.h. mit Punkt und nicht mit Komma.

  • Pflichtfeld:
    Legt fest, ob für diesen Parameter eine Werteingabe verpflichtend ist. Parameter, die in der SQL-Abfrage unbedingt benötigt sind, müssen hier als Pflichtfeld markiert werden.

Die definierten Parameter stehen in allen SQL-Bedingungen zur Verfügung. Im Zuweisungsdialog der Datenfilter werden jedoch nur die jeweils genutzten Parameter abgefragt.

Bei angehängten Filtern (siehe "AppendTo") werden die dort definierten Parameter an die vorhandene Parameter-Liste angehängt.

Kommt es beim Anhängen zu Namenskollisionen, werden die Parameter-Definitionen nach aufsteigenden Partner- und Lösungs-Ids mit Sage beginnend verwendet (Namenskollisionen werden im Tracelog protokolliert).

 

SQL-Bedingungen

(Conditions)

SQL-Bedingungen in Form einer Liste:

  • Name der SQL-Bedingung (Schlüssel)

  • Titel der SQL-Bedingung (für Anwender sichtbar)

  • SQL-String:

    • Im SQL-String können Platzhalter in der üblichen Notation "$[...]" und für die Parameter der Platzhalter "$[Parameter(name)]" (maximal 9) verwendet werden. Leere Strings werden als NULL im SQL ersetzt (siehe auch Hinweise in der Beschreibung des Platzhalters "$[Parameter(name)]").

    • Statische Filter ohne Platzhalter sind auch möglich.

Achtung: Die SQL-Feldnamen im SQL-String müssen mit vorangestelltem und durch einen Punkt getrennten Tabellennamen angegeben werden, damit keine Kollisionen auftreten, wenn zur Laufzeit mehrere Tabellen verwendet werden.

Hinweis: Wenn die Datenquelle oder Datenklasse in ihrem "Tables"-Attribut SQL-Aliasnamen verwendet, wird die SQL-Bedingung automatisch darauf angepasst.

Bei angehängten Filtern (siehe "AppendTo") werden die dort definierten SQL-Bedingungen an die vorhandene Liste angehängt.