> For the complete documentation index, see [llms.txt](https://docs.geodin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.geodin.com/geodin-desktop/de/datenanalyse/formula-basics.md).

# Grundlagen der Berechnungsformel

Formeln ermöglichen GeoDin, den Wert eines Datenfelds aus Werten zu berechnen, die bereits im Datensatz vorhanden sind. Diese Seite ist die Referenz für das Formelsystem: wie eine Berechnungsformel definiert wird (ihr Name, Ziel, Bedingung und Optionen), wie eine Berechnungsformel zu einer vorhandenen Datentypzuordnung hinzugefügt wird, und die vollständige Formelsyntax – mathematische Operatoren, Bedingungen, Sonderfallkonstruktionen, Objekt- und EGIS-Formeln sowie der alternative SQL-Befehl.

## Formeln allgemein

Formeln sind für die Berechnungen von Datenfeldern auf Basis bereits vorhandener Werte im Datensatz gedacht. Die an einer Datentypzuordnung definierten Formeln werden automatisch berechnet, solange sie als „Aktiv“ markiert sind. Die Berechnung erfolgt, wenn Sie Details im Datensatz hinzufügen, ändern oder löschen oder wenn Sie Datensätze hinzufügen oder aktualisieren, z. B. durch die Methode „Importieren“ der GeoDin-Datenbank.

Normalerweise werden Formeln über die Systemkonfiguration der Datentypzuordnung definiert und automatisch berechnet. Zusätzlich ist die Funktion [Berechnung](/geodin-desktop/de/datenanalyse/data-checks-and-validations.md) steht während der Erfassung der Messungen zur Verfügung, um eine Berechnungsformel manuell einzugeben oder auszuführen.

Die Ausführung der aktiven Formeln erfolgt in der Reihenfolge ihrer Definitionen der Datentypzuordnung. Das sollten Sie berücksichtigen, wenn Sie voneinander abhängige Formeln verwenden.

Jede Berechnungsformel wird durch einen eindeutigen Namen und Eigenschaften definiert, die den Berechnungsmodus festlegen.

**Name**

Der Name bezeichnet die Berechnungsformel; er sollte für eine spätere Auswahl aussagekräftig sein.

**Ziel**

In jedem Fall ist das Zielfeld ein Feld der aktuellen Datentypzuordnung. Nur Parameter, die in der Datentypzuordnung definiert sind, können als Ziel in der Berechnungsformel verwendet werden.

**Auslöseparameter**

Wenn ein Auslöseparameter gesetzt ist, wird die Berechnungsformel nur ausgeführt, wenn die Änderung im Datensatz an diesem Parameter vorgenommen wird. Die Definition eines Auslöseparameters ermöglicht somit die gegenseitige Berechnung unterschiedlicher Datenfelder.

**Beispiel:**

Berechnungsszenario:

(1) Feld 3 wird aus Feld 1 und Feld 2 berechnet, d. h. das Zielfeld der Berechnungsformel ist Feld 3.

(2) Wenn der Inhalt von Feld 3 geändert wird, soll der Wert von Feld 2 angepasst werden.

Das Ziel von (2) kann nicht realisiert werden, da die Berechnungsformel in (1) Feld 3 sofort überschreiben würde. Wenn Feld 3 in einer anderen Berechnungsformel als Auslöseparameter und Feld 2 als Zielparameter definiert ist, wird (2) realisiert.

Die Auswertung von einer Berechnungsformel mit Auslöseparametern erfolgt während der Dateneingabe (Eingabegitter oder Eingabebildschirm), das heißt, nur dort gemachte Eingaben lösen die Berechnungsformel aus. Eine Berechnungsformel mit einem Auslöseparameter ist daher nur im Editor wirksam.

**Bedingung**

Die Bedingung ist ein logischer Ausdruck, der entweder Wahr oder Falsch zurückgibt. Eine Berechnungsformel mit einer Bedingung wird nur ausgeführt, wenn die Berechnung der Bedingung ein Wahr zurückgibt.

Eine Bedingung wird mit derselben Syntax erstellt wie eine Berechnungsformel. Sie kann sowohl mit Parametern desselben Datentyps als auch mit Stammdatenfeldern aufgebaut werden.

**Berechnungsformel**

Im Normalfall ist die Berechnungsformel ein Begriff, der zu einem Ergebnis der Berechnung führt. Sie kann auf Parameter des aktuell verwendeten Datentyps sowie auf Inhalt(e) von Stammdatenfeldern zugreifen und Verknüpfungen von anderen Datentypen verwenden. Es gibt ein Auswahl / Selektion-Menü, das alle Optionen zum Erstellen einer Berechnungsformel bietet.

**Optionen**

1. Formel aktiv

Die Berechnung wird beim Ändern des Datensatzes ausgeführt. Ohne diese Option wird die Berechnungsformel nicht ausgeführt.

1. Ein Ziel überschreiben

Auch wenn im Zielfeld bereits ein Eintrag vorhanden ist, wird dieser mit dem Ergebnis der Berechnung überschrieben. Wenn diese Option inaktiv ist, werden nur leere Felder gefüllt.

1. Ergebnis 0, wenn Alle Werte unter der Nachweisgrenze liegen

In bestimmten Fällen liegt ein Messwert unter der Nachweisgrenze eines bestimmten Messgeräts. Das bedeutet, dass der Wert zwar nicht genau ist, aber dennoch vorhanden ist und als verwendete Größe in einer Summierung mehrerer Parameter dienen könnte. Normalerweise wird für solche Berechnungen ein Wert zwischen 0 und der Nachweisgrenze verwendet, aber in manchen Situationen kann der durch die Summe berechnete Wert größer sein als die Nachweisgrenze einzelner Parameterwerte, was Falsch wäre. Diese Option ermöglicht es Ihnen, die Summe auf die minimale oder die Maximale Bestimmungsgrenze zu setzen oder auf 0, wenn Alle Werte der Parameter unter der Nachweisgrenze liegen und keine Spezialeinstellungen mit "@B" existieren.

1. Makro

Für die komplexe Handhabung von Textformeln mit ODER-Konstrukten oder %COND.

1. Textaustausch (keine Berechnung)

Der Text, der durch die Verarbeitung der Berechnungsformel entsteht, wird in das Zielfeld eingetragen, das bedeutet, dass die verwendeten Variablen durch die Werte des aktuell Datensatzes ersetzt werden, ohne eine weitere Berechnung durchzuführen. Dies ermöglicht die Erstellung von formatierter Text aus den Datensätzen oder den Stammdaten. Die Bedingung für die erfolgreiche Verwendung einer solchen Berechnungsformel ist eine Alphanumerisch formatierte Formatierung des Zielfeldes (Art: C).

**Operation**

Eine Operation kann im Falle der Verwendung der Berechnungsformel angeordnet werden. Diese Operation dient dem Kopieren des aktuellen Datensatzes in eine andere Datentypzuordnung. Die Operation kann selektiert werden, danach wird die Zieldatentyp angepasst. Die Datentypzuordnung muss von derselben Prüfart sein. In Kombination mit der bedingten Ausführung von Formeln können einige Verfahren passend zu einer Aufzeichnung eingerichtet werden.

**Ausführen**

* Wenn alle Parameter definiert sind

Wenn diese Option aktiv ist und die Berechnungsformel, z. B. Summe-Parameter, mehrere Feldnamen enthält, wird das Berechnungsergebnis nur geschrieben, wenn Einträge für alle verwendeten Felder vorhanden sind. Andernfalls werden die teilweise vorhandenen oder teilweise gefüllten Felder für die Berechnung verwendet.

* wenn die letzte gültige Berechnungsformel in einem Block derselben Zeile

Mehrere Formeln können für ein und denselben Zielparameter definiert werden. Diese Option bewirkt, dass die zuletzt genannte gültige Formel ausgeführt wird. Die letzten aufgelisteten Formeln werden nicht ausgeführt und können sich nicht gegenseitig beeinflussen.

* Wenn sich die Aussage der Bedingungsprüfung geändert hat

Eine Bedingung kann für die Ausführung der Berechnungsformel festgelegt werden. Mit dieser Option können Sie die Berechnungsformel bestimmen, die ausgeführt werden soll, wenn die Auswertung von der Bedingung ihren Wert ändert.

**Beispiel:**

Wenn die Bedingung $NA$>2 ist und der Wert in NA gleich 1 ist, kann der Wert beliebig oft geändert werden. Die Berechnungsformel wird nicht ausgeführt, solange der Wert unter 2 liegt.

### Definition von Formeln

Eine Berechnungsformel wird als Zeichenkette definiert (ähnlich einer Definition einer Beschriftungsanweisung) und enthält mathematische Operatoren zur Berechnung eines Ergebnisses.

Zum Beispiel: $DAT.PAR1$ \* 100

Die Zeichen innerhalb der $-Zeichen beziehen sich auf ein GeoDin-Datenfeld. Die folgenden Operatoren können verwendet werden:

***

\+ Addition - Subtraktion \* Multiplikation / Abstand SQR (x) Quadrat von x SQRT (x) Quadratwurzel von x LN (x) Natürlicher Logarithmus von x EXP (x) Potenz von x (e hoch x) SIN (x) Sinus von x COS (x) Kosinus von x TAN (x) Tangens von X ARCTAN (x) Arkustangens von X COTAN (x) Kotangens von X ABS (x) Absolutem Wert von X

\+ Addition - Subtraktion \* Multiplikation / Abstand SQR (x) Quadrat von x SQRT (x) Quadratwurzel von x LN (x) Natürlicher Logarithmus von x EXP (x) Potenz von x (e hoch x) SIN (x) Sinus von x COS (x) Kosinus von x TAN (x) Tangens von X ARCTAN (x) Arkustangens von X COTAN (x) Kotangens von X ABS (x) Absolutem Wert von X

***

(x) steht für die Tabellenspalte von GeoDin (z. B. $DAT:PAR1$)

Leerzeichen können in den Formeln enthalten sein. Als fixiert geltende Zahlenwerte (100 im obigen Beispiel) können direkt in die Berechnungsformel eingegeben werden.

## Hinzufügen einer Berechnungsformel zu einer vorhandenen Datentypzuordnung

Berechnungsformeln können jederzeit zu einer Datentypzuordnung hinzugefügt werden – sogar nachdem Messwerterfassung und -pflege bereits in der Datenbank vorhanden ist. Die folgenden Schritte decken den durchgängigen Prozess ab:

{% stepper %}
{% step %}

#### Schritt 1: Fügen Sie einen neuen Parameter zum Datentypzuordnung hinzu (Systemkonfiguration)

Öffnen Sie in der GeoDin-Systemkonfiguration (System > Datentypen) die relevante Datentypgruppe und fügen Sie den neuen Parameter hinzu, der als Ziel der Berechnungsformel dienen wird. Speichern Sie die Systemkonfiguration.
{% endstep %}

{% step %}

#### Schritt 2: Fügen Sie den Parameter zur Datenbank hinzu

Öffnen Sie die **Datentyp-Manager** auf Datenbankebene. Wählen Sie den Datentypzuordnung aus, klicken Sie **Bearbeiten**, und fügen Sie den neuen Parameter hinzu. Klicken Sie **Erstellen** um die aktualisierte Tabellenstruktur in die Datenbank zu schreiben.

{% hint style="info" %}
Sowohl die Systemkonfiguration als auch die Datenbank müssen aktualisiert werden. Das Hinzufügen des Parameters nur zum System macht ihn nicht in den Datenbanktabellen verfügbar.
{% endhint %}
{% endstep %}

{% step %}

#### Schritt 3: Definieren Sie die Berechnungsformel

Öffnen Sie weiterhin in der Systemkonfiguration den Datentypzuordnung und fügen Sie eine Berechnungsformel hinzu:

* Setzen Sie die **Ziel** auf den neuen Parameter.
* Erstellen Sie den Berechnungsformel-Ausdruck, indem Sie Makronamen (Feldreferenzen wie `$DAT.PAR1$`) aus der Auswahlliste in das Berechnungsformel-Feld ziehen.
* Markieren Sie die Berechnungsformel als **Aktiv**.
* Speichern.
  {% endstep %}

{% step %}

#### Schritt 4: Wenden Sie die Berechnungsformel auf vorhandene Datensätze an

Aktive Formeln werden automatisch für neue und aktualisierte Datensätze ausgeführt, aber **werden nicht rückwirkend auf vorhandene Daten angewendet**. So wenden Sie die Berechnungsformel auf alle vorhandenen Datensätze an:

1. Öffnen Sie den Messwerteditor für ein beliebiges Objekt mit vorhandenen Datensätzen dieses Datentypzuordnung.
2. Klicken Sie auf den **Berechnen** Schalter (Deutsch: *Berechnen*, das Taschenrechner-Symbol in der rechten Werkzeugleiste).
3. Wählen Sie im Berechnungsdialog die Formel aktiv aus der Liste aus.
4. Bestätigen Sie. GeoDin verarbeitet alle Datensätze im aktuellen Datensatz und schreibt die berechneten Werte.

{% hint style="warning" %}
Als aktiv definierte Formeln werden automatisch für neue und aktualisierte Datensätze berechnet, aber **nicht** werden rückwirkend auf vorhandene Datensätze angewendet. Verwenden Sie immer den **Berechnen** Schalter nach dem Hinzufügen einer neuen Berechnungsformel, um historische Daten zu füllen.
{% endhint %}
{% endstep %}

{% step %}

#### Schritt 5: Einmalig verwendbare Inline-Formeln im Messwerteditor

Der Messwerteditor akzeptiert auch eine einmalige Berechnungsformel, die direkt in die Formel-Leiste eingegeben wird – ohne sie in der Systemkonfiguration zu speichern. Dies ist für Ad-hoc-Berechnungen während einer Sitzung nützlich.

Hinweis: Eine Inline-Berechnungsformel **kann kein Feld als Ziel haben, das bereits als Ziel einer aktiven System-Berechnungsformel zugewiesen ist**. Wenn ein Konflikt besteht, hat die aktive System-Berechnungsformel Vorrang, und die Inline-Berechnungsformel wird für dieses Feld nicht ausgeführt.
{% endstep %}
{% endstepper %}

***

## Referenz: Bedingungen und spezielle Syntax

**Verwendung von Bedingungen**

Zusätzlich zu den mathematischen Operatoren können spezielle Syntaxkonstruktionen verwendet werden, um eine große Zahl von Sonderfällen zu berücksichtigen. Für eine Berechnungsformel kann eine Bedingung definiert werden, unter der die Berechnungsformel ausgeführt wird. Eine Bedingung ist ein Ausdruck mit zwei möglichen Ergebnissen: WAHR oder FALSCH. Mehrere Ausdrücke können mithilfe der logischen Operatoren UND und ODER kombiniert werden. Die Definition der Datentypzuordnung-Abkürzung ist immer erforderlich (z. B.: $WAS:NA$).

Zusätzlich zu den mathematischen Operatoren können spezielle Syntaxkonstruktionen verwendet werden, um eine große Zahl von Sonderfällen zu berücksichtigen. Für eine Berechnungsformel kann eine Bedingung definiert werden, unter der die Berechnungsformel ausgeführt wird. Eine Bedingung ist ein Ausdruck mit zwei möglichen Ergebnissen: WAHR oder FALSCH. Mehrere Ausdrücke können mithilfe der logischen Operatoren UND und ODER kombiniert werden. Die Definition der Datentypzuordnung-Abkürzung ist immer erforderlich (z. B.: $WAS:NA$).

***Hinweis:***

*Die Berechnungsformel kann nach dem Klicken auf den Schalter direkt im Messwerteditor eingegeben werden* *oder auf der Systemregisterkarte unter Datentypen-> Datentypeinstellungen->Formeln* ([Formeln allgemein](/geodin-desktop/de/datenanalyse/formula-basics.md)).

**Beispiel für eine einfache BedingungBeispiel:**

*Ziel:* WAS:NA\_CALC

*Bedingung:* $WAS:MG$>3

*Berechnungsformel:* $WAS:NA$/2

Der Zielparameter NA\_CALC wird Berechnet, Wenn der Parameter MG einen Wert von 3 oder höher hat.

**Beispiel für mehrere BedingungBeispiel:**

*Ziel:* WAS:NA\_CALC

*Bedingung:* $WAS:MG$>3 UND $WAS:CA$<10

*Berechnungsformel:* $WAS:NA$/2

Der Zielparameter wird Berechnet, Wenn Beide Bedingungen erfüllt sind: Der Parameter MG hat einen Wert größer als drei und der Parameter CA hat einen Wert von weniger als 10.

**Bedingungen zum Ändern von Werte**

Durch die Verwendung der Formatierung @O kann der ursprüngliche Wert eines Datensatzes VOR dem letzten Ändern im Messwerteditor rekonstruiert werden. Daher ist das Prüfen auf Differenzen möglich.

**Beispiel:**

*Bedingung:* $WAS:PAR1$ - $WAS:PAR1\@O$ >10

Die Bedingung ist Wahr, wenn der Wert von PAR1 in der Zelle mehr als zehnmal so groß wie der zuvor eingegebene Wert ist.

**Weitere Beispiele für Bedingung**

In einer Bedingung kann der NULL-Operator verwendet werden. Er definiert, ob ein Parameter einen Wert hat.

**Beispiel:**

*Ziel:* WAS:NA\_CALC

*Bedingung:* $WAS:MG$>3 UND $WAS:CA$=NULL

*Berechnungsformel:* $WAS:NA$/2

Der Zielparameter NA\_CALC wird Berechnet, indem die Hälfte von dem Wert von dem Parameter NA genommen wird, Wenn der Wert von dem Parameter MG 3 übersteigt UND der Parameter CA Leer ist.

Wenn Zeichenketten in einer Bedingung verwendete werden, muss der Text in Anführungszeichen (oder hoch) eingeschlossen werden. Fehlende Anführungszeichen und falsche Schreibweise werden als ungleich interpretiert. Die Schreibweise der Bedingung ist groß- und kleinschreibungssensitiv.

**Beispiel:**

*Ziel:* WAS:NA\_CALC

*Bedingung:* $BEARBEIT$='Müller'

*Berechnungsformel:* $WAS:NA$/2

Der Zielparameter NA\_CALC wird Berechnet als die Hälfte von dem Parameter NA, Wenn der Autor von dem Datensatz den Namen Müller hat.

### Verwendung spezieller Regeln

Zusätzlich zu den mathematischen Operatoren können spezielle Syntaxkonstruktionen für die Verwendung von Werten Von den GeoDin Tabellen verwendet werden, um zahlreiche Sonderfälle zu berücksichtigen.

**Sonderfälle in der Berechnungsformel-SyntaxNachweisgrenzen**

**Beispiel:** $WAS:BENZEN\@B(0,5)$+$WAS:TOLUEN\@B(0,5)$+$WAS:XYLEN\@B(0,5)$

Im obigen Fall, wo Werte für einzelne Parameter von -5 oder -1 gefunden werden, verwendet die Summe-Berechnung die Hälfte von diesen Werten.

**Standardwerte**

Für bestimmte Berechnungen kann es notwendig sein, mit vordefinierten allgemeinen Einstellungen oder Standardwerten zu arbeiten. Wenn ein Parameter entweder nicht vorhanden ist oder in einem Datensatz nicht analysiert wurde, kann ein Normwert angenommen und zu Berechnungen verwendet werden. Dies wird realisiert, indem das Konstrukt @D(x) innerhalb der $-Zeichen verwendet wird, wobei x der vordefinierte Standardwert ist, der als verwendete Vorgabe dient, wenn im Feld kein Wert vorhanden ist.

**Beispiel:** Wert=$ORGANIC\@D(10)$/$Ton\@D(25)

Der Berechnet Wert enthält die Quotienten Von den organischen Substanzen und Ton in einem Bodenbeispiel. Wenn Nein Werte in diesen Feldern vorhanden sind, werden die Standard Werte verwendete.

**Mittelwerte**

Ein Mittelwerte wird berechnet, indem die Symbole "@M" innerhalb der Dollar-Symbole von einer Berechnungsformel verwendete werden. Die einzelnen Werte werden durch ";" getrennt, und nur ausgefüllte Felder können verwendete werden.

**Beispiel:** UWDRYMIN=$UWDRYMIN1;UWDRYMIN2;UWDRYMIN3\@M$

Das Ergebnis ist ein Mittelwert von UWDRYMIN1 zu UWDRYMIN3.

**Verwenden einer Zahl aus einem Wörterbuch**

Wenn ein Wörterbuch verwendet wird, das beim Eingeben eines Schlüssels eine Zahl erzeugt, kann dies für eine Berechnung verwendet werden. Durch Verwendung des Zeichens "@R" wird eine Neucodierung durchgeführt.

**Beispiel**: CU=($CONE\@R$)/SQRT($PEN1;PEN2;PEN3;PEN4;PEN5\@M$)

Zunächst wird die Eingabe für CONE durch den Wert aus dem Wörterbuch ersetzt. Für die Werte P1 bis P5 wird ein Mittelwert gebildet, aus dem die Quadratwurzel berechnet wird. Der Wert für CONE wird dann durch diesen Wert geteilt.

**Verwendung von Werten aus einer anderen Datentypzuordnung**

Werte aus einer Datentypzuordnung können bei der Berechnung von Werten in anderen Datentypen verwendet werden. Dazu folgt dem Schlüssel einer Datentypzuordnung ein Doppelpunkt. Die Beziehung zu einem Datensatz in einer anderen Datentypzuordnung wird durch die Uhrzeit definiert. Um einen Vergleich auszuführen, wird das Datum auf verschiedene Arten verwendet:

***

\[=SMPDATE] oder keine Definition Das Datum muss gleich sein \[<=SMPDATE] Das Datum kann gleich oder kleiner sein als \[\<SMPDATE] Das Datum muss kleiner sein als \[>=SMPDATE] Das Datum kann gleich oder größer sein als \[\<SMPDATE] Das Datum muss größer sein als

***

**Beispiel**: WASSPNN=$ROK:ROKNN\[<=SMPDATE]$-$WASSPROK$

Der Wasserstand, ausgedrückt in Metern über dem Meeresspiegel, wird unter Verwendung eines Wertes aus der Datentypzuordnung ROK (Oben des Piezometers) berechnet. Der verwendete Wert kann vom selben Tag oder vom nächstzurückliegenden Wert stammen. Von diesem Wert wird der aktuelle Pegel abgezogen.

**Verwendung von Werten aus Allgemeinen Sondierungen der Messpunkte**

Es ist möglich, Datenfelder der Allgemeinen Sondierungen in die Berechnungsformel für Messpunkte einzubeziehen. Die Beziehung ist wie folgt definiert: $Tablel.Datafield$.

**Beispiel:** $ASBFILTR.INVMBEG$-$WST:WASSPROK$

Der Wasserstand im Ziel WASSPNN, Berechnet unter Verwendung der Messpunkte-Höhe ($ASBFILTR.INVMBEG$) und des gemessenen Wasserstands Von Oben des Rohrs $WST:WASSPROK$ in der Datentypzuordnung.

**Ionenbilanz**

Mit dem Symbol %IONB kann die Ionenbilanz Berechnet und als Ergebnis verwendete werden.

**Beispiel**: IONICBALA=$%IONB$

***Achtung:*** *Für eine korrekte Berechnung müssen die Felder mit den Namen, die von der Berechnung erwartet werden, existieren und im Einsatz sein (siehe* [*Ionenbilanz*](/geodin-desktop/de/datenanalyse/geotechnical-analyses.md)*).*

**Automatische Nummerierung**

Um einem Parameter automatisch fortlaufende Nummern zuzuweisen, kann der Ausdruck $%FIRSTID:PARAMETER$ als verwendete Möglichkeit dienen. Die Nummerierung für den entsprechenden Parameter startet Immer bei 1.

**Beispiel:** $%FIRSTID:TESTNO$

Die Testen Zahl wird für jeden Datensatz im Feld TESTNO automatisch als fortlaufende Zahl zugewiesen. Als Erster Datensatz wird die Zahl 1 vergeben.

**Weitere Symbole**

$%PI$ liefert die Zahl Pi

$%BENUTZERNAME$ kann eine (Text-)Berechnungsformel benutzen, um den Namen des aktuellen Datenbankbenutzers zu erstellen

$%Jetzt$ Ergebnisse liefern das aktuell gültige Datum und die Uhrzeit

**Objektverweis**

$%OBJECTID$ Zugriff zu der LOCID für Allgemeine Sondierungen Tabellen Wenn Verfügbar

$%PRJID$ Zugriff zu der PRJ\_Kennung für Allgemeine Sondierungen Tabellen Wenn Verfügbar

**Textaustausch - Formeln zu Erstellen formatierter Text**

Durch Aktivieren des Kontrollkästchens *\[Textaustausch (ohne Berechnung)]* Eine Berechnung wird beim Ausführen der Berechnungsformel verhindert. Diese Option ist nur sinnvoll, wenn ein Zeichenkettenparameter als Ergebnis erforderlich ist. Das Ergebnis ist, dass die Parameter durch eine Zeichenkette mit tatsächlichen Werten ersetzt werden, wobei keine Berechnung durchgeführt wird.

**Beispiel:** $LOCREG.SHORTNAME$ / $SMPDATE$

Im selektierten Zielfeld wird eine Kombination aus der Kurzbezeichnung des Objekts, einem Schrägstrich und dem Datum erstellt, zum Beispiel "Brg 12 / 12.10.2004".

**Textaustausch mit Makro**

Zusätzlich zum Textaustausch können Formatangaben aufgelöst werden.

Beispiel: $LOCREG.SHORTNAME$ von $<SMPDATE@dd.mmmm.yyyy>$

***Achtung:*** *Es können nur Parameter derselben Tabelle (Datentypzuordnung) oder Parameter der Objektart ausgewertet werden. Der Parameter der aktuellen Tabelle muss hier ohne die Tabellenabkürzung angegeben werden. Siehe Beispiel.*

## Referenz: Verwaltung der Berechnungsformelliste

**Neu**

Mit diesem Symbol können Einträge zu der Liste hinzugefügt werden.

**Duplizieren**

Benutzen Sie dieses Symbol, um eine Kopie von der selektiert Eingabe zu Erstellen. Die neue Eingabe wird am Ende der Liste hinzugefügt und automatisch selektiert.

**Löschen**

Benutzen Sie dieses Symbol, markierte Eingaben können Von der Liste entfernt werden.

**selektiert Eingabe nach oben Verschieben**

Benutzen Sie dieses Symbol, Eingaben können in der Liste nach oben verschoben werden. Das Verschieben von Eingaben ist auch per Drag & Drop möglich.

**selektiert Eingabe nach unten Verschieben**

Benutzen Sie dieses Symbol, Eingaben können in der Liste nach unten verschoben werden. Das Verschieben von Eingaben ist auch per Drag & Drop möglich.

**Ohne Aktualisierung bearbeiten**

Das Bearbeiten von Eingaben einer Liste kann gelegentlich lange Verarbeitungszeiten verursachen. So kann beispielsweise das Verschieben einer Serie oder Spalte in der Liste relativ lange dauern, je nach den grundlegenden Daten, weil manchmal viele Seiten betroffen sind.

Benutzen Sie dieses Symbol, die Liste kann ohne Aktualisierung bearbeitet werden. Das Bearbeiten der Liste kann mit dem Kreuz oder mit dem Häkchen abgebrochen werden.

**Gleitkommazahl-Klicken Sie eine Eingabe von der Liste**

Schließt die Liste und wechselt in der Baumansicht der Objekteigenschaften zum betreffenden Eintrag, sodass dessen Eigenschaften bearbeitet werden können.

## Referenz: Objektart- und EGIS-Formeln

Dieses Kapitel beschreibt einige Formeln, die in GOTE für eine allgemeine Datentabelle der Objektart verwendet/erstellt werden können.

**Koordinatentransformation**

Diese Berechnungsformel ermöglicht es, eine Koordinatenspezifikation zu transformieren und in ein Zielfeld zu schreiben.

Parameter der Berechnungsformel:

Verfahren = TRANSFORMCOORD (fixierte Kennung des EGIS-Verfahrens)

Ergebnis = Teil der Koordinaten

X = X-Wert der Eingabekoordinate

Y = Y-Wert der Eingabekoordinate

EPSG = EPSGCode der Eingabekoordinate

DESTEPSG = 3068

**Beispiel:**

Diese Berechnungsformel transformiert den X-Wert von dem GeoDin-Objekt in das Koordinatensystem 3068 (Soldner Berlin) und schreibt den transformierten X-Wert in das Zielfeld der Berechnungsformel.

*$EGIS(Verfahren=TRANSFORMCOORD Ergebnis=X X=XCOORD Y=YCOORD EPSG=KSYS DESTEPSG=3068)$*

### Formeln der Objektart

Objektarten können Formeln für Stammdatenfelder enthalten. Diese Formeln werden dann während der Bearbeitung mit der Dateneingabe- und Wartungsverfahren ausgeführt.

Die folgenden Formeln bündeln eine Zahl von Funktionen, mit denen Geodaten räumlich verarbeitet werden können.

Die Syntax/Grammatik von diesen Formeln lässt sich kurz wie folgt zusammenfassen.

1. Die Berechnungsformel beginnt mit $%EGIS
2. In einfachen Klammern können die verschiedenen Parameter von der Berechnungsformel konfiguriert werden. Die Parameter sind als Schlüssel-Wert-Paare mit Leerzeichen zulässig.
3. die Berechnungsformel endet mit $
4. Ein Fixiert-Parameter ist der "Verfahren"-Parameter. Der Wert von diesem Parameter entscheidet, welches Verfahren von Berechnungsformel-Ausführung zu verwendete wird.

**Strukturbeispiel von einer Berechnungsformel:**

*$%EGIS(VERFAHREN=XYZ Param1=Value1 Param2=Value2 ... )$*

**Konvertierung von KoordinatenBeispiel:**

$%EGIS(Verfahren=TRANSFORMCOORD Ergebnis=X X=XCOORD Y=YCOORD EPSG=EPSG DESTEPSG=3068)$

**Verfahren**

TRANSFORMCOORD

**Ergebnis**

Welches Ergebnis der Berechnung ist zu dem Ziel von der Berechnungsformel zu übertragen (im gezeigten Beispiel der umgerechnete X-Wert).

**X**

Gibt an, welches Datenfeld als zu verwendete Eingabewert für X (***Beispiel:*** XCOORD).

**Y**

Gibt an, welches Datenfeld als Eingabewert für Y verwendete (***Beispiel:*** YCOORD).

**EPSG**

Gibt an, welches Datenfeld das zugrunde liegende Koordinatensystem enthält (***Beispiel:*** EPSG).

**DESTEPSG**

Gibt das Ziel-Koordinatensystem an, zu dem transformiert werden soll (***Beispiel:*** 3068 Soldner Berlin).

**Werte aus einer GIS-Datei ableitenBeispiel:**

$EGIS(Verfahren=GETPOINTWERT X=XCOORD Y=YCOORD Quelle=Grundwasser EPSG=EPSG)$

**Verfahren**

GETPOINTWERT

Dieses Verfahren kann verwendet werden, um Daten von einer GIS-Datei (z. B. Shape, GeoJSON) mithilfe eines Koordinatenpaares einzulesen.

Zu diesem Zweck wird das erste Objekt an den übertragenen Koordinaten eingelesen und der gewünschte Wert von der konfigurierten Attributspalte des GIS-Datensatzes zurückgegeben.

Auf diese Weise können z. B. Namen von Bezirken, Planungsflächen, TK-Nummern usw. automatisch an die GeoDin Allgemeine Sondierungen übertragen werden.

**X**

Gibt an, welches Datenfeld den X-Wert enthält (***Beispiel:*** XCOORD).

**Y**

Gibt an, welches Datenfeld den Y-Wert enthält (***Beispiel:*** YCOORD).

**EPSG**

Gibt an, welches Datenfeld das zugrunde liegende Koordinatensystem enthält (***Beispiel:*** EPSG).

**Quelle**

Hier kann ein Verweis auf eine zusätzlich verfügbare Sektion Von der GeoDin Datenbankverbindung zu den allgemeinen Einstellungen der Konfiguration verknüpft werden.

In den Datenbank allgemeine Einstellungen definieren Sie anschließend den folgenden Schlüssel mit den Werte von Quelle.

GRUNDWASSER= Pfad zu einer Shape ODER GeoJSON

GROUNDWATERFIELD= Name von der Spalte für Attribute in der Shape oder GeoJSON

**Beispiel:**

Grundwasser=C:\GISData\GW-Model\gw2020.shp

GROUNDWATERFIELD=MAXGW

***Hinweis:*** *Wenn keine zusätzliche Referenz unter Quelle angegeben ist, versucht GeoDin automatisch, eine GeoJSON-Datei (\*.geojson) mit dem Namen des Zielfelds von der Berechnungsformel im Syslib-Verzeichnis der GeoDin-Installation zu finden. Das Attributfeld, von dem die Daten zur Datenbank zurückgegeben werden, muss in der GeoJSON denselben Namen haben wie das Zielfeld der Berechnungsformel.*

## Referenz: Alternativer SQL-Befehl

Mit diesem Verfahren zur Definition einer Systemabfrage für den GeoDin-Objektmanager oder einer Objektrahmenabfrage innerhalb eines Layouts können Sie eine beliebige SQL-Anweisung zur direkten Datengewinnung formulieren. Wenn Sie mit SQL vertraut sind, ist dieses Verfahren wesentlich schneller als die schrittweise Formulierung der SQL-Anweisung über die einzelnen Menüs.

**Beispiel:**

AUSWÄHLEN \* VON GeoDin\_LOC\_LOCREG

Die SQL-Anweisung kann Makrovariablen enthalten, die von GeoDin automatisch ersetzt werden, während die Abfrage ausgeführt wird. Der Zweck von der Abfrage ist dafür der bestimmende Faktor.

**Objektrahmenabfrage in einem Layout wählen**

$PRJID$ wird durch die Projekt-Kennung ersetzt, die aktuell ist, von dem Projekt, das zu dem Layout verbunden ist

$LOCID$ wird ersetzt durch die aktuell Objekt-ID von dem Objekt, das zu dem Layout verbunden ist

$INVID$ wird durch die Kennung des Aktueller Messpunkt von dem zu dem Layout verbundenen Objekt ersetzt

In einem Layout wählen mit einem einzelnen Objektrahmen kann das Extrahieren eines Datensatzes aus der Tabelle GeoDin\_LOC\_LOCREG die folgende SQL-Anweisung verwenden:

Auswählen \* Von GeoDin\_LOC\_LOCREG WHERE (PRJ\_Kennung='$PRJID$') UND (LOCKennung=$LOCID$)

Wenn ein Neues Objekt mit dem Layout verknüpft wird (zum Beispiel indem das Objekt geändert wird, während die Layoutübersicht geöffnet ist), wird der Datensatz für dieses Objekt aus der Datenbank-Tabelle ausgewählt. In einem Variabler Text-Element mit der Datenquelle "Objektrahmenabfrage" können auf dieses Objekt Alle Datenfelder abgerufen werden. Bitte beachten Sie, dass das obige Beispiel nur zur Veranschaulichung der Möglichkeiten dient. In der Praxis wäre es nicht sinnvoll, da das Makro ähnlich wie $LONGNAME$ auf die Datenfelder dieser Tabelle zugreift. Ohne eine Objektrahmenabfrage können daher bereits alle Datenfelder dieser Tabelle bereitgestellt werden. Normalerweise werden Objektrahmenabfragen verwendet, um weit komplexere Ergebnisdatensätze zu extrahieren.

Wie in einer SQL-Anweisung können die Namen von Tabellen und Datenbankansichten verwendet werden, sollten diese Namen in der Liste von **Tabellen**. Dies ist notwendig, um die notwendige Datenbankschema-Erweiterung von den Namen sicherzustellen.

In dieser Art der Definition einer Systemabfrage für den GeoDin-Objektmanager oder einer Abfrage innerhalb eines Layouts im Objekt-Framework können Sie jede SQL-Anweisung formulieren, um Daten abzurufen. Beispiel:

AUSWÄHLEN \* VON GeoDin\_LOC\_LOCREG

Die SQL-Anweisung kann Makro-Variablen enthalten, die von GeoDin automatisch ersetzt werden, bevor die Abfrage ausgeführt wird. Der Zweck der Abfrage ist daher von größter Bedeutung.

Systemabfrage für den GeoDin-Objektmanager

Die Makrovariablen werden durch die Informationen von dem übergeordneten Zweig ersetzt, um eine angemessene Einschränkung der abgefragten Objekte zu erreichen.

$PRJID$ wird durch die aktuell verwendete Projekt-Kennung ersetzt

$LOCID$ wird durch die aktuell Objekt-ID ersetzt

$INVID$ wird durch die Kennung des Aktueller Messpunkt ersetzt

Die Erstellung einer Systemabfrage hängt von ihrer Verwendung und von der Platzierung der Abfrage im GeoDin-Objektmanager ab. Vorrangig hängt sie von der Definition der resultierenden Objekte (Objekt oder Messpunkt) ab, welche Datenfelder oben in der Feldliste des Auswählen-Befehls gesetzt werden.

Objekt: PRJ\_Kennung,LOCKennung; innerhalb eines Projekts nur LOCKennung

Messpunkt : INVID

Die Liste der Felder des Auswählen-Befehls kann UND sollte weitere Datenfelder enthalten, die die Anzeigenamen im Objektmanager erzeugen.

Die WHERE-Bedingung muss in Abfragen unterhalb von Projekten, Objekten und Messpunkten Einschränkungen auf das übergeordnete Objekt enthalten, andernfalls könnten in den Ergebnissen Objekte erscheinen, die nicht der Struktur des Objektmanagers entsprechen (z. B. Alle Objekte einer Datenbank unterhalb eines Projektknotens).

Beispielabfragen: Darstellen auch mögliche Kombinationen von Anzeigefeldern für den Objektmanager.

**Abfragen auf der Ebene "Datenbank" und "Datenbankabfragen"**

Objekte:

Auswählen PRJ\_Kennung,LOCKennung,LONGNAME & " (", ZCOORDE, "m)" AS F1 Von GeoDin\_LOC\_LOCREG order by LONGNAME

Messpunkte:

Auswählen INVID,LONGNAME & " (", ZCOORDE, "m)" AS F1 Von GeoDin\_LOC\_LOCREG order by LONGNAME

**Abfragen auf der Ebene „Projekt“ und „Projektabfragen“ mit erforderlichen Einschränkungen auf die PRJ\_Kennung**

Objekte:

Auswählen LOC\_Kennung,LONGNAME & " (", ZCOORDE, "m)" AS F1 Von GeoDin\_LOC\_LOCREG WHERE PRJ\_Kennung='$PRJKennung$' order by LONGNAME

Messpunkte:

Auswählen INVKennung,LONGNAME & " (", ZCOORDE, "m)" AS F1 Von GeoDin\_LOC\_LOCREG WHERE PRJ\_Kennung='$PRJKennung$' order by LONGNAME

**Abfragen auf der Ebene „Objekt“ oder „Messpunkte“ mit erforderlichen Einschränkungen auf der PRJ\_Kennung und LOCKennung sowie gegebenenfalls auf der INVKennung**

Auswählen INVKennung,INVNAME Von GeoDin\_LOC\_PRBREG WO (PRJ\_Kennung='$PRJKennung$' ) UND (LOCKennung=$LOCKennung$) sortiert nach INVNAME

**Tabellen**

Da in der SQL-Definition verwendete Namen von Tabellen/Ansichten vorkommen, sollten die Namen auch in die Liste aufgenommen werden. **Tabellen**. Nur so ist ein Name zusätzlich für Schema-Bearbeitungsarbeiten geschützt.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.geodin.com/geodin-desktop/de/datenanalyse/formula-basics.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
