Inhaltsverzeichnis
Elementsubstitution
Substitution von Datenelementen
- Die Füllung der Attribute O_KEN, O_ABM, L_KEN, L_GST, L_KST und L_DES erfolgt durch direkten Eintrag im Datenbankeditor, durch Voreinstellung in der Konfigurationsdatei bzw. den Dokumentenparametern.
Um Änderungen im gesamten Datenbestand, in Abhängigkeit von den Inhalten anderer Datenelemente, neue Inhalte zuzuweisen, ist die Elementsubstitution ein effizientes und universelles Werkzeug.
Die Definitionsbeschreibung ist fachlich sprechend:
WENN Bedingung DANN Zuweisung
Sollten Sie eine komplexere, exessivere Anforderung haben, können Sie mit dem Schalter „Editieren“ in den Editor wechseln und dort nach folgender Syntax ein Makro schreiben.
Bedingung - Zuweisung
- Der Bedingungsausdruck kann aus mehreren Bedingungen, die mit UND und/oder ODER verknüpft sind, bestehen. Es können auch Ausdrücke/Terme durch Klammerung gebildet werden. Die Klammertiefe ist quasi unbegrenzt.
Ein Bedingungsausdruck besteht aus dem Namen des Datenelementes gefolgt von einem OPERATOR und dem Wert mit dem verglichen werden soll. - Die Zuweisung besteht aus Attribut gefolgt von einem Operator und dem Wert. Der Wert kann auch einer Variable bestehen.
Bedingung | Attribut | Operator | Wert | UND/ODER | Attribut | Operator | Wert | Zuweisung | Attribut | Operator | Wert |
---|---|---|---|---|---|---|---|---|---|---|---|
WENN | … | … | … | … | … | … | … | DANN | … | … | … |
Operator - Wert
Attribut | Operator | Wert |
---|---|---|
O_KEN, O_ABM, L_KEN, OSK, … | = gleich | |
< kleiner | Wert numerisch | |
> größer | 'Wert' kompletter Text | |
<> ungleich | „Wert“ Text mit Wildcards / Platzhalter | |
⇐ kleiner gleich | (*, ?, […]) als Platzhalter | |
>= größer gleich Wert numerisch | (*, ?, […]) als Platzhalter |
Bei dem Wert der Bedingung gelten einige Besonderheiten in der Schreibweise, die sich auf die Interpretation des Wertes beziehen. Es ist unterschiedlich, ob ein numerischer oder textueller Vergleich stattfinden soll: (*, ?, […]) als Platzhalter
Bedingung | numerischer Vergleich | textueller Vergleich |
---|---|---|
'076' | Wahr | Falsch |
Die Syntax für die verschiedenen Formen von Wert:
WERT = Der Wert wird als numerische Zahl interpretiert
'WERT' = mit als Begrenzungszeichen wird der komplette Text (von Anfang bis Ende) auf Gleichheit getestet.
„WERT“ der in „-Zeichen eingeschlossene Wert kann folgende Sonderzeichen zum Suchen (Wildcards) beinhalten
Wildcards | Bedeutung | |
---|---|---|
* | Irgendein Zeichen beliebig oft | |
? | Irgendein Zeichen einmal | |
[…] | Ein im Set [] angegebenes Zeichen. Es ist auch eine Bereichsangabe möglich: [A-M] oder [a-Z0-9] | |
[ | …] oder [!…] | Ausschluß der im Set angegebenen Zeichen. Ansonsten gelten die Regeln wie zuvor. |
\ | Sogenanntes Fluchtsymbol, das die Bedeutung von []-*! | -\ aufhebt, damit diese auch gesucht werden können. Um z.B. in einem Datenelement ein ] zu suchen, muß folgender Set gebildet werden: [\]]. |
- Z.B:
TX0 = „GeoS - ENNIGERLOH“
Bedingung:
WENN TX0 = „*G[OE]“
Diese Bedingung trifft für das Datenelement gleich mehrfach zu, und zwar an den jeweils fett-kursiv markierten Stellen:
„GeoS - ENNIGERLOH“
mit dem Modul Substitution von Datenelementen steht Ihnen ein mächtiges effizientes Werkzeug zur Erzeugung der Datenelemente zur Verfügung.
Ausnahmen
Übertragung (Laden) aus externer Datenbank
Das Laden eines Punktes von der externen Datenbank in die interne, also in den Verfahrensspeicher, ist ebenfalls mit diesem Modul möglich. Über den Bedingungsausdruck erfolgt eine Selektion. Um Punkte aus der externen zu übertragen ersetzen Sie bitte gegenüber der Substitution den Befehl DANN mit LADE EXTERN.
WENN Bedingungsausdruck LADE EXTERN
Bedingungen "Modifiziert"
Das Unterprogramm läßt es zu, Veränderte Attribute zu selektieren. Wird eine Bedingungen „Modifiziert“ gesetzt, können damit weitere Attribute vergeben werden.
Wechseln Sie in den Editiermodus um „MODIFI“ manuel einzugeben ohne “=„ .
Elemente auf "undefiniert" setzen
Das Unterprogramm läßt es zu, Datenelemente auf „UNDEFINIERT“ zu setzen. Somit unterscheidet KAVDI zwischen leeren aber gültigen Elementen und Elemente dessen Inhalt undefiniert ist.
WENN Bedingungsausdruck DANN Element UNDEFINIERT
Beispiel: | WENN BER = 99999 DANN O_ZST_DST undef |
---|
Wechseln Sie in den Editiermodus um „undef“ manuel einzugeben ohne “=„ .
Automatische Qualifizierung
Wenn Sie Substitionen standardmäßig in jedem KAVDI - Auftrag einbinden wollen,
können Sie das Berechnungsdokument (z.B.Substitution.kbd) in das Verzeichnis
…\Programme\GOS_KAVDI\config\projekt_std_dat speichern.
Jetzt wird bei jedem neuen Projekt unter „Dokumente des Projektes“ dieses Berechnungsdokument zur Verfügung stehen.
Beispieldatei zur ALKIS-Qualifizierung ALKIS-Qualifizierung
Substitutionen mit Variablen
Wollen Sie Substitutionen mit Variablen erzeugen, weil Sie in den Projekteigenschaften eingetragen Projektdaten, wie z.B. Vermessungsstelle, Katasteramt,Datum der Messung etc., verwenden wollen?
Dann erzeugen Sie eine Substitution mit einer Variable.
Beispiel: Für alle Punktorte ohne Definition Erhebungsstelle soll die Vermessungsstelle eingetragen werden. WENN L_DPL_ERS UNDEF DANN L_DPL_ERS = „$(K_VD_VST)“
Der Eintrag unter Eigenschaften wird jetzt bei allen zutreffenden Punkte unter dem Attribut L_DPL_ERS eingetragen.
Sobald das Projekt durchgerechnet wird erscheint das Ergebnis im Datenbankeditor.
Problem: Ist der Eintrag länger als 20 Zeichen ist das Ergebis auch nur 20 Zeichen (siehe vorheriges Bild) und somit auch bei der NAS-Ausgabe nur gekürzt berücksichtigt.
Lösung (ab Version 12.5): Über die Eigenschaften der Substitution (z.Zt. über rechten Mausklick auf die Zeile Substitution) kann die Einstellung „Auflösung der Variable“ geändert werden. D.h. die Variable wird nicht aufgelöst.
Mit einem Doppelklick auf die Zeile „Variablen in der Substitution auflösen?“ stellt man den Wert auf „0“.
Anschließend neu durchrechnen. Jetzt wird die Variable als Text in den Datenbankeditor eingetragen. Natürlich kann die Variable auch direkt in den Datenbankeditor eingetragen werden.
Bei der NAS-Ausgabe (AX_Fortführungsauftrag) wird die Variable aufgelöst und der unter Eigenschaften eingetragene Text wird bei allen Punkten in voller Länge mit ausgegeben.