|
Ausdrucks-Editor |
|
Über den Ausdrucks-Editor können über eine standardisierte Funktionalität Abfragen mit Zugriff auf die aktuelle Datenbank erstellt werden.
Abschnitte der Hilfe
In der Hilfe werden folgende Abschnitte beschrieben:
Die folgenden Arbeitsschritte werden empfohlen:
-
In der externen Applikation werden Fachschale und Objekttyp gewählt.
-
Pfad und OPath werden aus der Objekthierarchie (für Knoten oder Leitung) in den Editierbereich übernommen.
-
Zur Rückgabe der gewünschten Abfrage-Ergebnisse werden Funktionen eingebunden (inklusive Operatoren).
-
Falls erforderlich, werden Filter-Parameter definiert (inklusive Operatoren).
-
Falls erforderlich, werden Filter zur Eingrenzung der abzufragenden Objekte gesetzt (inklusive Operatoren).
-
Nach Beenden des Editierens wird die Validierung des Ausdrucks durchgeführt.
-
Die Abfrage wird in der externen Applikation mit Echtdaten getestet.
-
Das fertige Abfragedokument wird über die BCE - Funktionalität exportiert und gesichert.
Übersicht über die behandelten Themen:
Beim ObjectSpace handelt es sich um den Grundbaustein einer neuartigen Datenzugriffstechnologie. Über diese Technologie kann der virtuelle Zugriff auf beliebige Daten eines Datenspeichers definiert werden.
Der ObjectSpace erzeugt automatisch eine Datenzugriffsschicht, die für alle objektorientierten Abfragen genutzt werden kann. Über den ObjectSpace können Datenbanken des Microsoft SQL Server ab Version 2000 sowie von Oracle ab Version 9i angesteuert werden, um Daten zu lesen und / oder zu aktualisieren.
Die Sprache zur Generierung der Abfragen basiert auf OPath-Ausdrücken. Diese sind mit XPath-Ausdrücken und anderen Zugriffselementen (wie Parametern) kompatibel.
OPath und Pfad sind spezielle Elemente zur Generierung von ObjectSpace-basierten Abfragen. Grundvoraussetzung zur Verwendung dieser Elemente ist die objektorientierte Datenbankstruktur.
Bedeutung des OPaths für den Anwender
Die Bedeutung des OPaths für den Anwender besteht darin, auf einfache Weise eine beliebige Datenbankabfrage zu beschreiben, ohne dass weitere Details über die Struktur der Datenbank bekannt sein müssen. Jeder OPath-Ausdruck kann in eine beliebige standardisierte Abfrage-Sprache wie SQL, XPath oder MSIL übersetzt werden.
Ergebnis eines OPath-Ausdrucks
Jeder OPath-Ausdruck steht für einen Einzelwert (beispielsweise ein logischer Wert oder eine Zahl), für einen Container von Werten oder für Objekte. Der Ergebnisbereich hängt von der Art der Hierarchie ab, an dessen Ende der OPath steht, also vom zugehörigen Pfad.
Datenbankspalte eines OPath-Ausdrucks
Jeder OPath-Ausdruck repräsentiert den Wert einer bestimmten Datenbankspalte des aktuellen Objekttyps. Anders ausgedrückt entspricht der OPath der Bezeichnung eines bestimmten Objektattributs.
Für den Objekttyp 'Leitung' entspricht beispielsweise der OPath 'Sohlgefaelle' der Bezeichnung des Attributs 'Sohlgefälle [‰]'.
Pfad zum OPath
Der Pfad zum OPath beschreibt die Hierarchie vom Hauptobjekt 'Knoten' oder 'Leitung' bis zum gewünschten Attribut, also bis zum OPath. Der Pfad drückt die hierarchische Beziehung der oberhalb des OPaths stehenden Objekte aus. Vom Hauptobjekt bis zum OPath leitet der Operator '.' die jeweils nächst tiefere Hierarchieebene ein. (Der Operator '^.' führt in die nächst höhere Hierarchieebene zurück).
Beispielsweise kann zum OPath 'MaxWassertiefe', also 'maximale Wassertiefe [m]' folgender Pfad führen:
-
AbwLeitung.KnotenAnf.HydKnoten.Detailergebnisse.MaxWassertiefe
Der Beispielpfad gelangt von der Abwasserleitung über Anfangsknoten, Hydraulik und Detailergebnisse zum OPath 'MaxWassertiefe'.
Elemente eines OPath-Ausdrucks
Die Elemente eines OPath-Ausdrucks werden in den Abschnitten dieser Anwenderhilfe beschrieben.
Ein OPath-Ausdruck kann eine der folgenden Konstanten besitzen:
● |
NULL |
Der Ausdruck besitzt keinen Wert. |
● |
TRUE |
Der Ausdruck besitzt den logischen Wert WAHR. |
● |
FALSE |
Der Ausdruck besitzt den logischen Wert FALSCH. |
Ein OPath-Ausdruck kann einen der folgenden Werttypen besitzen:
● |
Zeichenfolge |
'Diese Zeichenfolge stellt ein Beispiel dar.' |
● |
Zahlenwert |
-7603.251 |
● |
Datumswert |
#2000-09-22# |
● |
Zeitwert |
#11:05:00# |
● |
Datums- und Zeitwert |
#2000-09-22T11:05:00# |
Der Filter eines OPaths-Ausdrucks muss einem logischen Wert mit den möglichen Ergebnissen WAHR oder FALSCH entsprechen. Der Filter kann an beliebiger Stelle des Pfades eingesetzt werden. Durch den Filter wird die Anzahl der abzufragenden Objekte benutzerdefiniert eingeschränkt.
Der Filter wird für das Objekt der relevanten Hierarchieebene des OPaths gesetzt.
Syntax
(Pfad).Objekt[<Filterbedingung>].(Pfad).OPath
Beispiele
Es folgen zwei einfache Beispiele zur Verwendung des Filters:
-
AbwKnoten[Material='B'].KanalartNutzung
-
AbwLeitung[Material='B'].AbwAnschlussleitungen[Material='Stz'].Profilbreite
Je Pfad können also auch mehrere Filter verwendet werden.
An dieser Stelle der Hilfe werden wichtige Details zur Einbindung von Funktionen in den Pfad und zur Verwendung von C#-Programmkode erläutert.
Einbindung von Funktionen in den Pfad
Jede Funktion entspricht einem eigenständigen Objekt des Pfades, beispielsweise die Funktion IIF(<condition>,<truevalue>,[falsevalue]):
-
AbwLeitung.IIF(Material='Stz','Steinzeugrohre','Rohre mit anderem Material').
Auf einen OPath kann keine Funktion folgen. Der Ausdruck "AbwLeitung.Bezeichnung.Left(3)" ist also nicht erlaubt. Stattdessen sind folgende Ausdrücke möglich:
-
AbwLeitung.Left(Bezeichnung,3)
-
Left(AbwLeitung.Bezeichnung,3)
Pfade in Funktionen
Pfade in Funktionen sollten vermieden werden, da sie zur "Aufblähung" des Abfrageausdrucks führen:
-
Schlechte Lösung: AbwLeitung.Concat('Profilbreite: ', Profil.Profilbreite, ' / Profilhöhe: ', Profil.Profilhoehe)
-
Optimierte Lösung: AbwLeitung.Profil.Concat('Profilbreite: ', Profilbreite, ' / Profilhöhe: ', Profilhoehe)
Einbindung von C#-Programmkode
C#-Programmkode oder dessen Fragmente können in den Pfad eingebunden werden. Voraussetzung ist, dass der C#-Programmkode ein kompatibles Ergebnis zurückgibt. Der C#-Programmkode ist in geschweifte Klammern '{}' zu setzen.
Beispiel:
-
AbwKnoten.Id={MyStaticClass.StaticIdProperty}
Benutzeroberfläche
Die Benutzeroberfläche ist im Folgenden grob schematisch dargestellt. Verknüpfungen führen zu den relevanten Details der Hilfe weiter.
Ausdruckseditor |
Kopfleiste. |
||||||||||
|
|||||||||||
|
Arbeitsbereiche. |
||||||||||
|
Werkzeuge
|
Arbeitsbereich des Ausdruckseditors |
Vom Bereich der Benutzeroberfläche abhängige Standard-Schaltflächen:
● |
|
Vorsicht! Alle nicht gespeicherten Änderungen werden ignoriert! |
|
● |
|
Aufruf der Ausdruckskontrolle. Der eingegebene Ausdruck wird auf seine syntaktische Richtigkeit geprüft. |
|
● |
|
Die letzte Editieraktion wird zurück genommen. |
|
● |
|
Die letzte zurück genommene Editieraktion wird reaktiviert. |
|
● |
|
Es öffnet sich ein Formular, um einen beliebige Zeichenfolge im Editierbereich zu suchen. |
|
● |
|
Es öffnet sich ein Formular, um einen beliebige Zeichenfolge im Editierbereich durch eine beliebige andere Zeichenfolge zu ersetzen. |
|
● |
|
Bei aktiver Schaltfläche werden wichtige Elemente der Syntax wie Klammern oder Funktionen in unterschiedlichen Farben hervorgehoben. Bei inaktiver Schaltfläche erfolgt keine farbliche Hervorhebung der Syntaxelemente. |
|
● |
|
Bei aktiver Schaltfläche werden alle Ausdrücke mit ihren neutralen Bezeichnungen dargestellt. Dies sind die in der BaSYS-Datenbank verwendeten originalen Systembezeichnungen. Bei inaktiver Schaltfläche werden die lokalisierten Bezeichnungen verwendet. Das Umschalten zwischen Systembezeichnung und lokalisierter Bezeichnung gilt auch für die erstellten Ausdrücke. Je Einstellung sind also alle Bezeichnungen miteinander kompatibel. |
Ausdruck
|
Arbeitsbereich des Ausdruckseditors |
Schematische Skizze:
Ausdruck |
AbwKnoten[Material='B'].KanalartNutzung |
Definition des SQL Abfrage-Ausdrucks. Alle Elemente der Benutzeroberfläche können für die Erstellung des Ausdrucks benutzt werden.
Das schrittweise Vorgehen zum Erstellen des Ausdrucks wird im Abschnitt So geht's beschrieben.
Validierung
|
Funktion für den Ausdruck |
Die Validierung wird über die Werkzeuge des Ausdruckseditors aufgerufen. Sie prüft auf die syntaktische Richtigkeit des eingegebenen Ausdrucks. Nach Abschluss der Prüfung wird das im Folgenden beschriebene Ergebnisprotokoll ausgegeben.
Fehlerhafter Algorithmus
Das Prüfergebnis weist auf einen fehlerhaften Algorithmus hin. Im Beispiel wurde eine schließende Klammer zu viel gesetzt.
Ausdrucks-Editor |
|||
Ausdruck überprüfen |
|||
Der eingegebene Ausdruck ist ungültig! Fehlermeldung des Parsers: Invalid expression end ')' |
|||
|
|||
|
Fehlerfreier Algorithmus
Gemäß Prüfergebnis ist der Algorithmus fehlerfrei.
Ausdrucks-Editor |
|||
Ausdruck überprüfen |
|||
Der eingegebene Ausdruck ist gültig. |
|||
|
|||
|
Wichtiger Hinweis
Ein gültiger Ausdruck führt nicht zwangsläufig zu einer fehlerfreien Abfrage. Zur weiteren Prüfung muss die Abfrage also mit sinnvollen Daten getestet werden.
Validierung exportieren
|
Zugehörige Schaltfläche |
Bei Klick auf die Schaltfläche wird der Meldungstext in die Zwischenablage übernommen. Der Text kann dann in jedes beliebige Dokument eingefügt werden.
Ausdruck wählen
|
Arbeitsbereich des Ausdruckseditors |
Schematische Skizze:
Ausdruck wählen |
Kopfleiste. |
|||||||||||
|
Objekthierarchie mit allen Datenbankobjekten, die gefiltert auf das Stammelement für den Ausdruck gewählt werden können. |
Objekthierarchie des Ausdruckseditors für die Fachschale, aus welcher der Editor gestartet wurde.
-
Die Objekte werden hierarchisch in einer Baumstruktur dargestellt.
-
Oberster Ast der Hierarchie ist das aktive Objekt (Knoten oder Leitung).
-
Jedes Objekt kann direkt in den Ausdruck übernommen werden.
Im obersten Knoten der Objekthierarchie wird der BaSYS Objekttyp angezeigt, dessen Attribute und verknüpfte bzw. zu filternde Objekte für die Erstellung eines Abfrageausdrucks genutzt werden sollen.
Wahl des Objekttyps
Der Objekttyp, für den der Abfrageausdruck editiert werden soll, wird in der übergeordneten Applikation (beispielsweise im Legendeneditor von BaSYS LILA oder im OPath Abfragedesigner) definiert.
Das gewünschte Attribut ist per <Strg> Doppelklick in den Editierbereich zu übernehmen.
Die Objekte der Objekthierarchie werden in der folgenden Übersicht beispielhaft für den Objekttyp AbwKnoten dargestellt. Die Verknüpfungen führen zur Beschreibung der Details weiter.
|
|||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
Attribute |
||||||||||||||||||
|
|||||||||||||||||||
|
Attribute |
||||||||||||||||||
|
|||||||||||||||||||
! |
Parent unbenannt |
Fachschale und Objekttyp
Fachschale und Objekttyp werden über die externe Applikation definiert. In den Ausdrucks-Editor sind die Fachschalen Wasser, Gas und Abwasser integriert.
Dazu gehören jeweils die Objekttypen Knoten und Leitung.
Direkte Attribute
Direkte Attribute des Objekttyps.
Die Auswahl eines Attributes für den Editierbereich erfolgt per Doppelklick.
Objektlisten
Objektlisten des übergeordneten Objektes (hier des Objekttyps). Eine Objektliste besitzt Attribute und Unterhierarchien.
Das gewünschte Attribut wird per <Strg> Doppelklick mit der Beziehungshierarchie in den Editierbereich übernommen.
Zu filternde Objekte
Zu filternde Objekte des übergeordneten Objektes. Ein zu filterndes Objekt besitzt Attribute und Unterhierarchien.
Das gewünschte Attribut wird per <Strg> Doppelklick mit Beziehungshierarchie und eckigen Klammern [<Filter>] zur Filterdefinition in den Editierbereich übernommen.
Im Editierbereich ist innerhalb der eckigen Klammern der erforderliche Filter zu definieren.
Weitere Hierarchien
Per Klick auf <+> wird die nächste Hierarchieebene geöffnet. So kann bis zu jedem beliebigen Attribut navigiert werden. In der Abbildung ist die Navigation zum Attribut <Typ> dargestellt, das zu den Eigenschaften des Arbeitsbereiches gehört. Das Attribut wird wie folgt in den Editierbereich übernommen:
-
Arbeitsbereich.Properties[<Filter>].TypeBezeichnung
Der Filter ist danach im Editierbereich zu definieren.
Parent unbenannt
Unbenanntes übergeordnetes Objekt zum Objekt des Pfades.
Spaltenfilter
|
Arbeitsbereich des Ausdruckseditors |
Schematische Skizze:
|
|
Im Ausdruckseditor können folgende Spaltenfilter für die Baumstruktur der Objekthierarchie gewählt werden:
● |
|
System |
Bei aktiver Schaltfläche werden die systemverwalteten Spalten in der Baumstruktur angezeigt. Die Spalten besitzen dasselbe Symbol wie die Schaltfläche. Dadurch können sie sofort von den übrigen Spalten unterschieden werden. Bei inaktiver Schaltfläche werden die systemverwalteten Spalten ausgeblendet. |
● |
|
Fremdschlüssel |
Bei aktiver Schaltfläche werden die Fremdschlüssel-Spalten in der Baumstruktur angezeigt. Die Spalten besitzen dasselbe Symbol wie die Schaltfläche. Dadurch können sie sofort von den übrigen Spalten unterschieden werden. Bei inaktiver Schaltfläche werden die Fremdschlüssel-Spalten ausgeblendet. |
Operatoren
|
Arbeitsbereich des Ausdruckseditors |
Die Operatoren werden im Ausdruckseditor genutzt, um die Elemente eines Ausdrucks miteinander in Beziehung zu setzen.
Operatoren |
= |
<> |
Like |
In |
< |
<= |
>= |
> |
And |
Or |
( |
) |
+ |
- |
* |
/ |
[ |
] |
^. |
. |
'---' |
' |
# |
ref: |
Im Folgenden werden ausschließlich die Operatoren beschrieben, die nicht zur mathematischen Allgemeinbildung gehören. Die Beschreibung schließt jeweils mit einem Beispiel zu folgenden Objekten ab:
-
Haltung 'RW-001'
-
Anfangsschacht 'RW-001'
-
Strang 'RW-01'
LIKE-Operator
Like |
Zugehöriges Symbol |
Der LIKE Operator sucht nach der Übereinstimmung mit dem definierten Platzhalter.
Beispiel:
-
AbwLeitung[ref:Id LIKE 'RW'].Bezeichnung = 'RW-001'
Wert in Werten J/N
In |
Zugehöriges Symbol |
Falls ein Wert in In(<values>) enthalten ist, wird WAHR, sonst FALSCH zurückgegeben. Der Operator durchsucht die (gefilterte) Datenbankspalte nach den in einer Liste übergebenen Werten.
Beispiel
In Tabelle AbwLeitung befinden sich 500 Leitungen. In der Spalte Material soll die Liste mit den Materialien Steinzeug und Beton berücksichtigt werden. Dazu kann folgender Ausdruck erstellt werden:
-
Material In (‚STZ‘, ‚B‘)
Über diesen Filter werden dann in einer Abfrage von AbwLeitung - Objekten alle Leitungen gefunden, die eines der genannten Materialen besitzen.
Mehrfachauswahl-Parameter verwenden
Der im Beispiel beschriebene Ausdruck lässt sich durch einen Mehrfachauswahl-Parameter sinnvoll erweitern. Dadurch wird die Abfrage für eine andere / benutzerdefinierte Materialauswahl flexibilisiert.
So geht's:
-
Definition eines Mehrfachauswahlparameters, beispielsweise $LeiMaterial vom Typ Auswahlliste.
-
Umgestaltung des im Beispiel genannten Ausdrucks:
-
Material In ($LeiMaterial)
-
-
Ausführen der Abfrage.
-
Jetzt wird auf der zweiten Seite des Parametereingabeformulars nach den gewünschten Einträgen aus der Auswahlliste Material gefragt.
Filterdefinition
[...] |
Zugehöriges Symbol |
Definition eines Filters. Die Filterbedingung muss einem logischen Ausdruck entsprechen.
Beispiel:
-
AbwLeitung[KanalartNutzung = 'R'].Bezeichnung = 'RW-001'
Übergeordnete Hierarchieebene
^. |
Zugehöriges Symbol |
Aliasbezeichnung für die übergeordnete(n) Hierarchieebene(n [^.^. usw.]) des Pfades zum OPath.
Beispiel:
-
AbwLeitung.KnotenAnf.HydKnoten.Detailergebnisse.Concat(^.Bezeichnung, ' Wassertiefe: ', MaxWassertiefe, ' m')
= 'RW-001 Wassertiefe 1.47 m'. (Dabei liefert '^.Bezeichnung' die Bezeichnung von 'HydKnoten').
OPath-Trennzeichen
. |
Zugehöriges Symbol |
Trennzeichen für die Hierarchieelemente eines Pfades zum OPath.
Beispiel:
-
Pfad mit OPath: AbwLeitung.KnotenAnf.HydKnoten.Detailergebnisse.MaxWassertiefe
Datums- oder Zeitwert
# |
Zugehöriges Symbol |
Definitionszeichen für Datums- und Zeitwerte.
Beispiele:
-
Datum: #2008-07-21#
-
Uhrzeit: #08:05:54#
-
Kombination aus Datum und Zeit: #2008-07-21T08:05:54#
Langtext Referenzwert
ref: |
Zugehöriges Symbol |
Für einen Referenzwert (wie Id, Auswahllistenwert) wird der Langtext ausgegeben.
Beispiel:
-
ref:AbwLeitung.Id' = 'RW-001(A)' (oder 'RW-001', falls die Verwendung von Strängen ausgeschaltet ist).
ref: kann nur für den Anfang eines Pfades definiert werden! Dies gilt auch innerhalb von Funktionen, Parametern und Filtern.
Funktionen
|
Arbeitsbereich des Ausdruckseditors |
Über Funktionen werden im Ausdruckseditor die Ergebnisse eines Abfrageausdrucks für den jeweiligen OPath am Ende eines Pfades generiert. Die statistischen Funktionen beziehen sich auf das letzte Pfad-Objekt vor dem OPath. Die Verknüpfungen führen zur jeweiligen Detailbeschreibung.
Funktionen |
Parameter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prüfung (Boolean)
|
Boolsche Funktionen |
Als Ergebnis der Funktion Prüfung wird WAHR oder FALSCH zurückgegeben.
: |
|
Not |
: |
|
IsNull |
: |
|
IsType |
: |
|
|
: |
|
IsBetween |
: |
|
IsNumeric |
: |
|
StartsWith |
: |
|
|
: |
|
Contains |
: |
|
GeometryIntersects |
: |
|
GeometryFilter |
: |
|
IsGeometryValid |
: |
|
Not(<condition>)
Bei nicht erfüllter Bedingung <condition> wird WAHR, andernfalls FALSCH zurückgegeben.
● |
Definitionsbeispiel: |
Not(Material='Stz') = WAHR für beispielsweise 'B' = FALSCH für 'Stz' |
● |
Abfragebeispiel: |
AbwLeitung.IIF(Not(Material='Stz'),Material,NULL) |
● |
Abfrageergebnis: |
Für alle Haltungen ohne Steinzeugrohre wird das Material zurückgegeben. |
IsNull(<valuepath>)
Falls sich im <valuepath> kein Wert befindet, wird WAHR, ansonsten FALSCH zurückgegeben.
● |
Definitionsbeispiel: |
IsNull(NULL) = WAHR IsNull(1) = FALSCH |
● |
Abfragebeispiel: |
AbwLeitung.IIF(IsNull(Laenge),Bezeichnung,NULL) |
● |
Abfrageergebnis: |
Für alle Haltungen ohne Länge wird die Bezeichnung zurückgegeben. |
IsType(<type>)
Falls der Objekttyp dem gewünschten Typ <type> entspricht, wird WAHR, ansonsten FALSCH zurückgegeben.
● |
Definitionsbeispiel: |
IsType(AbwSchacht) = WAHR für Objekttyp 'Schacht' = FALSCH für Objekttyp 'Bauwerk' |
● |
Abfragebeispiel: |
AbwKnoten.IIF(IsType(AbwBauwerk),Laenge,1) |
● |
Abfrageergebnis: |
Für alle Bauwerke wird die Länge, für alle Schächte die Länge 1 m zurückgegeben. |
IsTypeValue(<column>, <type>)
Gibt WAHR zurück, falls der Wert der Objekttyp-Spalte <column> passend zum Objekttyp <type> ist, andernfalls FALSCH.
IsBetween(<value>, <value1>, <value2>)
Gibt WAHR zurück, falls der Ausdruck <value> zwischen den Ausdrücken <value1> und <value2> liegt (Grenzwerte eingeschlossen), andernfalls FALSCH.
IsNumeric(<value>)
Gibt WAHR zurück, falls der Ausdruck <value> eine Zahl enthält, andernfalls FALSCH.
StartsWith(<stringvalue>, <searchString>)
Gibt WAHR zurück, falls der Ausdruck <stringvalue> mit der Zeichenfolge <searchString> beginnt, andernfalls FALSCH.
EndsWith(<stringvalue>, <searchString>)
Gibt WAHR zurück, falls der Ausdruck <stringvalue> mit der Zeichenfolge <searchString> endet, andernfalls FALSCH.
Contains(<stringvalue>, <searchString>)
Gibt WAHR zurück, falls der Ausdruck <stringvalue> die Zeichenfolge <searchString> enthält, andernfalls FALSCH.
GeometryIntersects(<geometry1>, <geometry2>)
Gibt WAHR zurück, falls die erste Geometrie <geometry1> (dies sollte ein Datenfeld sein) eine Schnittmenge mit der zweiten Geometrie <geometry2> hat, andernfalls FALSCH.
GeometryFilter(<geometry1>, <geometry2>)
Gibt WAHR zurück, falls die erste Geometrie <geometry1> (dies sollte ein Datenfeld sein) eine Schnittmenge mit der zweiten Geometrie <geometry2> haben könnte (ein exakter Vergleich wird zugunsten besserer Performance nicht durchgeführt), andernfalls FALSCH.
IsGeometryValid()
Gibt WAHR zurück, falls die Geometriedaten fehlerfrei und zulässig sind, andernfalls FALSCH.
Exists(<path>)
Wenn zum Objekttyp des Pfadelementes Objekte existieren, wird WAHR, ansonsten FALSCH zurückgegeben.
● |
Definitionsbeispiel: |
Exists(AbwAnschlussleitungen) = WAHR für vorhandene Anschlüsse = FALSCH für fehlende Anschlüsse |
● |
Abfragebeispiel: |
AbwLeitung.IIF(Exists(AbwAnschlussleitung),Bezeichnung,NULL) |
● |
Abfrageergebnis: |
Für alle Haltungen mit Anschlussleitungen wird die Bezeichnung zurückgegeben. |
Bedingte Werte (Conditional Value)
|
Bedingungsfunktionen |
Eine Bedingung wird für den OPath am Ende des Pfades ausgeführt. Die Funktion entscheidet automatisch aufgrund einer gesetzten Bedingung oder mehrerer gesetzter Bedingungen, welcher Wert ausgegeben wird.
Die Funktionsparameter werden seriell abgearbeitet, beispielsweise für CaseWhen() zuerst <value1>,<retvalue1>, dann <value2>,<retvalue2>}, usw.
: |
|
IIF |
: |
|
CaseWhen |
: |
|
CaseWhenValue |
: |
|
|
: |
|
CaseNull |
IIF(<condition>, <truevalue>, [falsevalue])
IIF gibt bei Erfüllung der Bedingung <condition> den Wert <truevalue> zurück. Bei Nichterfüllung wird optional [falsevalue], bei fehlendem [falsevalue] der Wert -1 zurückgegeben.
● |
Definitionsbeispiel: |
IIF(Len(PAR)=0,'Wert fehlt',PAR)
= PAR für FALSCH |
● |
Abfragebeispiel: |
AbwKnoten.IIF(Exists(AbwSchacht),'Schacht','Bauwerk') |
● |
Abfrageergebnis: |
Der Hauptknotentyp wird zurückgegeben. |
CaseWhen(<testvalue>, <value1>, <retvalue1>, ..., [elsevalue])
CaseWhen gibt für jeden Wert <testvalue> = <value1..n> den Wert <retvalue1..n> zurück. Für Werte <testvalue> ≠ <value1..n> wird optional [elsevalue], bei fehlendem [elsevalue] der Wert -1 zurückgegeben.
● |
Definitionsbeispiel: |
CaseWhen(1, 1,3, 2,1.5, 1) = 3
|
● |
Abfragebeispiel: |
AbwLeitung.CaseWhen(Material,'B','Beton','Stz','Steinzeug','Andere') |
● |
Abfrageergebnis: |
Die Materialien 'Beton', 'Steinzeug', 'Andere' der Haltungen werden zurückgegeben. |
CaseWhenValue(<value>, <value1>, <retvalue1>, ...)
Gibt <retvalueN> zurück, falls <valueN> gleich <value> ist, andernfalls den Wert <value> selbst.
CaseTrue(<condition1>, <retvalue1>, ..., [elsevalue])
CaseTrue gibt bei Erfüllung der jeweiligen Bedingung <condition1..n> den jeweiligen Wert <retvalue1..n> zurück. Bei Nichterfüllung wird optional [elsevalue], bei fehlendem [elsevalue] der Wert -1 zurückgegeben.
● |
Definitionsbeispiel: |
CaseTrue(PAR>3,1, PAR>2,1.5, 3)
= 1,5 für PAR > 2 = 3 für andere Werte von PAR |
● |
Abfragebeispiel: |
AbwLeitung.CaseTrue(Sohlgefaelle<0,'Gegengefälle',Sohlgefaelle=0, 'kein Gefälle','Gefälle in Fließrichtung') |
● |
Abfrageergebnis: |
Die Haltungen werden als solche mit Gegengefälle, solche ohne Sohlgefälle und als solche mit Gefälle in Fließrichtung zurückgegeben. |
CaseNull(<value1>, ...)
CaseNull gibt für die Werte <value1..n> den ersten Wert zurück, der nicht leer ist. Das Ergebnis kann auch leer sein.
● |
Definitionsbeispiel: |
CaseNull(PAR1,PAR2) = PAR1 für PAR1 ≠ {}. = PAR2 für PAR1 = {}, PAR2 ≠ {}. = NULL für PAR1 = {}, PAR2 = {}. |
● |
Abfragebeispiel: |
AbwLeitung.CaseNull(Profilbreite,Profilhoehe) |
● |
Abfrageergebnis: |
Wenn die Profilbreite vorhanden ist, wird sie benutzt, ansonsten die Profilhöhe. Besitzt auch die Profilhöhe keinen Wert, so wird der Wert NULL zurückgegeben. |
Formatierung (Format)
|
Formatfunktionen |
Die Formatdefinition wird für den OPath am Ende des Pfades ausgeführt. Für den Wert des OPaths wird über die Funktion das gewünschte Zahlen-, Datums-, Zeit- oder Logik-Format zurückgegeben.
: |
|
FormatNumber |
: |
|
FormatNumberGrouped |
: |
|
FormatCurrency |
: |
|
|
: |
|
FormatTime |
: |
|
FormatBool |
FormatNumber(<numericvalue>, <decimalplaces>, [minnums], [decsep])
FormatNumber formatiert einen beliebigen Zahlenwert <numericvalue> auf <decimalplaces> Nachkomma- und auf optional mindestens [minnums] Vorkommastellen. Wird das optionale Dezimaltrennzeichen [decsep] nicht vorgegeben, gelten die lokalen Windows Einstellungen.
● |
Definitionsbeispiel: |
FormatNumber
|
FormatNumberGrouped(<numericvalue>, <decimalplaces>, [decsep], [groupsep])
FormatNumberGrouped formatiert einen beliebigen Zahlenwert <numericvalue> auf <decimalplaces> Nachkommastellen. Wird das optionale Dezimal- [decsep] und / oder Tausendertrennzeichen [groupsep] nicht vorgegeben, gelten die lokalen Windows Einstellungen.
● |
Definitionsbeispiel: |
FormatNumberGrouped
|
FormatCurrency(<numericvalue>, <decimalplaces>, [decsep], [groupsep], [sym])
FormatCurrency formatiert einen beliebigen Zahlenwert <numericvalue> auf <decimalplaces> Nachkommastellen mit Währungssymbol [sym].
Dezimal- [decsep] und Tausendertrennzeichen [groupsep] sowie das Währungssymbol [sym] sind optional. Bei Nichtvorgabe gelten die lokalen Windows Einstellungen.
● |
Definitionsbeispiel: |
FormatCurrency
|
FormatDate(<dateval>, [formatstring])
FormatDate gibt einen formatierten Datenwert <dateval> zurück. Bei Nichtvorgabe des Datumsformats [formatstring] gelten die lokalen Windows Einstellungen. Die Platzhalter für die Terme:
- Jahr (4 Ziffern, 2 Ziffern): yyyy, yy
- Monat (2 Ziffern, 1 Ziffer): mm, m
- Tag (2 Ziffern, 1 Ziffer): dd, d
können per '{}' in eine Zeichenfolge integriert werden.
● |
Definitionsbeispiel: |
FormatDate(#2000-07-23#, dd.mm.yyyy) = '23.07.2000' FormatDate(#2000-07-23#, '{d}. Tag im {}. Monat, Jahr {yyyy}.') = '23. Tag im 7. Monat, Jahr 2000.' |
FormatTime(<timeval>, [formatstring])
FormatTime gibt einen formatierten Zeitwert <timeval> zurück. Bei Nichtvorgabe des Zeitformats [formatstring] gelten die lokalen Windows Einstellungen. Die Platzhalter für die Terme:
- Stunde (2 Ziffern, 1 Ziffer): hh, h
- Minute (2 Ziffern, 1 Ziffer): mm, m
- Sekunde (2 Ziffern, 1 Ziffer): ss, s
können per '{}' in eine Zeichenfolge integriert werden.
● |
Definitionsbeispiel: |
FormatTime(#08:02:11#, 'hh:mm:ss Uhr') = '08:02:11 Uhr' FormatTime(#08:02:11#, 'Gespeichert um {h} Uhr und {m} Minuten und {s} Sekunden.') = 'Gespeichert um 8 Uhr und 2 Minuten und 11 Sekunden.' |
FormatBool(<boolval>, [formatstring])
FormatBool gibt einen formatierten logischen Wert <boolval> zurück. Das erste Zeichen von [formatstring] (2 Zeichen) entspricht dem Format von TRUE, das zweite Zeichen dem Format von FALSCH. Standardwert von [formatstring] ist 'x-'.
● |
Definitionsbeispiel: |
FormatBool(WAHR, 'JN') = 'J' FormatBool(FALSCH, 'JN') = 'N' FormatBool(WAHR) = 'x' FormatBool(FALSCH) = '-' |
Zeichenfolge (String)
|
Textfunktionen |
Zeichenfolge-Funktionen werden für den OPath am Ende des Pfades ausgeführt. Es wird eine Information zur Zeichenfolge oder eine über den Algorithmus veränderte Zeichenfolge zurückgegeben.
Ob Groß- und Kleinbuchstaben, beispielsweise 'A' und 'a', als gleiche Werte interpretiert werden, hängt von der aktuellen Systemumgebung ab.
: |
|
Trim |
: |
|
Len |
: |
|
Substring |
: |
|
|
: |
|
Right |
: |
|
Mid |
: |
|
Concat |
: |
|
|
: |
|
LastIndexOf |
: |
|
Replace |
: |
|
Reverse |
: |
|
|
: |
|
ToLower |
: |
|
PadLeft |
: |
|
PadRight |
: |
|
|
: |
|
JoinEmpty |
: |
|
Suffix |
: |
|
Prefix |
: |
|
|
: |
|
Ascii |
: |
|
NewLine |
Trim(<stringvalue>)
Trim entfernt die Leerzeichen am Beginn und Ende einer Zeichenfolge <stringvalue>.
● |
Definitionsbeispiel: |
Trim(' abc ') = 'abc' |
Len(<stringvalue>)
Len gibt die Länge einer Zeichenfolge <stringvalue> zurück.
● |
Definitionsbeispiel: |
Len('abcdefg') = 7 |
Substring(<stringvalue>, <startindex>, [length])
Substring gibt eine Teilfolge der Zeichenfolge <stringvalue> zurück. Die Teilfolge beginnt an der Stelle <startindex>. Dabei entspricht der Wert 0 dem ersten Zeichen. Optional kann die gewünschte Länge [length] der Teilfolge angegeben werden. Bei fehlender Angabe endet die Teilfolge mit dem letzten Zeichen von <stringvalue>).
● |
Definitionsbeispiel: |
Substring('abcdefg',2) = 'cdefg'
Substring('abcdefg',0) = 'abcdefg' Substring('abcdefg',0,9) = 'abcdefg' |
Left(<stringvalue>, <length>)
Left gibt eine Teilfolge der Zeichenfolge <stringvalue> zurück. Die Teilfolge beginnt mit dem ersten Zeichen von <stringvalue>. Die Länge der Teilfolge ist über <length> festgelegt.
● |
Definitionsbeispiel: |
Left('abcdefg',5) = 'abcde'
|
Right(<stringvalue>, <length>)
Right gibt eine Teilfolge der Zeichenfolge <stringvalue> zurück. Die Teilfolge beginnt mit dem Zeichen, das sich um <length> vor dem letzten Zeichen von <stringvalue> befindet.
● |
Definitionsbeispiel: |
Right('abcdefg',5) = 'cdefg' Right('abcdefg',9) = 'abcdefg' |
Mid(<stringvalue>, <startindex>, [length])
Mid (<stringvalue>, ...) gibt die selben Werte zurück wie die Funktion Substring(<stringvalue>, ...).
● |
Definitionsbeispiel: |
Mid('abcdefg',3,3) = 'def' |
Concat(<stringvalue1>, ...)
Concat verbindet die Zeichenfolgen <stringvalue1..n> zu einer neuen Zeichenfolge.
● |
Definitionsbeispiel: |
Concat('ab','cde','fg') = 'abcdefg' |
IndexOf(<stringvalue>, <searchString>)
IndexOf sucht die erste Teilfolge <searchString> innerhalb der Zeichenfolge <stringvalue>. Bei gefundener Teilfolge wird der Index des ersten Zeichens, andernfalls der Wert -1 zurückgegeben. Das erste Zeichen von <stringvalue> hat den Index 0.
● |
Definitionsbeispiel: |
IndexOf('abcdefg','cde') = 2 |
LastIndexOf(<stringvalue>, <searchString>)
IndexOf sucht die letzte Teilfolge <searchString> innerhalb der Zeichenfolge <stringvalue>. Bei gefundener Teilfolge wird der Index des ersten Zeichens, andernfalls der Wert -1 zurückgegeben. Das erste Zeichen von <stringvalue> hat den Index 0.
● |
Definitionsbeispiel: |
IndexOf('abcdabc','bc') = 5 |
Replace(<stringvalue>, <searchString1>, <replaceString1>, ...)
Replace ersetzt jede Teilfolge <searchString> der Zeichenfolge <stringvalue> durch die Teilfolge <replaceString>.
● |
Definitionsbeispiel: |
Replace('Uhu','u','a') = 'Aha'
Wert Systemumgebungs-abhängig! |
Reverse(<stringvalue>)
Gibt <stringvalue> in umgekehrter Reihenfolge zurück.
ToUpper(<stringvalue>)
Gibt <stringvalue> in Großbuchstaben zurück.
ToLower(<stringvalue>)
Gibt <stringvalue> in Kleinbuchstaben zurück.
PadLeft(<stringvalue>, <totalWidth>, [paddingChar])
Gibt <stringvalue> zurück, wobei die Zeichenfolge von links mit <paddingChar> auf eine Mindestlänge von <totalWidth> aufgefüllt wird.
PadRight(<stringvalue>, <totalWidth>, [paddingChar])
Gibt <stringvalue> zurück, wobei die Zeichenfolge von rechts mit <paddingChar> auf eine Mindestlänge von <totalWidth> aufgefüllt wird.
Join(<delimiter>, <stringvalue1>, ...)
Gibt die durch <delimiter> verbundenen Werte aller <stringvalueN> zurück. Leere Werte werden ignoriert.
JoinEmpty(<delimiter>, <stringvalue1>, ...)
Gibt die durch <delimiter> verbundenen Werte aller <stringvalueN> zurück. Leere Werte werden nicht ignoriert.
Suffix(<stringvalue>, <suffix>)
Gibt den Wert <stringValue> mit angehängtem <suffix> zurück, wenn der Wert nicht leer ist.
Prefix(<stringvalue>, <prefix>)
Gibt den Wert <stringValue> mit vorangestelltem <prefix> zurück, wenn der Wert nicht leer ist.
Char(<ascii>)
Gibt das Zeichen zurück, das dem ASCII-Code <ascii> entspricht.
Ascii(<char>)
Gibt den ASCII-Code des Zeichens <char> zurück.
NewLine()
Gibt die vom Betriebsystem verwendete Zeilenumbruch-Zeichenfolge zurück.
Zahlenfunktionen (Numeric)
|
Rechenfunktionen |
Zahlen-Funktionen werden für den OPath am Ende des Pfades ausgeführt. Es wird eine über den Algorithmus veränderte Zahl zurückgegeben.
: |
|
Abs |
: |
|
Round |
: |
|
Floor |
: |
|
|
: |
|
Mod |
: |
|
Sign |
: |
|
Pow |
: |
|
|
: |
|
Exp |
: |
|
Log |
: |
|
Ln |
: |
|
|
: |
|
Log10 |
: |
|
Sin |
: |
|
Cos |
: |
|
|
: |
|
Asin |
: |
|
Acos |
: |
|
Atan |
: |
|
|
: |
|
Sinh |
: |
|
Cosh |
: |
|
Tanh |
Abs(<numericvalue>)
Abs gibt für jeden Zahlenwert <numericvalue> den positiven Wert zurück.
● |
Definitionsbeispiel: |
Abs(-107.25) = 107,25 |
Round(<numericvalue>, <decimalplaces>)
Round rundet jeden Zahlenwert <numericvalue> auf die definierte Anzahl der Nachkommastellen.
● |
Definitionsbeispiel: |
Round(-107.25, 1) = -107,3 |
Floor(<numericvalue>)
Floor gibt für jeden Zahlenwert <numericvalue> die nächst kleinere Ganzzahl zurück.
● |
Definitionsbeispiel: |
Floor(-107.25) = -108,00 |
Ceiling(<numericvalue>)
Gibt den ersten Ganzzahlwert zurück, der größer als <numericvalue> ist.
Mod(<numericvalue1>, <numericvalue2>)
Gibt den Rest der Division von <numericvalue1> durch <numericvalue2> zurück.
Sign(<numericvalue>)
Gibt +1 zurück, wenn <numericvalue> positiv ist; gibt -1 zurück, wenn <numericvalue> negativ ist; sonst 0.
Pow(<x>, <y>)
Gibt die Potenz der Basis <x> mit dem Exponenten <y> zurück.
Sqrt(<numericvalue>)
Gibt die Quadratwurzel von <numericvalue> zurück.
Exp(<exponent>)
Gibt das Ergebnis der Exponentialfunktion zurück (Basis e, Exponent <exponent>).
Log(<numericvalue>, <newBase>)
Gibt den Logarithmus von <numericvalue> zur Basis <newBase> zurück.
Ln(<numericvalue>)
Gibt den Logarithmus von <numericvalue> zur Basis e zurück.
Log2(<numericvalue>)
Gibt den Logarithmus von <numericvalue> zur Basis 2 zurück.
Log10(<numericvalue>)
Gibt den Logarithmus von <numericvalue> zur Basis 10 zurück.
Sin(<numericvalue>)
Gibt den Sinus des Winkels <numericvalue> zurück.
Cos(<numericvalue>)
Gibt den Kosinus des Winkels <numericvalue> zurück.
Tan(<numericvalue>)
Gibt den Tangens des Winkels <numericvalue> zurück.
Asin(<numericvalue>)
Gibt den Arkussinus des Wertes <numericvalue> zurück.
Acos(<numericvalue>)
Gibt den Arkuskosinus des Wertes <numericvalue> zurück.
Atan(<numericvalue>)
Gibt den Arkustangens des Wertes <numericvalue> zurück.
Atan2(<y>, <x>)
Gibt den Arkustangens des Quotienten von <y> und <x> zurück.
Sinh(<numericvalue>)
Gibt den Hyperbelsinus des Wertes <numericvalue> zurück.
Cosh(<numericvalue>)
Gibt den Hyperbelkosinus des Wertes <numericvalue> zurück.
Tanh(<numericvalue>)
Gibt den Hyperbeltangens des Wertes <numericvalue> zurück.
Datum und Zeit (Date and Time)
|
Rechenfunktionen |
Die Funktionen ermöglichen das Abgreifen der aktuellen Datums- und Zeitwerte, das Rechnen mit den Werten sowie die Generierung von Datums- und Zeitformaten.
: |
|
CurrentDateTime |
: |
|
CurrentDate |
: |
|
CurrentTime |
: |
|
|
: |
|
MaxDate |
: |
|
EmptyDate |
: |
|
GetDate |
: |
|
|
: |
|
GetMilliSecond |
: |
|
GetSecond |
: |
|
GetMinute |
: |
|
|
: |
|
GetDay |
: |
|
GetMonth |
: |
|
GetYear |
: |
|
|
: |
|
GetDayOfYear |
: |
|
AddTimeSpan |
: |
|
GetTimeSpan |
: |
|
|
: |
|
AddSeconds |
: |
|
AddMinutes |
: |
|
AddHours |
: |
|
|
: |
|
AddMonths |
: |
|
AddYears |
CurrentDateTime
Gibt die aktuelle Systemzeit (mit Datum) zurück.
CurrentDate
Gibt das aktuelle Systemdatum zurück.
CurrentTime
Gibt die aktuelle Systemzeit (ohne Datum) zurück.
MinDate
Gibt die Untergrenze des vom System unterstützten Datumsbereichs zurück.
MaxDate
Gibt die Obergrenze des vom System unterstützten Datumsbereichs zurück.
EmptyDate
Gibt das Datum zurück, das vom System als leeres Datum verwendet wird, wenn nur eine Zeitangabe benötigt wird.
GetDate
Gibt das Datum des Wertes <datetime> zurück (die Zeit wird auf 00:00 gesetzt).
GetTime
Gibt die Zeit des Wertes <datetime> zurück (das Datum wird auf das leere Datum gesetzt).
GetMilliSecond
Gibt die Millisekunden-Zahl des Zeit-Wertes <datetime> zurück.
GetSecond
Gibt die Sekunden-Zahl des Zeit-Wertes <datetime> zurück.
GetMinute
Gibt die Minuten-Zahl des Zeit-Wertes <datetime> zurück.
GetHour
Gibt die Stunden-Zahl des Zeit-Wertes <datetime> zurück.
GetDay
Gibt die Tage-Zahl des Datum-Wertes <datetime> zurück.
GetMonth
Gibt die Monate-Zahl des Datum-Wertes <datetime> zurück.
GetYear
Gibt die Jahre-Zahl des Datum-Wertes <datetime> zurück.
GetDayOfWeek
Gibt die Wochentags-Zahl des Datum-Wertes <datetime> zurück (Sonntag=0, ...).
GetDayOfYear
Gibt die Jahrestags-Zahl des Datum-Wertes <datetime> zurück.
AddTimeSpan
Addiert zum Wert <datetime> die Zeitspanne <timespan> (Ganztage als Fließkommazahl) und gibt das Ergebnis zurück.
GetTimeSpan
Ermittelt die Zeitspanne (Ganztage als Fließkommazahl) zwischen den Werten <datetime1> (größer) und <datetime2> (kleiner) und gibt das Ergebnis zurück.
AddMilliSeconds
Addiert zum Wert <datetime> <number> ganze Millisekunden hinzu und gibt das Ergebnis zurück.
AddSeconds
Addiert zum Wert <datetime> <number> ganze Sekunden hinzu und gibt das Ergebnis zurück.
AddMinutes
Addiert zum Wert <datetime> <number> ganze Minuten hinzu und gibt das Ergebnis zurück.
AddHours
Addiert zum Wert <datetime> <number> ganze Stunden hinzu und gibt das Ergebnis zurück.
AddDays
Addiert zum Wert <datetime> <number> ganze Tage hinzu und gibt das Ergebnis zurück.
AddMonths
Addiert zum Wert <datetime> <number> ganze Monate hinzu und gibt das Ergebnis zurück.
AddYears
Addiert zum Wert <datetime> <number> ganze Jahre hinzu und gibt das Ergebnis zurück.
Geometrie (Geometry)
|
Koordinatenfunktionen |
Die Funktionen ermöglichen die Untersuchung und Überarbeitung von Punkt-, Linien-, Kurven- und Polygongeometrien.
: |
|
ParseGeometry |
: |
|
GetGeometryText |
: |
|
GetGeometryType |
: |
|
|
: |
|
GetSrid |
: |
|
GetX |
: |
|
GetY |
: |
|
|
: |
|
GeometryCount |
: |
|
GetGeometry |
: |
|
RingCount |
: |
|
|
: |
|
CurveCount |
: |
|
GetCurve |
: |
|
PointCount |
: |
|
ParseGeometry
Erzeugt aus einer Zeichenfolge <wkt> (Well-Known-Text) und SRID <srid> (Integer gemäß EPSG) ein Geometrie-Objekt und gibt dieses zurück.
GetGeometryText
Gibt den Well-Known-Text (Zeichenfolge) des Geometrie-Objektes <geometry> zurück.
GetGeometryType
Gibt den Typ (Zeichenfolge) des Geometrie-Objektes <geometry> zurück.
GetEnvelope
Gibt die Polygon-Geometrie (Rechteck) der kleinsten umschließenden Box des Geometrie-Objektes <geometry> zurück.
GetSrid
Gibt die SRID (Integer gemäß EPSG) des Geometrie-Objektes <geometry> zurück.
GetX
Gibt den X-Wert des Geometrie-Punktes <geometry> zurück.
GetY
Gibt den Y-Wert des Geometrie-Punktes <geometry> zurück.
GetZ
Gibt den Z-Wert des Geometrie-Punktes <geometry> zurück.
GeometryCount
Gibt die Anzahl der im aktuellen Geometrie-Objekt <geometry> vorhandenen Geometrie-Objekte zurück.
GetGeometry
Gibt anhand des Null-basierten <index> ein Geometrie-Objekt aus dem aktuellen Geometrie-Objekt <geometry> zurück.
RingCount
Gibt die Anzahl der im aktuellen Geometrie-Objekt <geometry> vorhandenen Ring-Objekte zurück.
GetRing
Gibt anhand des Null-basierten <index> ein Ring-Objekt aus dem aktuellen Geometrie-Objekt <geometry> zurück.
CurveCount
Gibt die Anzahl der im aktuellen Geometrie-Objekt <geometry> vorhandenen Curve-Objekte zurück.
GetCurve
Gibt anhand des Null-basierten <index> ein Curve-Objekt aus dem aktuellen Geometrie-Objekt <geometry> zurück.
PointCount
Gibt die Anzahl der im aktuellen Geometrie-Objekt <geometry> vorhandenen Punkt-Objekte zurück.
GetPoint
Gibt anhand des Null-basierten <index> ein Punkt-Objekt aus dem aktuellen Geometrie-Objekt <geometry> zurück.
Konvertierung (Convert)
|
Wertumwandlungsfunktionen |
Die Typkonvertierung wird für den OPath am Ende des Pfades ausgeführt. Dem Wert des OPaths wird der per Funktion definierte Typ zugewiesen. Die Umwandlung ist unbedingt erforderlich, falls eine übergeordnete Funktion nur einen bestimmten Werttyp (beispielsweise Float) nutzen kann.
: |
|
ToStr |
: |
|
ToFloat |
: |
|
ToInt |
ToStr(<value>)
ToStr gibt für einen beliebigen Wert dessen Zeichenfolge zurück.
● |
Definitionsbeispiel: |
ToStr(2.700) = '2.7' |
ToFloat(<value>)
ToFloat gibt für einen beliebigen Wert dessen rationalen Wert zurück.
● |
Definitionsbeispiel: |
ToFloat('2.700') = 2,7 |
ToInt(<value>)
ToInt gibt für einen beliebigen Wert dessen positiven Ganzzahl-Wert zurück.
● |
Definitionsbeispiel: |
ToInt(-1.6) = -2 |
Statistik (Aggregate)
|
Berechnungsfunktionen |
Eine statistische Funktion wird für den Objekttyp durchgeführt, der in der Pfadhierarchie direkt vor dem Funktionsterm steht. Es wird eine statistische Information zu den OPaths aller zugehörigen Objekte zurückgegeben.
: |
|
Count |
: |
|
Min |
: |
|
Max |
: |
|
|
: |
|
Sum |
: |
|
Avg |
: |
|
Distinct |
: |
|
|
: |
|
MinValue |
: |
|
MaxValue |
: |
|
MaxAbsValue |
: |
|
|
: |
|
SumValue |
Count(<path>)
Count gibt die Anzahl aller abgefragten Werte zurück. Die Werte können beliebig (Zahl, Zeichenfolge, usw.) sein.
● |
Definitionsbeispiel: |
Count(Knoten) = 20 |
● |
Abfragebeispiel: |
AbwLeitung.Count(AbwAnschlussleitungen) |
● |
Abfrageergebnis: |
Anzahl der an eine Haltung angeschlossenen Leitungen. |
Min(<valuepath>)
Min gibt das Minimum aller abgefragten Zahlenwerte wird zurück.
● |
Definitionsbeispiel: |
Min(Knoten.Tiefe) = 2,04 m |
● |
Abfragebeispiel: |
AbwLeitung.Min(AbwAnschlussleitungen.Laenge) |
● |
Abfrageergebnis: |
Kleinste Länge einer an die Haltung angeschlossenen Leitung. |
Max(<valuepath>)
Max gibt das Maximum aller abgefragten Zahlenwerte zurück.
● |
Definitionsbeispiel: |
Max(Knoten.Tiefe) = 4,78 m |
● |
Abfragebeispiel: |
AbwLeitung.Max(AbwAnschlussleitungen.Laenge) |
● |
Abfrageergebnis: |
Größte Länge einer an die Haltung angeschlossenen Leitung. |
MaxAbs(<valuepath>)
Gibt den absolut größten Wert aller abgefragten Zahlenwerte zurück.
Sum(<valuepath>)
Sum gibt die Summe aller abgefragten Zahlenwerte zurück.
● |
Definitionsbeispiel: |
Sum(Knoten.Tiefe) = 70,4 m |
● |
Abfragebeispiel: |
AbwLeitung.Sum(AbwAnschlussleitungen.Laenge) |
● |
Abfrageergebnis: |
Gesamtlänge der an die Haltung angeschlossenen Leitungen. |
Avg(<valuepath>)
Avg gibt den Durchschnitt aller abgefragten Zahlenwerte zurück.
● |
Definitionsbeispiel: |
Avg(Knoten.Tiefe) = 3,52 m |
● |
Abfragebeispiel: |
AbwLeitung.Avg(AbwAnschlussleitungen.Laenge) |
● |
Abfrageergebnis: |
Durchschnittliche Länge der an die Haltung angeschlossenen Leitungen. |
Distinct(<valuepath>)
Gibt eine Liste aller verschiedenen Werte zurück.
CountDistinct(<valuepath>)
Gibt die Anzahl aller verschiedenen Werte, die <valuepath> entsprechen, zurück.
MinValue(<value1>, ...)
Gibt den Kleinstwert der Wertliste <valueN> zurück.
MaxValue(<value1>, ...)
Gibt den Größtwert der Wertliste <valueN> zurück.
MaxAbsValue(<value1>, ...)
Gibt den absolut größten Wert der Wertliste <valueN> zurück.
AvgValue(<value1>, ...)
Gibt den Durchschnitt aller Werte der Wertliste <valueN> zurück.
SumValue(<value1>, ...)
Gibt die Summe aller Werte der Wertliste <valueN> zurück.
Pfadfunktionen (Special Path)
|
OPath-Funktionen |
Die Pfadfunktionen werden für den OPath am Ende des Pfades ausgeführt. Über die Funktionen wird gesteuert, für welche Objektattribute der OPath genutzt werden kann.
: |
|
Cast |
: |
|
Match |
: |
|
Type |
: |
|
|
: |
|
TypeDisplayText |
: |
|
TypeUniqueDisplayText |
: |
|
GetValue |
Cast(<type>)
Cast filtert die Objekte des Pfades auf den Objekttyp <type>. Vom Objekttyp abgeleitete Typen werden berücksichtigt.
● |
Definitionsbeispiel: |
Cast(AbwBauwerk) filtert auf Bauwerke mit allen Untertypen wie 'AbwKlaeranlage'. |
● |
Abfragebeispiel: |
AbwKnoten.Cast(AbwBauwerk).Sum(Grundflaeche) |
● |
Abfrageergebnis: |
Grundfläche aller Bauwerke; einschließlich aller Untertypen wie 'AbwBecken'. |
Match(<type>)
Matchfiltert die Objekte des Pfades auf den Objekttyp <type>. Vom Objekttyp abgeleitete Typen werden nicht berücksichtigt.
● |
Definitionsbeispiel: |
Match(AbwBecken) filtert nur auf Becken, also ohne 'AbwKlaeranlage'. |
● |
Abfragebeispiel: |
AbwKnoten.Match(AbwBecken).Sum(Grundflaeche) |
● |
Abfrageergebnis: |
Grundfläche der Bauwerke, die nur dem Untertyp 'AbwBecken' entsprechen. |
Type(<type>)
Type ermöglicht es, an einer beliebigen Stelle des aktuellen Pfades einen davon unabhängigen Pfad mit dem Objekttyp <type> zu definieren / beginnen.
● |
Definitionsbeispiel: |
AbwLeitung.Type(PicklistItem)[Value = ^.Kanalart].Description |
● |
Abfragebeispiel: |
AbwLeitung.Type(PicklistItem)[Value = ^.Kanalart
|
● |
Abfrageergebnis: |
Gibt den Langtext aus der Auswahlliste der Kanalart zurück. Die Abfrage ließe sich besser über den Operator 'ref:' editieren, wird aber hier zur Erklärung von Type() gezeigt. In Exists(![..]) steht '!' für Picklist als Parent von PicklistItem (siehe Knoten / Leitungen). |
TypeName()
Gibt den internen Namen des Typs des aktuellen Objektes zurück.
TypeDisplayText()
Gibt den Anzeigenamen des Typs des aktuellen Objektes zurück.
TypeUniqueDisplayText()
Gibt den global eindeutigen Anzeigenamen des Typs des aktuellen Objektes zurück.
GetValue(<value>)
GetValue ermöglicht es, für beliebig viele Attribute des über den Pfad angesteuerten Objekttyps die Werte <value> über Operatoren zu verknüpfen.
● |
Definitionsbeispiel: |
Getvalue(PAR1*PAR2/PAR3) = Wert |
● |
Abfragebeispiel: |
AbwLeitung.GetValue(Laenge / Rohrlaenge) |
● |
Abfrageergebnis: |
Anzahl der Rohre einer Haltung. |
Liste der Funktionsparameter
In der folgenden Liste werden die in den Funktionen verwendeten Parameter definiert.
<...>
Zwingend erforderlicher Parameter.
● |
Funktionsgruppe: |
(alle) |
● |
Definitionsbeispiel: |
IIF(<condition>,<truevalue>,[falsevalue]) |
[...]
Optionaler Parameter.
● |
Funktionsgruppe: |
(alle) |
● |
Definitionsbeispiel: |
IIF(<condition>,<truevalue>,[falsevalue]) |
boolval
Wahrheitswert WAHR oder FALSCH.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatBool(WAHR) |
condition
Bedingung.
● |
Funktionsgruppe: |
Boolean, Conditional value |
● |
Definitionsbeispiel: |
Not(Material='Stz')
|
dateval
Datumswert.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatDate(#2000-08-15#) |
decimalplaces
Anzahl der Dezimalstellen nach dem Dezimalkomma oder Dezimalpunkt (je nach Spracheinstellungen).
● |
Funktionsgruppe: |
Numeric, Format |
● |
Definitionsbeispiel: |
Round(-107.25, 1) = -107,3
|
decsep
Art des Dezimaltrennzeichens (, | .).
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatCurrency(999.9, 2, ',', '.') = 9.999,90 € |
delimiter
Art des Verbindungszeichens zwischen zwei Zeichenfolgen.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
Join(' ... ', 1, 999) = '1 ... 999' |
elsevalue
Wenn der Wert nicht der Bedingung entspricht, wird die mit <elsevalue> verbundene Funktion aktiviert.
● |
Funktionsgruppe: |
Conditional value |
● |
Definitionsbeispiel: |
IIF(Len(PAR)=0, 'Wert fehlt', PAR) |
falsevalue
Wenn der Wert nicht der Bedingung entspricht, wird die mit <falsevalue> verbundene Funktion aktiviert.
● |
Funktionsgruppe: |
Conditional value |
● |
Definitionsbeispiel: |
IIF(Len(PAR)=0, 'Wert fehlt', PAR) |
formatstring
Format, mit welchem der Wert dargestellt werden soll.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatTime(#08:02:11#, 'hh:mm:ss') |
groupsep
Art des Tausendertrennzeichens.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatCurrency(999.9, 2, ',', '.') = 9.999,90 € |
length
Länge einer Zeichenfolge.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
Left('abcdefg',5) = 'abcde' |
minnums
Mindestanzahl von Zeichen vor dem Dezimaltrennzeichen.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatNumber(0.2, 3, 2) = 00,200 |
numericvalue
Beliebiger Zahlenwert.
● |
Funktionsgruppe: |
Numeric, Format |
● |
Definitionsbeispiel: |
Abs(-107.25) = 107,25
|
paddingChar
Zeichen, das so oft wiederholt wird, bis der für das Zeichen definierte Raum mit dem Zeichen gefüllt ist.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
PadLeft('Beispiel', 15, '-') = '-------Beispiel' |
path
Pfad zum Objekttyp, der in der Hierarchie direkt vor dem OPath steht.
● |
Funktionsgruppe: |
Aggregate, Boolean |
● |
Definitionsbeispiel: |
Count(Knoten) = 20
|
replaceString
Zu ersetzende Zeichenfolge.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
Replace('Uhu','u','a') = 'Aha' |
retvalue
Wert, der nach erfolgreichem Wertevergleich gesetzt wird.
● |
Funktionsgruppe: |
Conditional value |
● |
Definitionsbeispiel: |
CaseWhen(1, 1,3, 1) = 3 |
searchString
Zu suchende Zeichenfolge.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
Replace('Uhu','u','a') = 'Aha' |
startindex
Start-Stelle einer Unterzeichenfolge innerhalb einer Zeichenfolge.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
Mid('abcdefg', 3, 3) = 'def' |
stringvalue
Beliebige Zeichenfolge.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
Mid('abcdefg', 3, 3) = 'def' |
sym
Symbol einer beliebigen Währung.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatCurrency(999.9,2, ',', '.', ' ¥') = 9.999,90 ¥ |
testvalue
Testwert, mit dem andere Werte verglichen werden.
● |
Funktionsgruppe: |
Conditional value |
● |
Definitionsbeispiel: |
CaseWhen(1, 1,3, 1) = 3 |
timeval
Zeitwert.
● |
Funktionsgruppe: |
Format |
● |
Definitionsbeispiel: |
FormatTime(#08:15:00#) |
totalWidth
Gewünschte Breite einer Zeichenfolge. Die Angabe entspricht der Anzahl an Zeichen.
● |
Funktionsgruppe: |
String |
● |
Definitionsbeispiel: |
PadLeft('Beispiel', 15, '-') = '-------Beispiel' |
truevalue
Wert, der die Bedingung WAHR erfüllt.
● |
Funktionsgruppe: |
Conditional value |
● |
Definitionsbeispiel: |
IIF(Len(PAR)=0, 'Wert fehlt', PAR) |
type
Objekttyp eines OPath-Ausdrucks.
● |
Funktionsgruppe: |
Special path, Boolean |
● |
Definitionsbeispiel: |
Match(AbwBecken)
|
value
Beliebiger Wert. Bei "Conditional value" wird dieser Wert mit einem Testwert <testvalue> verglichen.
● |
Funktionsgruppe: |
Special path, Convert, Conditional value |
● |
Definitionsbeispiel: |
Getvalue(PAR1*PAR2/PAR3) = Wert
|
valuepath
Pfad zum Objekttyp, der in der Hierarchie direkt vor dem OPath steht. Liste mit den OPath-Werten der zugehörigen Objekte.
● |
Funktionsgruppe: |
Aggregate |
● |
Definitionsbeispiel: |
Max(Knoten.Tiefe) = 4,78 m |
Parameter
|
Arbeitsbereich des Ausdruckseditors |
Schematische Skizze:
Funktionen |
Parameter |
|
|
|
|
Werkzeuge |
Bezeichnung |
Sort. |
|
Systemdefiniert |
|
|
Benutzerdefiniert |
1 |
Im Parameter-Editor können Parameter zur Verwendung in OPath-Ausdrücken definiert werden. Die Parameter-Werte werden erst dann abgefragt, wenn der betreffende OPath-Ausdruck ausgeführt wird. Die Parameter-Werte sind dann über ein Eingabeformular festzulegen. Über Parameter können Abfrage-Dokumente, die beispielsweise in Berichte integriert sind, sehr flexibel gestaltet werden.
Wichtige Hinweise
Innerhalb von Abfrageausdrücken muss vor der Parameterbezeichnung das Zeichen '$' stehen!
Die Parameter werden nicht extern gespeichert:
-
Bei OPath-Abfragen werden sie in der Abfrage gespeichert.
-
In BaSYS-Arena (-> benutzerdefinierte Datenspalten) werden die Parameter je Arena-Formular lokal gespeichert.
-
Die Standardparameter Hydraulikvariante, Gemeinde, Gemeindevariante, Projektvariante und Arbeitsbereich bilden eine Ausnahme von dieser Regel, da sie global verfügbar sind.
Werkzeuge
Folgende Werkzeuge können für die Parameterliste verwendet werden:
● |
|
Aufruf des Formulars zur Parameterdefinition. Anlegen eines neuen Parameters. |
● |
|
Überarbeitung des in der Liste gewählten Parameters im Formular Parameter bearbeiten. |
● |
|
Löschen des in der Liste gewählten Parameters. |
Standardparameter
Die Standardparameter Aktuelle Abwasser-Hydraulikvariante, Aktuelle Gemeinde, Aktuelle Gemeindevariante, Aktuelle Projektvariante und Aktueller Arbeitsbereich können nicht aus der Liste gelöscht werden. Beispielsweise wird über den Parameter Aktuelle Projektvariante die Auswahl auf das Projekt gefiltert, das im System Manager auf aktuell gesetzt ist.
Selbst definierte Parameter
Die selbst definierten Parameter werden über die Schaltflächenleiste verwaltet. Bei Klick auf eine der links angeordneten Schaltflächen öffnet sich das Formular Parameter bearbeiten.
Parameter bearbeiten (Formular)
|
Funktion der Parameterliste |
Im Formular sind je nach Parameter die relevanten Felder zu bearbeiten:
Parameter bearbeiten |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Immer Vorgabewert verw. |
|
|
|
|
|
Fehlende Eingabe
|
Dieses Zeichen steht automatisch vor jedem Feld, für das eine Eingabe erforderlich ist. Nach einer sinnvollen Eingabe wird das Zeichen ausgeblendet. |
Tooltipp
Der Tooltipp wird nach folgender Konvention aufgebaut:
-
Zeile: Beschreibung
-
Zeile: Beschriftung
-
Zeile: {=$}Name
Beispiel
Aus Name WandDicke, Beschriftung Wanddicke Pumpensumpf und Beschreibung An dieser Stelle ist die Wanddicke des Pumpensumpfes in Zentimeter einzugeben. wird folgender Tooltipp generiert:
An dieser Stelle ist die Wanddicke des Pumpensumpfes in Zentimeter einzugeben.
Wanddicke Pumpensumpf
=$WandDicke
Name
Der Name des Parameters ist ein Pflichtfeld. Der Name wird als Aliasname im Ausdruck angezeigt. Vor dem Namen erscheint automatisch ein $-Zeichen. Es wird empfohlen, den Namen ohne Leer- und Sonderzeichen einzugeben. Der Name kann nach der Eingabe nicht mehr editiert werden.
Der Name erscheint mit im Tooltipp zum jeweiligen Parameter.
Beschriftung
Die Beschriftung erscheint in der Parameterliste. Hier sind Sonder- und Leerzeichen erlaubt. Obwohl die Beschriftung kein Pflichtfeld ist, sollte sie aus folgenden Gründen eindeutig eingegeben werden:
-
Der gesuchte Parameter wird dadurch eindeutig in der Parameterliste gefunden.
-
Weiterhin wird die Beschriftung im zu generierenden Parameter-Eingabeformular angezeigt. Auch dort wird der Parameter eindeutige gefunden.
Die Beschriftung erscheint mit im Tooltipp zum jeweiligen Parameter.
Beschreibung
Die Beschreibung des Parameters erfolgt optional. Die Einträge des Feldes können für interne Informationen, beispielsweise zum Verwendungszweck des Parameters, genutzt werden. Außerdem erscheint sie mit im Tooltipp zum jeweiligen Parameter.
Typ
Der Typ beschreibt den Grundtyp des Parameters. Vom Typ sind die weiteren Parameter-Eigenschaften abhängig.
Nutzungsziele
Der Typ des zu definierenden Parameters kann mit folgenden Nutzungszielen verbunden sein:
● |
V |
Vorgabewert |
● |
M |
Mehrfachauswahl |
● |
P |
Parameter |
● |
A |
Ausdruck |
Die genannten Nutzungsziele werden in den nächsten Abschnitten der Hilfe weiter erläutert.
Liste der Parametertypen
Folgende Liste zeigt die geläufigen Parametertypen, ihre Nutzungsziele und eine kurze Beschreibung:
● |
Text |
V |
|
|
|
Manuelle Eingabe von beliebigem Text. Optionaler Vorgabewert (V). |
● |
Zahl |
V |
|
|
|
Manuelle Eingabe einer Zahl. Optionaler Vorgabewert (V). |
● |
Datum |
V |
|
|
|
Manuelle Eingabe eines Datums. Optionaler Vorgabewert (V) per Datumsformular. |
● |
Objektauswahl |
|
M |
P |
|
Wahl von mindestens einem Objekt aus einer Auswahlliste oder Liste (M). Die anzuzeigenden Objekte werden über den Parameter (P) (OPath) definiert. |
● |
Wertauswahl |
|
M |
P |
|
Wahl von mindestens einem Wert aus einer Liste (M). Die Werte werden über den Parameter (P) (OPath) definiert. |
● |
Auswahlliste (nach Spalte) (nach Name) |
|
M |
P |
|
Wahl eines oder mehrerer (M) Einträge aus einer Auswahlliste. Die Auswahlliste wird über den Parameter (P) definiert. Bei '(nach Spalte)' visualisiert die Parameterliste die OPaths der Auswahllisten, bei '(nach Name)' die Bezeichnungen der Auswahllisten. |
● |
Abfrage |
|
M |
P |
|
Einbindung einer OPath-Abfrage aus dem Configuration Explorer. |
● |
Datei |
|
M |
|
|
Wahl eines oder mehrerer (M) Einträge aus der Spalte einer CSV-Datei. |
● |
Wert-Ausdruck |
V |
M |
|
A |
Wahl von 1 / > 1 Objekt aus einer Auswahlliste / Liste (M). Optionaler Vorgabewert (V). Die anzuzeigenden Objekte sind über einen OPath-Ausdruck (A) zu definieren. |
Wertauswahl
Zur Wahl des Wertes kann ein beliebiger OPath-Ausdruck definiert werden.
Bei der Ausführung der Abfrage werden automatisch alle Werte zur Auswahl angeboten, die sich in der gesamten angemeldeten Datenbank befinden. Deshalb wird empfohlen, die Wertauswahl auf die Gemeindevariante einzuschränken. Beispielsweise können auf diese Weise alle Baujahre der Objekte abgefragt werden, die sich in der aktuellen Gemeindevariante befinden:
-
IIF(ParentId=$CurrentMunicipalityVariantId, Baujahr)
Auswahlliste nach Spalte
Die Auswahlliste wird quasi über einen OPath zum übergeordneten Objekt gefunden.
Auswahlliste nach Name
Zum Finden der Auswahlliste muss ihr interner Name bekannt sein.
Abfrage
Über die Schaltfläche wird aus dem Configuration Explorer eine OPath-Abfrage gewählt. Diese wird als Kopie im Parameter gespeichert. Über Spalte wird die Spalte des Abfrageergebnisses, die im Parameter benutzt werden soll, eingestellt.
Datei
Über die Schaltfläche wird eine CSV-Datei gewählt. Es wird ausschließlich der Dateiname gespeichert. Dadurch können über verschiedene CSV-Dateien mit identischem Namen verschiedene Parameterwerte vorgegeben werden. Über Spalte wird die Spalte der CSV-Datei, die im Parameter benutzt werden soll, eingestellt. Spaltenindex 0 entspricht dabei der ersten Spalte gleichbedeutend mit Spalte A eines Tabellenkalkulationsprogramms.
Wichtiger Hinweis zur Kompatibilität
Der Typ des Parameters muss unbedingt mit dem Typ übereinstimmen, der an der gewünschten Stelle des Abfragealgorithmus benötigt wird. Der Parameter ist über das Feld Beschreibung so ausführlich zu dokumentieren, dass sein Einsatzbereich für die Verwendung in Abfragen eindeutig nachvollziehbar ist.
Angabe zwingend erforderlich
Bei fehlender Angabe erscheint im Parametereingabeformular eine Fehlermeldung.
Vorgabewert
Zu Definition des Vorgabewertes bestehen die im Folgenden beschriebenen Möglichkeiten.
Kein Vorgabewert definiert
Falls über das Formular <Parameter bearbeiten> kein Vorgabewert definiert ist, muss dieser manuell eingegeben werden, sobald sich das Parameter-Dialog-Formular vor Durchführung der Abfrage öffnet.
Soll das Parameterfeld beim Start der Abfrage leer sein, so ist als Vorgabewert "---" einzutragen. Ansonsten würde der zuletzt eingegebene Parameterwert automatisch vorausgewählt sein.
Immer Vorgabewert verwenden
Die Option wird auf die hier beschriebene Weise verwendet:
-
Falls das Häkchen im Kontrollkästchen gesetzt ist, wird der Vorgabewert automatisch bei der Durchführung der Abfrage verwendet. Der Vorgabewert wird nicht im Parametereingabeformular angezeigt. Er ist dann sozusagen ein versteckter konstanter Wert. Falls kein Vorgabewert definiert ist, sollte diese Option nicht gewählt werden!
-
Falls das Häkchen im Kontrollkästchen nicht gesetzt ist, wird der definierte Vorgabewert vor Durchführung der Abfrage im Parameter-Dialog-Formular angezeigt. Der Wert kann dort beliebig editiert werden.
Zahlenwerte
Bei Zahlenwerten kann als Vorgabewert kein Buchstabe oder Sonderzeichen eingegeben werden.
Formatierungsausdruck
In dieses Feld kann ein von den Konventionen her erlaubtes Wert-Format eingegeben werden. Im Folgenden werden ein paar Beispiele beschrieben. Der Umfang der verfügbaren Formatierungsausdrücke ist erheblich größer.
Datum
Für Datumsausdrücke gelten folgende Konventionen für die häufigsten Platzhalter:
● |
Jahr |
y |
● |
Monat |
M |
● |
Woche |
w |
● |
Tag |
d |
● |
Stunde |
h |
● |
Minute |
m |
● |
Sekunde |
s |
Beispiele für das Datum 01.04.2010:
● |
d.M.yy |
1.4.10 |
● |
d.M.yyyy |
1.4.2010 |
● |
dd.MM.yy |
01.04.10 |
● |
dd.MMMM yyyy |
01. April 2010 |
Anzahl Eingabestellen
Das #-Zeichen wird für die maximal mögliche Zahl von Eingabestellen verwendet. Beispielsweise kann bei einem Zahlenformat ##0.00 maximal die Zahl 999.99 eingegeben werden. Die Eingabe von 1,000.00 ist dann nicht möglich.
Min. Wert / Max. Wert
Über diese Werte kann die Eingabe von Zahlen beschränkt werden.
Dies ist auch bei Datumsangaben möglich. Wenn beispielsweise für ein Datum der minimale Wert auf 01.01.2014 und der maximale Wert auf 14.01.2014 festgelegt ist, stehen später bei der Paramaterabfrage im Datumseditor automatisch nur die Tage der zwei Wochen vom 01. bis zum 14. Januar zur Verfügung.
Mehrfachauswahl
Für die Typen Auswahlliste und Objektauswahl kann ein Häkchen vor Mehrfachauswahl gesetzt werden. Für die Parametermehrfachwahl wird dann je Parameter mit gesetztem Häkchen im Parametereingabeformular eine eigene Seite zur Wahl von mehr als einem Listeneintrag generiert. Die Seiten werden immer hinter die Seite mit den Eingabefeldern gehängt, die auf Einfachwahl gesetzt sind.
Mehrfachauswahlparameter können nur sinnvoll mit dem In ()-Operator genutzt werden.
Parameter
Ein Parameter ist zu wählen, wenn der Typ <Objektauswahl> oder <Auswahlliste> definiert wurde. Der Parameter wird per Auswahlliste zugewiesen.
Ausdruck
Ein Ausdruck ist einzugeben, wenn der Typ <Wert-Ausdruck> definiert wurde. Der Ausdruck kann im Editierbereich bearbeitet und geprüft werden, bevor er im Formular <Parameter bearbeiten> eingefügt wird.
Erweitert
Über dieses Register werden die Metadaten der Parameter definiert.
Sortierungsindex
Über den Sortierungsindex wird die Sortierung des Parameters in der Parameterliste und im Parametereingabeformular festgelegt. Bei Parametern mit gleichem Index entscheidet das Alphabet. Für Mehrfachwahl-Parameter bezieht sich der Sortierungsindex auf die Sortierung der Seiten im Parametereingabeformular.
Gruppe beginnen / Gruppenüberschrift
Bei gesetztem Häkchen vor Gruppe beginnen startet mit dem zugehörigen Sortierungsindex eine neue Parametergruppe. Oberhalb des zugehörigen Parameters erscheint die Gruppenüberschrift. Im Parameterformular wird die Gruppenüberschrift als Gruppe ausgegeben.
Mehrfachwahl-Parameter können keine Gruppenüberschrift erhalten.
Formular nach dem Editieren
Nach der Bearbeitung ist das Formular beispielsweise folgendermaßen mit Werten gefüllt:
Parameter bearbeiten |
Name |
|
Kanalart |
|
Beschriftung |
|
Kanalart |
|
|
Beschreibung |
|
|
|
Abwassertyp aus der Auswahlliste |
|
|
|
|
|
|
|
Typ |
|
|
|
|
|
|
|
|
|
|
Mehrfachauswahl |
|
|
Parameter / Ausdruck |
|
|
|
|
Abwasserart |
|
|
Allgemeine Funktionen
|
Elemente des Ausdruckseditors |
Die hier beschriebenen Funktionen können an vielen Stellen des Ausdruckseditors genutzt werden.
Schaltflächen
Das Formular kann über die folgenden Schaltflächen geschlossen werden:
● |
OK |
Speicherung aller Änderungen. Schließen des Formulars. |
● |
Abbrechen |
Schließen des Formulars ohne Speichern. |
Tooltipps
Beim Überstreichen folgender Formularbereiche mit der Maus wird ein ausführlicher Tooltipp angezeigt:
-
Schaltflächen
-
Einträge der Parameter-Liste
-
Einträge der Funktionen-Liste
-
Einträge des Operatoren-Bereiches
Impressum der Dokumentation |
Stand: |
01.12.2014 |
Verantwortlich: |
Jörg Martin |
Copyright: |
Barthauer Software GmbH |
Erreichbarkeit: |
Homepage: www.barthauer.de |