Menü

{DatenPipelines} (SQL-Registry)

Zurück | Ebene zurück

\ROOT\OBJECTS\DATAOBJECTS\{DataobjectsNamen}\
Reports\{ReportsNamen}\{DatenPipelines}\

Unterhalb des Grundeintrags können Ordner mit den Daten-Pipelines  (Datenquellen) angelegt werden. 

Daten-Pipelines stellen dem Formular die Datenquellen zur Verfügung und werden unterhalb des Reports, also des Eintrags {ReportsNamen} gespeichert. Im Daten-Konfigurator werden Daten-Pipelines als Unterschlüssel der Formular-Root mit Namen wie pKopf, pPos (für Kopfdaten und Positionsdaten) angelegt. Das kleine führende „p“ ist nicht zwingend, es ist aber sinnvoll, sich an die Namensgebung zu halten um den Support zu vereinfachen.

Innerhalb der Daten-Pipelines kann im Eintrag „CommandText“ der SQL-Select-Befehl auch fremde Datenbanken ansteuern. Der Microsoft® SQL-Server unterstützt serverseitig eine Data-Bridge. Der EULANDA®-Datenbank kann man somit auf der Serverseite fremde Datenquellen angeben; diese würden wie eigene Tabellen benutzt und müssten nicht erst importiert werden.

Durch die freie Konfigurationsmöglichkeit der Daten-Pipelines ist das Formular-System von EULANDA® für alle denkbaren Erweiterungen gerüstet.  

Folgende Eigenschaften werden unterstützt:

CommandText=
{ Zeichenkette }

Enthält den kompletten SQL-Select-Befehl, der vom Daten-Konfigurator ausgeführt werden soll. Lediglich Variablen-Platzhalter werden noch vom Reportsystem ausgetauscht.

Der Select-Befehl bezieht sich auf eine in der Datenbank definierte Tabelle, eine Sicht oder eine Funktion. 

Der folgende Select-Befehl ist nur ein Beispiel. Diejenigen, die mit SQL nichts anfangen möchten, können die Erklärung zu dem Select-Befehl überlesen. Beim Kopieren von Standard-Formularen werden alle Select-Befehle mitkopiert, so dass dieser Teil nur für die „Profis“ bzw. die Solution-Partner gedacht ist.

$$SelectFields$$ Zur Optimierung der Geschwindigkeit kann eine reduzierte Menge von Datenfeldern vom SQL-Server abgerufen werden. Wird dieser Austauschbefehl in den SQL-Befehl des CommandText eingesetzt, so wird je nach Einstellung der Root SelectFields=Fast oder SelectFields=Slow die Eigenschaft der Zeichenkette SelectFieldsFast oder SelectFieldsSlow benutzt und gegen diesen Platzhalter ausgetauscht. In SelectFieldsSlow werden normalerweise über das Sternchen „*“ immer alle Datenfelder abgerufen.
$$IdList$$ Der SQL-Befehl in CommandText ruft bei Stammdaten usw., immer die dort selektierte Auswahl von Daten vom SQL-Server ab. Im Layout-Modus wird die Datenmenge über den in TestData stehenden Befehl abgerufen. Der Platzhalter IdList wird dann durch den Selektionsbefehl ersetzt.

Achtung! %s, %:0s werden nicht mehr unterstützt. Verwenden Sie statt dessen ausschließlich $$IdList$$

Beispiel:
CommandText=SELECT $$SelectFields$$ FROM Adresse where  id in ($$IdList$$) 

Dieser Befehl wählt alle Adressen aus, die in der $$IdList$$ enthalten sind. Zu den Adressen werden nur die Felder ausgewählt, die in der Liste $$SelectFields$$ enthalten sind.

FriendlyName=
{ Zeichenkette }
Zeigt innerhalb des Formular-Editors bei Datenbankfeldern als Datenquelle einen benutzerfreundlichen Namen an. Der Name darf jedoch keine Umlaute und Sonder- oder Leerzeichen enthalten. Diese Einschränkung ist notwendig, da dieser Name innerhalb der Scriptsprache des Formulars benutzt werden kann und den Pascal-Konventionen entsprechen muss.
Link=
{ Zeichenkette }
Über Link werden Beziehungen zwischen verschiedenen Pipelines angegeben. In diesem Fall der Rabatt-Gruppen-Statistik ist die Artikel-Pipeline der Master. Deswegen ist das Link-Feld leer. Um jedoch die Klartexte der Rabatt-Gruppen in diesem Formular anzeigen zu können, wird die Pipeline „pRabattgruppe“ benötigt. Diese ist ein Detail des Masters und muss dementsprechend einen Link enthalten. Der Daten-Konfigurator lädt bei jeder Anforderung des Formulargenerators und wechselndem Artikel die dem Artikel angebundene Rabatt-Gruppe hoch. Der Link hat in der pRabattgruppe folgenden Wert: „pArtikel:GR=RabattGr“ Im ersten Teil wird der Master angegeben, der durch Doppelpunkt getrennt, die zu linkenden Felder enthält. Das erste Feld ist immer das Feld der eigenen Pipeline. Dann, durch das Gleichheitszeichen getrennt, das Feld der Master-Pipeline. In diesem Fall ist also das Feld RabattGr im Artikelstamm enthalten und das Feld GR in der Rabattgruppen-Tabelle. GR ist in der Rabattgruppe eindeutig, so dass der Daten-Konfigurator zu jedem Artikel immer die Felder der zum Artikel passenden Rabattgruppe lädt.
SelectFieldsFast=
{ Zeichenkette }

Hier wird eine Feldliste, die mit Komma getrennt wird, hinterlegt. In dieser Liste werden nur die wirklich im Report benutzten Feldnamen aufgeführt. Beachten Sie, dass hinter dem letzten Feld kein Komma stehen darf.

Die Feldliste wird mit dem Platzhalter $$SelectFields$$ in CommandText ausgetauscht.

SelectFieldsSlow=
{ Zeichenkette }

Standardmäßig steht hier nur ein Sternchen in dieser Eigenschaft. Somit werden alle Felder über den in CommandText enthaltenen SQL-Befehl vom SQL-Server abgerufen.

Die Feldliste wird mit dem Platzhalter $$SelectFields$$ in CommandText ausgetauscht.

TableDef=
{ Zeichenkette }

Diese Eigenschaft wird benutzt, um die Eigenschaften einer eventuell benutzten View von einer echten Tabelle zu vererben. Speziell geht es hierbei um Friendly-Feldnamen, die standardmäßig nur in den Tabellen definiert sind und ggf. in den Feldklassen vorbelegt sind.

Wird zum Beispiel in einem Artikelformular anstelle der Tabelle „Artikel“ die View MASTER_Artikel benutzt, so würde TabelDef die Eigenschaft MASTER_ARTIKEL haben. In der SQL-Registry gibt es dann einen Eintrag unter \OBJECTS\TABLES\Master_Artikel einen Eintrag BasedOn, der die Eigenschaft Eulanda.Artikel trägt. Hier kann dann das Reportsystem die Felddefinitionen laden und mit der View abgleichen. Identische Feldnamen werden dann mit den Eigenschaften der echten Tabelle versehen und können so unter anderem die Friendly-Namen im Reportlayout anzeigen.