Tabellen sind die logischen Entwurfsobjekte der Business Logic Layer und der Data Access Layer in CBA. Sie stellen logische Strukturen dar und können direkt oder per Object-Relation-Mapping den Tabellenstrukturen einer Datenquelle angepasst werden. Durch die programmtechnissche Realisierung der Business Logic in Form von Business Locig Units (BLUs) bzw. des Data Access in Form von Data Access Units (DAUs) werden einer Tabelle die Parameter und Methoden dieser Units vererbt. Damit repräsentiert eine Tabelle neben der Datenhaltung objektorientierte Strukturen in Form der Methoden der BLU bzw. DAU.
Tabellen setzen im Rahmen des CBA-Frameworks folgende Anforderungen um:
Tabellen haben eine zentrale Stellung im CBA-Framework. Sie werden durch DataTable-Objekte im ADO.NET-DataSet repräsentiert und implementieren folgende Funktionalitäten:
Nachfolgend werden die wichtigsten Konfigurations-Informationen beschrieben:
Damit sind sowohl die Struktur der Tabelle als auch alle notwendigen Eigenschaften frei konfigurierbar.
CBA verwendet in verschiedenen Entwurfsobjekten Filter zur Einschränkung der ausgewählten Daten, z.B. in Tabellen, Oberflächen oder Datentypen. Außerdem können Filter in verschiedenen Funktionen verwendet werden. Filter können erfasst werden, indem eine spezielle Bedienoberfläche über das Icon Filter aufgerufen wird oder der Filter in der nachfolgend beschriebenen Syntax im Eingabefeld erfasst wird. Für Filter gilt eine einheitliche Syntax. In geschweifte Klammern {} eingeschlossene Ausdrücke können beliebig oft (0 … n-mal) vorkommen. In eckige Klammern eingeschlossene Ausdrücke können optional (0 oder 1-mal) vorkommen. Vordefinierte Sprachelement werden in Fettschrift dargestellt. Lexikalische Sprachelemente sind kursiv geschrieben und werden nachfolgend erläutert. Die semantische Bedeutung des Ausdruckes ist nach dem Kommentarzeichen "//" angegeben.
Filter | Element | Bedeutung |
---|---|---|
filter | filter-element {& filter-element} | Liste AND-verknüpfter Filter-Elemente |
filter | [~] ( element {| element} ) | Liste OR-verknüpfter Filter-Elemente,'~' bedeutet Negation (NOT) |
filter-element | name operator value | Prüfung eines Attributes auf einen Wert |
filter-element | filter | Aufruf eines untergeordneten Filter-Konstruktes |
Dabei haben die lexikalischen Begriffe folgende Bedeutung:
CBA unterstützt folgende Operatoren:
Operator | Lexik | Bedeutung |
---|---|---|
= | = | Attributwert ist gleich dem angegebenen Wert |
< | < | Attributwert ist kleiner dem angegebenen Wert |
> | > | Attributwert ist größer dem angegebenen Wert |
<> | <> | Attributwert ist ungleich dem angegebenen Wert |
⇐ | ⇐ | Attributwert ist kleiner oder gleich dem angegebenen Wert |
>= | >= | Attributwert ist größer oder gleich dem angegebenen Wert |
UNIFY | # | Attributwert ist gleich Wert oder gleich Default-Wert |
CONTAINS | % | Attributwert enthält mindestens ein in Wert enthaltenes Zeichen |
LIKE | § | Eine Teilzeichenkette des Attributwertes entspricht dem angegebenen Wert. Als Platzhalter wreden die in SQL üblichen Platzhalter '%' für eine beliebige Zeichenkette und '_' für ein einzelnes Zeichen verwendet. |
IN | @ | Attributwert ist ein Wert aus der Aufzählungsliste (durch Komma seperierte Wertelist oder SELECT-Anweisung) |
Zu den definierten Filtern werden automatisch die notwendigen Bedingungen zur Realisierung der Mandantenfähigkeit, der Historisierung, der Datierung und Versionierung hinzugefügt.
CBA bietet in verschiedenen Entwurfsobjekten Möglichkeiten zum Sortieren von Datensätzen an. Sortier-Möglichkeiten bieten zudem verschiedene Funktionen an. Sortier-Anweisungen werden in der nachfolgend beschriebenen Syntax im Eingabefeld erfasst. Die Syntaxbeschreibung ist analog zu Filtern In geschweifte Klammern {} eingeschlossene Ausdrücke können beliebig oft (0 … n-mal) vorkommen. In eckige Klammern eingeschlossene Ausdrücke können optional (0 oder 1-mal) vorkommen. Alternativen werden durch das Trennzeichen '|' gekennzeichnet. Vordefinierte Sprachelement werden in Fettschrift dargestellt. Lexikalische Sprachelemente sind kursiv geschrieben und werden nachfolgend erläutert.
sort | sort-element {, sort-element} | Liste von Sortier-Elementen |
sort-element | [+|-]name | optional vorzeichenbehafeter Attribute-Name ,'-' bedeutet absteigende Sortierung (DESC) , sonst wird aufsteigend sortiert (ASC) |
Dabei haben die lexikalischen Begriffe folgende Bedeutung: