Die Perspektive Prüfregeln, Abfragen… umfasst die ASYS-Repositoryobjekte der Prüfregeln und Abfragen sowie der Fehlertexte und Abhilfetexte. Die beiden erstgenannten Objektklassen werden in dieser Perspektive definiert, aber größtenteils in den Konfigurationsoptionen der anderen Perspektiven zur Verwendung referenziert. Die beiden Textbausteinobjektklassen sind Hilfsobjekte für die Prüfregeln. Die genannten Objektklassen sind global für alle Repository-Standorte gültig und nutzbar.
Die in dieser Perspektive konfigurierbaren Repository-Objekte sind:
Zuoberst befinden sich auf dem Tab-Reiter eine Zeile mit Buttons:
Der darunter befindliche Bereich des Tab-Reiters einer Abfrage im Bearbeitungsbereich des Administrators gliedert sich in zwei Abschnitte:
Den unteren Teil des Bearbeitungsbereichs nimmt ein Abschnitt mit vierzehn Tab-Reitern ein. Aufgrund der Anzahl konfigurierbarer Eigenschaften einer Abfrage und der Menge anderer Objektklassen, in denen Abfragen verwendet werden können, lassen sich in der Standardbildschirmauflösung leider nicht alle Tab-Reiter nebeneinander anzeigen.
Die Tab-Reiter können in zwei Gruppen eingeteilt werden:
Auf die Bestandteile des Abfragecodes wird an dieser Stelle nicht eingegangen, hierzu gibt es eine gesonderte Seite über den Abfragecode.
Die erläuternden Abbildungen zu den via Strg+Leertaste oder automatisch öffnenden kontextsensitiven Eingabehilfen stellen hinsichtlich der in den Abbildungen enthaltenen Funktions- oder Codefragmentlisten bzw. der Auswahlmöglichkeit von Klassen oder Attributen nur das jeweilige Prinzip als Symbolbild dar. Diese Abbildungen werden nicht laufend an den tatsächlichen Stand der Eingabehilfe angepasst!
Der Tab-Reiter Code 1 nimmt die vier wichtigeren Codegruppen der Abfragen auf:
Die restlichen Codegruppen folgen auf auf dem Tab-Reiter Code 2.
Die beiden ersten Codegruppen dürfen nicht leer bleiben, damit eine ausführbare Abfrage erstellt werden kann. Zumindest muss angegeben werden, aus welcher/welchen Tabelle(n) der ASYS-Datenbank Datensätze abgefragt und welche Tabellenspalte(n) ausgegeben werden sollen. Alle weiteren Gruppen können bedarfsweise leer bleiben.
Leere Codegruppen werden automatisch minimiert. Ihr Platz im Bearbeitungsbereich der Abfrage wird gleichmäßig auf die gefüllten Codegruppen aufgeteilt. Alle Codegruppen können manuell geöffnet und geschlossen werden. Hierzu befindet sich rechts oben in der Überschriftenzeile der Gruppe eine Schaltfläche, die zwischen schließen und öffnen in Abhängigkeit vom Zustand der Gruppe umschaltet.
Alle Codegruppen werden zeilenweise ausgewertet, d.h ein Ausdruck in der jeweiligen Gruppe muss in einer einzigen Zeile beginnen und abgeschlossen werden. Komplexe Ausdrücke über mehrere Zeilen sind nicht möglich, da mehrere Zeilen nicht als zusammengehörig markiert werden können. Dies gilt auch für Klammerausdrücke.
Verwenden Sie für die in den folgenden Abschnitten einzutragenden Codefragmente ausschließlich Standardzeichen des Alphabets!
Deutsche Sonderzeichen (äÄ, öÖ, üÜ, ß) sind unbedingt zu vermeiden, da die nicht als Platzhalter für Datenbankattribute dienenden Bestandteile der Abfragendefinition unverändert in die generierten SQL-Kommandos an die Datenbank durchgereicht werden. Die Datenbanken können aber die vom lateinischen Standardalphabet abweichenden Zeichen meist nicht korrekt verarbeiten.
Die nachfolgenden Abbildungen zu den Eingabehilfen stellen nur das Prinzip dar. Welche Eingabehilfen angeboten werden, ist abhängig von der jeweils eingesetzten Programmversion des Repository-Administrators. Der Umfang der auswählbaren Funktionen kann sich daher mit der Zeit ändern, weshalb die Abbildungen einen älteren Versionsstand wiedergeben können.
Hinweise zum Abfragecode und den Ausdrücken finden Sie im Abschnitt CLASSES.
In diesem Abschnitt werden die Tabellen und Sichten (= Views) der ASYS-Datenbank eingetragen, die in der Abfrage verwendet werden sollen. Alle Tabellen und Views, aus denen Datenfelder in den weiteren Abschnitten (→ Codegruppe RESULTS bis HAVING) verwendet werden sollen, müssen hier eingetragen werden. Für jede genutzte Tabelle und jeden View muss eine Zeile eingetragen werden. Damit eine Abfrage ausgeführt werden kann, muss mindestens eine Tabelle oder ein View eingetragen werden.
Jede Tabelle wird durch einen Alias-Namen vertreten, um bei langen Tabellen- oder Viewnamen mit kurzen Alias-Namen arbeiten zu können.
Im Datenmodell bereits verbundene Tabellen können automatisch in der Abfrage verknüpft werden. Hierzu ist die Verkettung in Form von 'Tabellenname1.Tablellenname2' anzugeben. Bei der Interpretation der Abfragendefinition wird daraus automatisch das passende Verknüpfungsstatement zwischen den beiden Tabellen generiert.
Wird in einer leeren Zeile Strg+Leertaste gedrückt, öffnet sich ein Auswahlfenster der Datenmodellobjekte (= Tabellen & Views) der ASYS-Datenbank:
Die alphabetisch sortierte Liste der Datenmodellobjekte wird ergänzt durch eine Anzeige rechts der Liste mit einem Erläuterungstext zur Objekt aus dem Fachobjektemodell (FOM) von ASYS (liegt kein Erläuterungstext vor, bleibt das Anzeigefenster geschlossen). Ein Eintrag aus der Auswahlliste wird per Doppelklick ausgewählt.
Wird hinter ein Datenmodellobjekt ein Punkt geschrieben, so öffnet sich das Auswahlfenster mit denjenigen Datenmodellobjekten, die von dem Objekt vor dem Punkt im Datenmodell erreichbar sind:
Die Verknüpfung der Tabellen erfolgt seit ASYS V6.02 auf neue Weise und automatisch mittels JOIN-Ausdrücken4). Diese Verknüpfungsausdrücke werden weiterhin automatisch aus den hier im CLASSES-Abschnitt eingetragenen Tabellennamenverkettungen generiert.
Alle bisherigen Tabellenverknüpfungen werden hierbei in INNER-JOIN-Statements übersetzt - dies entspricht der bisherigen Abfragenlogik. Das bedeutet, dass als Treffer nur diejenigen Datensätze in Frage kommen, die für jede der angegebenen Tabellenverknüpfungen auch mindestens eine Datensatzverknüpfung besitzen (Beispiel: Werden die Entsorgerbetriebsstätte und die Teilanlagen in einer Anlage verknüpft, so kommen nur noch Datensätze als Treffer in Frage, bei denen für den Entsorgerbetrieb auch mindestens eine Teilanlage in der Datenbank eingetragen ist. Entsorgerbetriebe ohne Teilanlage werden kein Bestandteil der Trefferliste, auch wenn sie den übrigen Filterbedingungen des CONDITIONS-Abschnittes genügen.).
Mit dem Wechsel zu JOIN-Ausdrücken für Abfragen ist nun auch die Formulierung von OUTER-JOIN-Statements möglich. Das bedeutet, dass als Treffer auch diejenigen Datensätze in Frage kommen, die keinen verknüpften Datensatz besitzen (Beispiel: Ein Outer-Join von Entsorgerbetrieb und Teilanlagen, liefert auch die Entsorgerbetriebe ohne Teilanlagen, die den übrigen Bedingungen im CONDITIONS-Abschnitt genügen.).
Die üblichen CLASSES-Ausdrücke werden immer als INNER-JOIN-Statement ausgewertet:
FKB=Fkb FKB.Betrieb=Btr
Diese Tabellenverknüpfung liefert nur FKB-Datensätze mit mindestens einem zugehörigen Betriebsstättendatensatz.
Durch einen * am Ende des Klassen-Aliasnamens wird aus dem CLASSES-Ausdruck ein OUTER-JOIN-Statement:
FKB=Fkb FKB.Betrieb=Btr*
Diese Tabellenverknüpfung liefert zusätzlich auch FKB-Datensätze, denen keine Betriebsstättendatensatz zugeordnet ist.
In beiden Fällen müssen aber zusätzlich auch noch die Bedingungen aus dem CONDITIONS- und dem HAVING-Abschnitt für die Trefferdatensätze erfüllt sein!
Damit die Verknüpfung der Tabellen mittels JOIN-Statements erwartungsgemäß funktioniert, müssen ALLE Tabellen im CLASSES-Abschnitt mittels der Punktnotation 'Tabellenname1.Tabellenname2' untereinander verbunden sein!
Ob eine OUTER-JOIN-Bedingung von einer INNER-JOIN-Bedingung gefolgt werden darf, ist möglicherweise von der verwendeten Datenbank abhängig und muss ggf. ausprobiert werden. Beispiel:
FKB=Fkb FKB.Betrieb=Btr* Betrieb.Adresse=Adr
Eine Mischform aus JOIN-Statements und zusätzlichen Statements im CONDITIONS-Abschnitt ist im Prinzip möglich (s. Abfragecode und Ausdrücke). Dies kann aber auch von der verwendeten Datenbank und der konkreten Formulierung der Tabellenverknüpfung abhängen.
In diesem Abschnitt werden die Spalten definiert, die im Ergebnis angezeigt werden. Für jede Ergebnisspalte muss genau eine Zeile in diesem Abschnitt eingetragen werden. Damit eine Abfrage ausführbar ist, muss zumindest eine Ergebnisspalte definiert sein. Alle Spalten, die hier definiert werden, müssen sich aus Attributen der Tabellen oder Views (→ Codegruppe CLASSES) ermitteln lassen5).
Jede Spalte wird durch einen Alias-Namen vertreten, da für die Referenzierung der Attributnamen nicht die physischen Attributnamen der Datenbank, sondern die Modellnamen des ASYS-Fachobjektemodells verwendet werden.
Bitte verwenden Sie für die Alias-Namen bei Abfragen für Textformulare IMMER GROßBUCHSTABEN. Dies verhindert Probleme, die gelegentlich auftreten, wenn das gleiche Attribut mehrfach mit verschiedenen Alias-Namen ausgegeben wird!
Wird in einer leeren Zeile Strg+Leertaste gedrückt, öffnet sich ein Auswahlfenster mit Vorschlägen zur Definition einer Ausgabespalte. Da ein Spaltenalias entweder vor dem Platzhalter mit dem Modellnamen des Attributs, oder dahinter definiert werden kann, enthält die Auswahlliste Einträge für beide Alternativen. Aus diesem Grunde werden auch die Tabellenaliase aus dem CLASSES-Abschnitt hier wieder zur Auswahl angeboten.
Die Liste wird ergänzt durch eine Anzeige rechts der Liste mit einem Erläuterungstext. Bei den Tabellenaliasen kommen die Informationen aus dem Fachobjektemodell (FOM) von ASYS (liegt kein Erläuterungstext vor, bleibt das Anzeigefenster geschlossen). Ein Eintrag aus dieser und den nachfolgend beschriebenen Auswahllisten wird per Doppelklick ausgewählt.
Wird hinter einem Gleichheitszeichen ( = ) die Tastenkombination Strg+Leertaste gedrückt, öffnet sich ein Auswahlfenster mit Aggregatfunktionen - die erste Zeile dieser Liste ermöglicht aber auch, einen einfachen nicht aggregierten Attributausdruck anzulegen.
Die Liste wird ergänzt durch eine Anzeige rechts der Liste mit einem Erläuterungstext.
Achten Sie bitte auf diese Erläuterungstexte!
Für einige Einträge dieser Auswahl kann die Einschränkung gelten, dass sie nur mit einer bestimmten Datenbank - Oracle, MS SQL-Server oder Access - genutzt werden können.
Wird in eine Zeile die Zeichenkombination {% geschrieben, öffnet sich ein Auswahlfenster mit den Class-Aliasen aus dem CLASSES-Abschnitt:
Wird hinter einen Class-Alias ein Punkt geschrieben, öffnet sich ein Auswahlfenster mit den Attributen der zugehörigen Tabelle. Die Auswahlliste ist alphabetisch sortiert:
Wird ein Attribut ausgewählt, so wird der Platzhalterausdruck automatisch mit der Zeichenkombination %} abgeschlossen.
In diesem Abschnitt werden die Bedingungen definiert, denen die Datensätze der Ergebnismenge gehorchen müssen. Der Bedingungsabschnitt kann leer bleiben, die Ergebnismenge ist dann der komplette Inhalt einer Tabelle oder Tabellenverknüpfung (je nach Inhalt des CLASSES-Abschnittes).
Jede Bedingung muss in genau einer Zeile formuliert werden (komplexere Ausdrücke mit AND- oder OR-Verknüpfungen können daher zu entsprechend langen Zeilen führen!). Alle Bedingungen (= Zeilen) werden grundsätzlich mittels AND verknüpft, d.h. ein Datensatz der Ergebnismenge muss ALLE Bedingungen erfüllen.
Werden Klammern benötigt, um Bedingungen zusammenzufassen bzw. zu hierarchisieren, so muss der Ausdruck in der obersten Klammerebene in eine Zeile geschrieben werden.
Beispiele:
Die Buchstaben A bis F sind nachfolgend in diesem Beispiel als Platzhalter für beliebige Bedingungsausdrücke zu verstehen.
A B C D E F
A (B or C) (D or E) F
(A or ((B or C) and (D or E)) or F)
Wird in einer leeren Zeile Strg+Leerzeichen gedrückt, öffnet sich ein Auswahlfenster mit typischen Fragmenten für Bedingungsausdrücke:
Die Liste wird ergänzt durch eine Anzeige rechts der Liste mit einem Erläuterungstext zum jeweiligen Fragment sowie ggf. typischen Anwendungsbeispielen. Ein Eintrag aus dieser und den nachfolgend beschriebenen Auswahllisten wird per Doppelklick ausgewählt.
Wird die Zeichenkombination {% eingegeben, öffnet sich ein Auswahlfenster mit den Class-Aliasen aus dem CLASSES-Abschnitt:
Wird die Zeichenkombination {* eingegeben, öffnet sich ein Auswahfenster mit den Modellnamen der Tabellen aus dem ASYS-Fachobjektemodell:
Wird hinter einen Class-Alias oder einen Fachobjektemodel-Tabellennamen ein Punkt geschrieben, öffnet sich ein Auswahlfenster mit den Attributen der zugehörigen Tabelle. Die Auswahlliste ist alphabetisch sortiert:
Wird ein Attribut ausgewählt, so wird der Platzhalterausdruck automatisch mit der Zeichenkombination %} bzw. *} abgeschlossen.
Wird hinter einer schließenden geschweiften Klammer ( } ) die Tastenkombination Strg+Leerzeichen gedrückt, erscheint ein Auswahlfenster der Vergleichsoperatoren.
In diesem Abschnitt werden die Datenbankattribute eingetragen, nach denen die Datensätze des Ergebnisses gruppiert werden soll. Alle Datensätze, die in einem Gruppierungsattribut den gleichen Wert enthalten, bilden zusammen eine Gruppe. Jeder Datensatz im Abfrageergebnis ergibt sich daher aus einem oder mehreren Datensätzen der Datenbank.
Alle Attribute, nach denen gruppiert werden soll, müssen in eine Zeile dieses Abschnitts eingetragen werden und sind durch Kommata (,) zu trennen.
Für alle Spalten im RESULTS-Abschnitt, die nicht gleichzeitig ein Gruppierungsattribut sind, muss grundsätzlich festgelegt werden, wie der Wert der Spalte im Ergebnis für die Gruppe ermittelt werden soll, da sich die Datensätze einer Gruppe in diesen Spalten ja unterscheiden können. Hierfür sind alle diese Spalten mit einer Aggregatfunktion zu definieren. Dies erfolgt im Abschnitt RESULTS (s.o.).
Eine Gruppierung der Datensätze kann über eine oder mehrere Spalten erfolgen. Wird über mehrere Spalten gruppiert, ist die Reihenfolge der Spalten für die Gruppierung zu beachten. Alle Datensätze werden nach der ersten Gruppierungsspalte gruppiert. Die Datensätze dieser Gruppen werden anschließend gruppenweise nach der folgenden Gruppierungsspalte gruppiert. Entsprechend wird vorgegangen, wenn weitere Gruppierungsattribute definiert werden.
Eine Gruppierung muss nicht notwendigerweise über Spalten erfolgen, die auch im Ergebnis (→ Abschnitt RESULTS) erscheinen. Sie muss aber über Spalten erfolgen, die Bestandteil der Tabellen oder Views sind (→ Abschnitt CLASSES) oder sich aus diesen ermitteln lassen. Eine Gruppierung kann über eine berechnete Spalte erfolgen, wenn die Datenbank dies unterstützt6).
Wird in einer leeren Zeile Strg+Leerzeichen gedrückt, öffnet sich ein Auswahlfenster mit nur einem auswählbaren Eintrag:
{%
Wird die Zeichenkombination {% eingegeben, öffnet sich ein Auswahlfenster mit den Class-Aliasen aus dem CLASSES-Abschnitt (vergl. Abbildungen weiter oben). Ein Eintrag aus dieser und der nachfolgend beschriebenen Auswahlliste wird per Doppelklick ausgewählt.
Wird hinter einen Class-Alias ein Punkt geschrieben, öffnet sich ein Auswahlfenster mit den Attributen der zugehörigen Tabelle. Die Auswahlliste ist alphabetisch sortiert (vergl. Abbildungen weiter oben). Wird ein Attribut ausgewählt, so wird der Platzhalterausdruck automatisch mit der Zeichenkombination %} abgeschlossen.
Der Tab-Reiter Code 2 nimmt die vier seltener benötigten Codegruppen der Abfragen auf:
Die wichtigeren Codegruppen befinden sich auf dem Tab-Reiter Code 1.
Keine dieser Codegruppen muss mit Inhalt gefüllt werden, um eine ausführbare Abfrage erstellen zu können.
Leere Codegruppen werden automatisch minimiert. Ihr Platz im Bearbeitungsbereich der Abfrage wird gleichmäßig auf die gefüllten Codegruppen aufgeteilt. Alle Codegruppen können manuell geöffnet und geschlossen werden. Hierzu befindet sich rechts oben in der Überschriftenzeile der Gruppe eine Schaltfläche, die zwischen schließen und öffnen in Abhängigkeit vom Zustand der Gruppe umschaltet.
Alle Codegruppen werden zeilenweise ausgewertet, d.h ein Ausdruck in der jeweiligen Gruppe muss in einer einzigen Zeile beginnen und abgeschlossen werden. Komplexe Ausdrücke über mehrere Zeilen sind nicht möglich, da mehrere Zeilen nicht als zusammengehörig markiert werden können. Dies gilt auch für Klammerausdrücke.
Verwenden Sie für die in den folgenden Abschnitten einzutragenden Codefragmente ausschließlich Standardzeichen des Alphabets!
Deutsche Sonderzeichen (äÄ, öÖ, üÜ, ß) sind unbedingt zu vermeiden, da die nicht als Platzhalter für Datenbankattribute dienenden Bestandteile der Abfragendefinition unverändert in die generierten SQL-Kommandos an die Datenbank durchgereicht werden. Die Datenbanken können aber die vom lateinischen Standardalphabet abweichenden Zeichen meist nicht korrekt verarbeiten.
In diesem Abschnitt werden die Datenbankattribute eingetragen, nach denen die Datensätze des Ergebnisses sortiert werden sollen.
Alle Attribute, nach denen sortiert werden soll, müssen in einer Zeile dieses Abschnitts eingetragen werden. Eine Sortierung kann aufsteigend oder absteigend erfolgen. Für eine aufsteigende Sortierung genügt die Benennung des Sortierattributs, für eine absteigende Sortierung ist hinter das Sortierattribut das Kürzel DESC zu schreiben. Wird nach mehreren Attributen sortiert, müssen sie in der Zeile durch Kommata (,) getrennt werden.
Eine Sortierung der Datensätze kann über eine oder mehrere Spalten erfolgen. Wird über mehrere Spalten sortiert, ist die Reihenfolge der Spaltenangaben in diesem Abschnitt für die Sortierung zu beachten. Alle Datensätze werden nach der ersten Sortierungsspalte sortiert. Die Datensätze, die in dieser aktuellen Sortierungsspalte gleiche Werte enthalten, werden nach der folgenden Sortierungsspalte sortiert. Entsprechend wird vorgegangen, wenn weitere Sortierungsattribute definiert werden. Die Sortierreihenfolge kann je Sortierungsspalte individuell festgelegt werden (z.B. nach der ersten Spalte absteigend, nach der zweiten aufsteigend).
Eine Sortierung muss nicht notwendigerweise über Spalten erfolgen, die auch im Ergebnis (→ Abschnitt RESULTS) erscheinen. Sie muss aber über Spalten erfolgen, die Bestandteil der Tabellen oder Views sind (→ Abschnitt CLASSES) oder sich aus diesen ermitteln lassen. Eine Sortierung kann über eine berechnete Spalte erfolgen, wenn die Datenbank dies unterstützt7).
Wird in einer leeren Zeile Strg+Leerzeichen gedrückt, öffnet sich ein Auswahlfenster mit zwei auswählbaren Einträgen:
{% {% DESC
Der erste Eintrag ist für die Definition einer aufsteigenden, der zweite für eine absteigende Sortierung vorgesehen.
Wird die Zeichenkombination {% eingegeben, öffnet sich ein Auswahlfenster mit den Class-Aliasen aus dem CLASSES-Abschnitt (vergl. Abbildungen weiter oben). Ein Eintrag aus dieser und der nachfolgend beschriebenen Auswahlliste wird per Doppelklick ausgewählt.
Wird hinter einen Class-Alias ein Punkt geschrieben, öffnet sich ein Auswahlfenster mit den Attributen der zugehörigen Tabelle. Die Auswahlliste ist alphabetisch sortiert (vergl. Abbildungen weiter oben). Wird ein Attribut ausgewählt, so wird der Platzhalterausdruck automatisch mit der Zeichenkombination %} abgeschlossen.
Die Bedingungen im CONDITIONS-Abschnitt filtern Datensätze in der Datenbank. Jeder einzelne Datensatz muss diesen Bedingungen gehorchen.
Ein Having-Ausdruck ist eine zusätzliche Bedingung an die Ergebnisdatensätze, die sich nicht aus den zugrundeliegenden Datensätzen der Datenbank direkt ermitteln lässt, sondern nur aus dem Ergebnis selbst. Typisches Beispiel hierfür ist eine Abfrage mit Gruppierung, bei der die Gruppen im Ergebnis eine bestimmte Mindeststärke an Mitgliedern haben sollen; diese Information lässt sich nicht aus den Einzeldatensätzen der Datenbank ermitteln.
Für diesen Abschnitt steht nur eine eingeschränkte Kontextunterstützung mit Auswahllisten zur Verfügung. Jede Having-Bedingung muss in eine Zeile des Abschnitts geschrieben werden. Weiter Informationen zu Having-Ausdrücken finden sich im Abschnitt zu den Ausdrücken in Abfragen.
In diesem Abschnitt lassen sich Variablen für die Abfrage definieren, die vor allem im CONDITIONS-Abschnitt genutzt werden können, um die Definition von Bedingungen zu vereinfachen und leichter lesbar zu machen. Insbesondere ist es möglich, mit Datumswerten zu rechnen und die Ergebnisse einer Variablen zuzuweisen, die für Bedingungen genutzt wird.
Für diesen Abschnitt steht keine Kontextunterstützung mit Auswahllisten zur Verfügung. Jede Variablen-Definition muss in eine Zeile des Abschnitts geschrieben werden. Weiter Informationen zu Variablen in Abfragen finden sich im Abschnitt zu den Ausdrücken in Abfragen.
Die Ergebnisse mehrerer Abfragen können zusammengefasst werden, wenn folgende Bedingungen erfüllt sind:
Eine Abfrage bildet die Hauptabfrage. Per UNION zuzuordnende weitere Abfragen, werden bei ihr in den UNION-Abschnitt eingetragen. Alle auf diese Weise zusammengefassten Abfragen liefern eine Ergebnisliste. Hinweis: Doppelte Einträge - also Treffer aus den verschiedenen per UNION gemeinsam ausgeführten Abfragen mit identischen Inhalten in allen Ergebnisspalten - werden zu einer Ergebniszeile zusammengefasst. Die Anzahl der Treffer einer UNION-Abfrage kann daher geringer als die Summe der Treffer der Einzelabfragen sein!
Um eine Abfrage als UNION-Abfrage mit einer Hauptabfrage zu verbinden, gehen Sie wie folgt vor:
Die UNION-Abfragen werden als Link präsentiert. Strg+Linksklick öffnet die jeweilige UNION-Abfrage.
In diesem Abschnitt lassen sich Ausdrücke defnieren, die auf den in den RESULTS ermittelten Spalten und Werten (Rechen-)Operationen auszuführen, die weiteren Ergebnisspalten liefern. Ursprünglich wurde dieser Abschnitt benötigt, um in Abfragen an die Inhalte von Memofeldern zu gelangen - und nicht nur an die Nummer ihres Datensatzes. Hierfür ist dieser Abschnitt nicht mehr erforderlich.
Für diesen Abschnitt steht keine Kontextunterstützung mit Auswahllisten zur Verfügung. Jede Skript-Definition muss in eine Zeile des Abschnitts geschrieben werden. Weiter Informationen zu Skripts in Abfragen finden sich im Abschnitt zu den Ausdrücken in Abfragen.
Der Tab-Reiter Eigenschaften enthält zusätzliche Informationen zu einer Abfrage:
Die Einstufung einer Abfrage muss durch den Admin erfolgen. Die Nutzung einer Abfrage in einem bestimmten Kontext (z.B. Prüfregel) führt nicht dazu, dass für die Abfrage das entsprechende Ankreuzfeld gesetzt wird. Andererseits werden aber in den Auswahllisten des Administrators regelmäßig nur Abfragen angeboten, die eine passende Einstufung besitzen.
Was sind Auswertungsabfragen? Auswertungsabfragen sind normale Abfragen, die bestimmten zusätzlichen Regeln gehorchen (s.w.u.).
Wozu dienen die? Mit Auswertungsabfragen können dem Nutzer zusätzliche Informationen zum aktuellen Datensatz in der Maske angezeigt werden. Diese Informationen können aus beliebigen anderen Bereichen des ASYS-Datenbestandes kommen (schließlich handelt es sich um Abfragen).
Die Auswertungsabfragen stellen eine Möglichkeit dar, den Anwendern Auswertungen, Summierungen oder sonstige Informationen für den Datensatz, der gerade bearbeitet wird, zur Anzeige zu bringen. Bei einem Begleitschein z.B. für die Fragestellung, wie viele Begleitscheine es bisher für den Nachweis gibt, wie hoch die gesamte entsorgte Menge bisher ist, welche Angaben in der VE stehen etc. Für jede Einzelfragestellung ist hierbei eine eigene Abfrage zu erstellen. Nach Betätigung der Schaltfläche aus der Anwendungsoberfläche werden die Abfragen nacheinander ausgeführt und jedes Ergebnis in eine eigene Zeile in eine Tabelle geschrieben. Es können beliebig viele Abfragen definiert werden. Die Abfragen werden nach ihrer laufenden Reihenfolgenummer sortiert ausgeführt (s. Eigenschaften der Abfrage). Je Maske kann es genau ein Set an Auswertungsabfragen geben.
Bei der Definition der (Auswertungs-)Abfragen müssen einige Rahmenbedingungen eingehalten werden:
Auswertungsabfragen müssen wie die freien Abfragen im Nutzerprofil des ausführenden Nutzers enthalten sein. Sie können also über die Zuordnung von Auswertungsabfragen zu verschiedenen Nutzerprofilen steuern, welche Nutzer bestimmte zusätzliche Informationen auf diese Weise angezeigt bekommen.
Die QS-Abfragen dienen der Auswertung des ASYS-Datenbestandes unter dem Aspekt der Qualitätssicherung. Je Maske kann es genau ein Subset an QS-Abfragen geben. Alle Abfragen müssen hierbei eine Trefferzahl als Ergebniss liefern. Die erste Abfrage (Reihenfolge: 1) gibt die Grundgesamtheit der Treffer an (100%). Alle folgenden Abfragen enthalten die gleichen Parameter wie die erste Abfrage sowie weitere 'feste' Einschränkungen, die festzulegende Qualitätsmerkmale überprüfen. An der Oberfläche ausgegeben werden die Anzahl der Treffer sowie ein prozentualer Wert im Verhältnis zur Grundgesamtheit (dies geschieht durch die Oberfläche, muss also in der Abfrage nicht definiert werden). Es können beliebig viele Abfragen definiert werden. Die Abfragen werden nach ihrer laufenden Reihenfolgenummer sortiert ausgeführt (s. Eigenschaften der Abfrage). An der Oberfläche werden die Parameter einmal abgefragt und dann für alle Abfragen ausgeführt. Damit die Abfragen ausgeführt werden können, müssen sie einem Nutzerprofil des ausführenden Nutzers zugeordnet sein.
Bei der Definition der QS-Abfragen müssen einige Rahmenbedingungen eingehalten werden:
Auf dem Tab-Reiter SQD-Code wird der Abfragecode angezeigt, der sich aus den Eintragungen in den Abschnitten der Tab-Reiter Code 1 und Code 2 ergibt. Die Anzeige dient der Überprüfung im Fehlerfall. Der Inhalt kann markiert und kopiert (Strg+C) werden. Über den Button des SQD-Imports () kann derart kopierter Abfragecode in eine neue Abfrage importiert werden.
Auf diesem Tab-Reiter können keine Änderungen an den angezeigten SQD-Codes vorgenommen werden.
Auf dem Tab-Reiter Masken kann die aktuelle Abfrage einer oder mehreren Masken zugewiesen werden. Die Zuweisung einer Maske erfolgt aus der Auswahlliste der Masken rechts via Drag&Drop. Alternativ kann über den Button Maske hinzufügen () ein Auswahldialog für die Masken geöffnet werden.
In beiden Fällen ist eine Mehrfachauswahl möglich. Bei der Übernahme der Masken in die Zuordnungsliste werden Mehrfachzuweisungen einer Maske ignoriert.
Um die Zuordnung einer Maske zu löschen, wird sie in der Liste markiert und anschließend der Button Maske entfernen () betätigt. Nach einer Sicherheitsabfrage wird die Zuordnung gelöscht.
Die weiteren Tab-Reiter zum Abfrageobjekt dienen nur der Anzeige, in welchem Kontext eine Abfrage genutzt wird. Damit kann ein Überblick erreicht werden, welche Konfigurationsbestandteile eine Abfrage nutzen und durch eine Änderung an der Abfragendefinition betroffen sein können.
Ein Doppelklick auf einen Eintrag in den Listen öffnet das entsprechende Objekt der Konfiguration, welches die Abfrage nutzt, im Beabeitungsbereich. Meist wird dabei zuvor die Perspektive entsprechend gewechselt.
Weitere Informationen zu dieser Maske | ||||||||||||||||
Ausdrücke in Abfragen | ||||||||||||||||
landesspezifische Zusatzinformationen: | SH | HH | NI | HB | NW | HE | RP | BW | BY | SL | BE | MV | ST | BB | TH | SN |