Parameter > Verwaltung > Reports > SQL-Abfrager 

Die Softwarepakete mit X3-Technologie umfassen eine Abfragemaschine, mit der auf Basis von Abfragen Abfragemasken angelegt werden können. Diese Abfragen sind als Liste von Datenbanktabellenfeldern formuliert, wobei die entsprechenden Tabellen entweder standardmäßig oder über explizit genannte Beziehungen miteinander verbunden sind. Auf diese Art können die Benutzer Abfragen schnell anlegen, ohne dass ein Rückgriff auf eine bestimmte Sprache notwendig ist. Es reicht aus, die Datenbanktabellen zu kennen. Diese sind in der technischen Online-Dokumentation beschrieben (insbesondere MCD). Dem Benutzer steht darüber hinaus eine benutzerfreundliche Abfrageschnittstelle zur Verfügung: Masken mit verschiedenen Spalten und Tunneln.

Diese Abfragemaschine weist allerdings auch einige Begrenzungen auf, da komplexe Abfragen nicht unbedingt in Form einer Feldliste formuliert werden können. Daher erzielen technisch versiertere Benutzer, die SQL beherrschen, mit der Abfragemaschine die gewünschten Ergebnisse unter Umständen nicht auf einfache Art.

Aus diesem Grunde wurde mit dem SQL-Assistenten ein zusätzliches Werkzeug zur Verfügung gestellt, mit dem klassische SQL-Abfragen formuliert werden können. Der SQL-Assistent unterscheidet sich von der oben beschriebenen Abfragemaschine lediglich durch die Parametermaske. Die von diesem Assistenten angelegten Masken werden über dieselbe Abfrageausführungsfunktion aufgerufen wie die der Abfragemaschine.

Dies bedeutet, dass der SQL-Assistent genau wie die Abfragemaschine zunächst Daten in eine Temp-Tabelle schreibt (und zwar in dieselbe wie die Abfragemaschine) und diese dann anzeigt. Stopps und Summen können hingegen nicht angezeigt werden, die Anzeige beschränkt sich also auf eine Ebene.

Die Struktur dieser Temp-Tabelle ist so konzipiert, dass jeder Benutzer dort die Ergebnisse seiner letzten Abfrage halten kann. Die Funktion unterteilt sich in drei verschiedene Schritte:

  • Abfragedefinition mit dem Assistenten, dann Freigabe zur Anlage der entsprechenden Anlagemaske
  • Aufruf der Abfrage (entweder mit dem Button , oder über Aufruf der Abfragefunktion und Datenaktualisierung)
  • Abfrage der Ergebnisse, falls die Abfrage bereits ausgeführt wurde.

Vorbedingungen

SEEREFERTTO Siehe Dokumentation Umsetzung

Maskenverwaltung

Kopfzeile

Übersicht

In der Kopfzeile werden Daten angezeigt, mit denen die Abfrage sowie einige allgemeine Parameter identifiziert werden können.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Blocknummer 1

Dieser Code ermöglicht die Identifikation einer Abfrage.

  • Bezeichnung (Feld INTIT)

Ermöglicht die Definition einer Bezeichnung für jeden Datensatz.

  • Kurzbezeichnung (Feld INTITSHO)

Dieser Titel dient als Bezeichnung für den Datensatz und wird in bestimmten Masken und Reports verwendet, wenn aus Platzgründen der Langtitel nicht angezeigt werden kann.

  • Aktiv (Feld ENAFLG)

Aktivieren Sie dieses Kontrollkästchen, um den aktuellen Datensatz zu aktivieren.

Die nicht ausgewählten Datensätze behalten ihren Inhalt und ihre Einstellungen, können jedoch in folgenden Fällen nicht durch Aufruf ihres Codes verwendet werden:

  • in anderen Datensätzen, wie Dokumente und Parameter,
  • in Massenverarbeitungen.

Über die Funktionsberechtigungen kann die Anlage eines aktiven Datensatzes untersagt werden. In diesem Fall ist das Kontrollkästchen standardmäßig deaktiviert. Es kann nur von einem berechtigten Benutzer oder über einen Unterschriftenworkflow geändert werden.

Eigenschaften

  • Abfrageart (Feld ALLUSR)

Verwenden Sie dieses Feld zur Verwaltung der Anzeige einer Abfrage mit den folgenden Verhalten:

  • Normale Abfrage: das Ergebnis der Abfrage wird angezeigt, wenn die Abfrage bereits vom Benutzer angezeigt wurde. Jeder Benutzer, der eine Abfrage gestartet hat, erstellt einen eigenen Datensatz, der von keinem anderen eingesehen werden kann.
  • Geteilte Abfrage: das Ausführungsergebnis dieser Abfrage eines Benutzers kann von den anderen Benutzern eingesehen werden. Der Nutzen einer geteilten Abfrage liegt darin, dass bei einer Abfrage mit langer Laufzeit, die zu einem gegebenen Zeitpunkt nur von einem einzigen Benutzer gestartet wurde, es anschließend möglich ist, eine gemeinsame Information mit mehreren Benutzern zu teilen. Für diese Art von Abfragen wird empfohlen, dass nur ein einziger Benutzer die Abfrage ausführen kann und alle anderen Zugriff auf die Ansicht haben. Außerdem steht es frei, diesen Batchabfragetyp zu berechnen, wenn die Laufzeit zu lange für die Erstellung ist; der Code der entsprechenden Batchaufgabe nennt sich CALALH.
  • Neu berechnete Abfrage: das Ergebnis der Abfrage wird nie automatisch angezeigt. Man muss auf die Schaltfläche Aktualisierung klicken oder die Kriterien erfassen. Der Nutzen einer solchen Abfrage liegt darin, dass man nicht alle Daten neu laden muss, wenn man weiß, welche schnell ablaufen.
  • Darstellung (Feld REPGRA)

Dieser Indikator definiert die Darstellungsweise der Daten in der Maske. Hierzu gibt es folgende Möglichkeiten:

  • Zeichen: die Daten werden nur als Tabelle dargestellt.
  • Zeichen oder Diagramm : die Daten werden in einem der beiden Modi dargestellt. Der Standardmodus wird im Feld Standardanzeige festgelegt, das in den Grafikparametern des Datensatzes definiert ist.
  • Zeichen und Diagramm : die Daten werden in beiden Modi gleichzeitig dargestellt. Die Position der Grafik in Bezug auf die Tabelle wird vom Feld Position im Bereich Grafik festgelegt.
  • Diagramm: die Daten werden nur als Grafik dargestellt.
  • Feld OPTGRA

Verwenden Sie dieses Feld für die Organisation der Beziehung zwischen Zeichen und Grafik, wenn die Darstellungsart der Daten beides erlaubt. Abhängig vom Kontext:

  • Ist die Darstellung Zeichen oder Diagramm, wird der Standardwert für die Darstellung verwendet.
  • Ist die Darstellung Zeichen und Diagramm, hängt die Position der Grafik von der Datentabelle ab.

Schließen

 

Register Parameter

Übersicht

Im ersten Register werden die Abfrage sowie einige allgemeine Parameter erfasst.

In der Tabelle namens Spalten können zwecks präziserer Darstellung weitere Daten erfasst werden. Bei der Ausführung der Abfrage gibt der Assistent eine Werteliste zurück, mit der eine Tabelle gefüllt wird. Sind keine präziseren Daten vorhanden:

  • haben die Tabellenspalten keinen Titel
  • sind die Tabellenspalten gemäß den zurückgegebenen Daten vom Typ alphanumerisch, numerisch oder Datum (ohne weitere Angaben)

Eine statische SQL-Abfrage ist nicht unbedingt sinnvoll. In der Regel müssen bei Aufruf der Abfrage Parameter vorgegeben werden können. Dies ist mit der Tabelle namens Parameter möglich.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Blocknummer 1

Definiert den Code eines Reports, der der Funktion Datei / Liste ab der Anzeige der Abfragen zugeordnet wird. Ist er nicht angegeben, verwendet man den Report ALISTE, der eine Standardformatierung vorschlägt. Dieser generische Report kann dupliziert werden (dies ist nur erforderlich, um das Layout zu verändern), um Reports zu erstellen, die perfekt für die so definierte Abfrage angepasst sind.

Der hier erfasste Reportcode kann einer Gruppe von Druckcodes über die entsprechende Funktion zugeordnet werden.

Verwenden Sie dieses Feld zur Verknüpfung der Zugriffsrechte auf die Abfrage mit den Datenberechtigungen der Funktion.

Es gilt das folgende Prinzip: bei Beginn der Abfrage wird geprüft, dass der Benutzer Berechtigungen für die verknüpfte Funktion hat (für mindestens einen Standort, wenn die Berechtigung für diese Funktion pro Standort vergeben wird). Diese Prüfung wird nur ausgeführt, wenn die Abfrage nicht geteilt wird.

Wird die Abfrage geteilt, wird davon ausgegangen, dass die Berechtigungen der Person, die die Abfrage berechnet hat, angewendet werden, und auf alle übertragen werden, die Anzeigerechte haben. Dazu müssen die Berechtigungen der geteilten Abfragen mit Bedacht definiert werden, wenn sie sensible Daten betreffen. Dazu verwendet man den Zugriffscode aus diesem Bereich.

Mit diesem Code kann der Zugriff auf den aktuellen Datensatz für bestimmte Benutzer verboten werden.

Ist das Feld ausgefüllt, können nur die Benutzer den Datensatz anzeigen, die Leserechte für diesen Zugriffscode besitzen. Und nur die Benutzer, die über Schreibrechte verfügen, können ihn ändern.

Das Ausführungsrecht prüft die Tatsache, dass man die gefragte Abfrage ausführen kann (indem man die Abfrage aktualisiert oder die Parameter ändert und indem man sie erneut ausführt).

  • Anzahl Zeilen (Feld NBRLIG)

Ermöglicht die Definition einer Zeilenanzahl pro logischer Seite in der vom Abfrager erzeugten Anzeigemaske. Überschreitet diese Zeilenanzahl die Anzahl der anzeigbaren physischen Zeilen, erscheint ein Pfeil im rechten Bereich der Tabelle. Schaltflächen im oberen Bereich der Maske ermöglichen die Navigation zwischen logischen Seiten (Anzeige der folgenden, vorherigen, letzten, ersten Seite).

  • Max. Zeilen (Feld MAXLIG)

Die Maximale Zeilenanzahl entspricht einem Abfrageparameter (maxrows), der die Suche anhält, sobald eine für die Bedingungen ausreichende Anzahl an Zeilen in der Datenbank gefunden wurde (diese Zeilen werden anschließend sortiert, die Datenbank garantiert aber nicht, dass die N gefundenen Zeilen nicht die N ersten in der Sortierreihenfolge sind. Es handelt sich um eine Optimierung, durch die es möglich ist, die Belastung für die Datenbank zu begrenzen.

  • Gruppe (Feld GRP)

Verwenden Sie dieses Feld, um eine Klassifizierung der verfügbaren Kriterien für die Abfrage zu erstellen.

  • Fixierte Spalten (Feld NBRCOL)

Hier können die x ersten Spalten einer Tabelle bei einer horizontalen Seitennummerierung festgelegt werden.

  • Höchstzeit (Feld MAXTIM)

Verwenden Sie dieses Feld, um die Suche nach der angegebenen Zeit (in Sekunden) anzuhalten. Dadurch kann z.B. eine zu lange Wartezeit bei der Parametrisierung einer neuen Abfrage vermieden werden.

Hinweis: Im Gegensatz zur maximalen Zeilenanzahl wird diese Information nicht an die Datenbank übertragen. Die Höchstzeit kann daher nicht überschritten werden, wenn die Abfrage zu lange dauert.

SQL-Abfrage

  • Feld TEXTE

Ermöglicht die Definition der Abfrage selbst unter der klassischen SQL-Form, die über die Datenbank verstanden werden kann.

Einige Bemerkungen zum Thema dieser Abfrage:

  • Jede Abfrage Auswahl, einschließlich komplexer Abfragen, kann hier geschrieben werden, vorausgesetzt, sie sendet eine niedrigere Anzahl an Feldern zurück als maximal möglich.
  • Hinweis: Das Feld NOMCHAMP(indice), das in der Tabelle NOMTABLE verwaltet wird, ist in der Datenbank definiert, wie das Feld NOMCHAMP _indice in der Tabelle NOMTABLE, Index mit Wert 0, 1, 2... N-1, N ist die Felddimension.

Man kann z.B. schreiben:

Select LOGIN_0, CHEF_2 From AUTILIS
Where USR_0 like %1%
Order by CREDAT_0

  • In einer Abfrage von diesem Typ ist es möglich, die Parameter über die Syntax %N% zu definieren, die sich auf den Parameter Nummer N bezieht, der in der Parametertabelle definiert ist (%1% im Beispiel oben). Die Parameter werden über den Button während der Ausführung der Abfrage erfasst.

Tabelle Spalten

  • Bezeichnung (Feld COLTIT)

Die Datentypen ermöglichen die genaue Angabe, wie die Datenpräsentation erfolgen muss. Im Fall eines lokalen Menüs präzisiert man die Nummer des verwendeten lokalen Menüs. Ist der verwendete Datentyp mit einem Objekt verknüpft, kann man in der Objektverwaltung bei der Anzeige verzweigen.

  • Menü (Feld COLNUM)

Ermöglicht die Definition einer Nummer eines zu verwendenden lokalen Menüs, um den numerischen Wert der entsprechenden Spalte darzustellen, die von der Abfrage zurückgeschickt wurde.

  • Diagrammtyp (Feld GRA)

Das Feld kann nur erfasst werden, wenn der ausgewählte Darstellungsmodus in der Kopfzeile nicht Zeichen ist. Es ermöglicht die Angabe, wie die Grafikdarstellung umgesetzt wird.

Folgende Werte sind möglich:

  • Kein oder Bezeichnung, wenn das Positionsfeld alphanumerisch ist. Das Feld, das den Wert Bezeichnungverwendet, wird als Grafiktitel verwendet. Achtung: nur eine Position der Tabelle kann diesen Wert haben. Ist er bereits auf einer Position, muss zuerst der Wert der Position, die den Wert Bezeichnunghat, geändert werden, um ihm wieder den Wert Kein zu geben, bevor dieser Wert einer anderen Position der Tabelle zugewiesen werden kann.
  • Kein, Wertoder Standardwenn das Feld der Position numerisch ist. Es gilt die folgende Regel:
    • Kein bedeutet, dass das Feld niemals in der Grafik angezeigt wird.
    • Ermöglicht die im letzten Register definierte Grafik die Anzeige mehrerer Serien, werden alle Serien, die den mit Standardmarkierten Feldern entsprechen, angezeigt (sie werden nur angezeigt, wenn keines davor gesetzt wird).
    • Ermöglicht die im letzten Register definierte Grafik die Anzeige von nur einer Serie, wird die Spalte, die dem ersten mit Standardmarkierten Feld entspricht, angezeigt (das erste, wenn keines davor gesetzt wird).
  • Darstellung (Feld REP)

Dieses Feld kann nur erfasst werden:

  • wenn der ausgewählte Darstellungsmodus in der Kopfzeile nicht Zeichen ist.
  • auf den numerischen Feldern, deren Wert angezeigt werden soll.

Es ermöglicht die Verwaltung der Grafikkombinationen, wenn der Grafiktyp, der in den Grafikparametern definiert ist, die Anzeige mehrerer unabhängiger Serien von unterschiedlichem Typ ermöglicht (in den anderen Fällen wird er nicht berücksichtigt). Die folgenden Kombinationen können verwendet werden:

  • Typ = Multi-Grafik, Standardgrafik=Zeilen, Darstellung=Multi
  • Typ = Multi-Grafik, Standardgrafik=Balken, Darstellung=Multi

Es gilt die folgende Regel:

  • Standardbedeutet, dass die Grafikdarstellung der Serie der Standardgrafik des letzten Registers entspricht (Balken, oder Zeilenin den Fällen, die für uns von Interesse sind).
  • Balken oder Zeile ermöglicht das Erzwingen des entsprechenden Darstellungsmodus für die betroffene Serie.

Tabelle Einstellungen

  • Bezeichnung (Feld PARTIT)

Ist das Feld ausgefüllt, kann ein Parameter, dessen Titel diesem Feld entspricht, vor der Ausführung der Abfrage erfasst werden (über den Button ).

Dieser Parameter kann in den Corps der Abfrage über die Syntax %N% verwendet werden, in der N die entsprechende Zeilennummer in der Parametertabelle ist.

Diese Datentypen erleichtern die Erfassung des entsprechenden Parameters. Ist ein Typ definiert:

  • werden die Formatprüfungen durchgeführt
  • Ist der verwendete Datentyp mit einem Objekt verknüpft, kann das entsprechende Auswahlfenster verwendet werden.
  • Menü (Feld PARNUM)

Ermöglicht die Definition einer Nummer eines lokalen Menüs, das zur Erfassung des Parameterwerts verwendet wird.

  • Standardwert (Feld VALDEB)

 

Schließen

 

Register Diagramm

Übersicht

Dieses Register kann nur gefüllt werden, wenn es möglich ist, die Abfrage grafisch darzustellen. In diesem Fall wird in diesem Register die Art der grafischen Darstellung der Daten definiert.

Schließen

 

Felder

In diesem Register befinden sich die folgenden Felder :

Diagramm

  • Typ (Feld TYPGRA)

Dieses Feld wird verwendet, wenn man mehr als einen numerischen Wert in der Tabelle hat, der als Diagramm dargestellt werden soll. Dieses Feld kann zwei Werte anzeigen:

  • Einfaches Diagramm: es kann nur eine Wertespalte auf einmal angezeigt werden (es steht eine Auswahl zur Verfügung).
  • Mehrere Diagramme: es werden alle Spalten angezeigt, kombiniert gemäß dem Wert des Parameters Darstellung.
  • Darstellung (Feld FSHGRA)

Werden mehrere Serien in der Grafik dargestellt (sofern die Darstellung aller Serien gliech und nicht vom Typ ‚Flächen‘ ist), können Sie angeben, wie die Serienwerte gemäß den folgenden Werten kombiniert werden:

  • Die Option Mehrfach ermöglicht die Darstellung der Werte jeder Serie nebeneinander (eine Farbe pro Serie).
  • Die Option Kumulativ ermöglicht die Darstellung der Werte als vertikale Summe.
  • Die Option Vergleich ermöglicht die Darstellung der Werte im relativen Vergleich (die Höhe der Grafik ist konstant).
  • Standarddiagramm (Feld DEFGRA)

Dieses Feld definiert die grafische Darstellung der dargestellten Daten (Balken, Zeilen, Flächen, Torten). Ein Bild, das zur Auswahl angezeigt wird, illustriert den gesetzten Darstellungstyp.

Ist nur eine Werteserie verfügbar, wird die grafische Darstellung standardmäßig von diesem Parameter festgesetzt.

Sind mehrere Werteserien verfügbar, können die Darstellungsweisen gemischt werden (z.B. eine Serie mit Balken, eine andere mit Zeilen). In diesem Fall hängt die Darstellung jeder Werteserie vom Feld Darstellung der Feldtabelle ab:

  • Für die Balken oder Zeilen wird die Darstellungsart für die Werteserien verwendet, die mit der grafischen Standarddarstellung kompatibel sind (es ist jedoch nicht möglich, Torten mit Balken oder Zeilen zu kombinieren).
  • Für den Standardmodus wird die grafische Standarddarstellung für die Serien verwendet.

Ist die Seriendarstellung homogen (es existiert nur eine Serie in der Grafik), ist eine Auswahl für den Grafiktyp verfügbar, über den eine andere Darstellungsart ausgewählt werden kann.

Blocknummer 3

  • Feld IMAG

Bild, das die zuvor erfassten Informationen detailliert aufzeigt.

Blocknummer 2

Blocknummer 4

Schließen

 

Wichtiger Hinweis:

Mit dem SQL-Assistenten werden die Berechtigungen nicht gefiltert (dies gilt sowohl für die Rollen-, als auch für die Standort- und Zugriffsberechtigungen). Es wird daher empfohlen, Abfragen dieser Art mit einem Zugriffscode zu schützen, um die Lese- und Ausführungsrechte zu begrenzen. Auch der Zugriff auf den SQL-Assistenten sollte in der Regel auf eine begrenzte Anzahl von Benutzern beschränkt werden.

Spezielle Buttons

Generierung der zugehörigen Anzeigemaske und syntaktische und semantische Prüfung der Abfrageexaktheit durch Test auf der Datenbank

Start der aktuellen Abfrage. Die Abfrage wird per Aktualisierung einer Temp-Tabelle angestoßen und mit der Funktion Abfragen anzeigen fortgesetzt. In dieser Funktion wird das Abfrageergebnis angezeigt. 

Im über diese Schaltfläche geöffneten Fenster befinden sich die folgenden Felder: :

Blocknummer 1

  • Feld OBJET

 

  • Feld CLES

 

Blocknummer 2

  • Von Ordner (Feld DOSORG)

Geben Sie den Ordner an, aus dem der Datensatz kopiert werden soll. Die möglichen Syntaxen sind im entsprechenden Anhang beschrieben.

  • Alle Ordner (Feld TOUDOS)

Mit dieser Option kann der Datensatz in alle im Dictionary definierten Ordner kopiert werden (Tabelle ADOSSIER der aktuellen Lösung).

  • Nach Ordner (Feld DOSDES)

Geben Sie den Ordner an, in den der Datensatz kopiert werden soll. Die möglichen Syntaxen sind im entsprechenden Anhang beschrieben.

Schließen

in einen anderen Ordner .Fehlermeldungen

Fehlermeldungen

Während der Erfassung können außer den generischen Meldungen folgende Fehlermeldungen auftreten: :

Abfrage nicht korrekt

[von der Datenbank zurückgegebene Fehlerbeschreibung]

Die Abfrage ist aus Datenbanksicht nicht korrekt. Der Fehler kann entweder die Syntax oder ein nicht vorhandenes Element betreffen. Die Zusatzbeschreibung umfasst den Titel des von der Datenbank zurückgegebenen Fehlers.

Zugriff auf diese Daten nicht möglich

Es wurde versucht, mit dem SQL-Assistenten auf eine Abfrage der klassischen Abfragemaschine zuzugreifen (die Codes der Abfragen des SQL-Assistenten können aber nicht für klassische Abfragen verwendet werden, umgekehrt gilt dasselbe).

Zu viele Felder

Die aufgerufene Abfrage gibt zu viele Spalten zurück. Die Anzahl von lesbaren Spalten ist im SQL-Assistenten auf 120 begrenzt.

Verwendete Tabellen

SEEREFERTTO Siehe Dokumentation Umsetzung