====== Ausdrucks-Editor ====== ⯇ Zurück zu [[mikeplus:dialog:allgemeine_elemente|Allgemeine Elemente der Benutzeroberfläche]] \\ //Handbuch: MIKE+ Model Manager User Guide, section 21: Expression Editor// ===== Einleitung ===== Den Ausdrucks-Editor werden Sie zumeist verwenden, um einr Feldberechnung durchzuführen. Er bietet eine einheitliche Oberfläche, um beliebig komplexe Ausdrücke zu gestalten, und kommt in MIKE+ aber an mehreren Stellen vor: * Durchführen von Feldberechnungen * Erstellen von Ausdrücken in der Import-Export-Schnittstelle * Definition von Steuerungen in der Siedlungsentwässerung * Erstellen von Filtern in Berichten ===== Dialogfeld ===== FIXME Sreenshot des Dialogfeldes einfügen \\ Linkziel: Direktlink zum Original \\ Anordung: zentriert \\ Bildgröße: auf etwa 2/3 des Originals setzen (bezieht sich auf Breite) ===== Allgemeines ===== * Variablen mit eckigen Klammern einschließen: [Diameter] * Für numerische Werte DezimalPUNKT verwenden: 1.5 * Textfeld in doppelten Anführungszeichen einschließen: "PVC" * DropDown-Felder über auswählen bzw. Position angeben * Felder setzen mit: NULL (groß geschrieben, keine Anführungszeichen) ===== Operatoren ===== ==== Arithmetische Operatoren ==== {{tablelayout?rowsHeaderSource=Auto}} ^ Operator ^ Erklärung ^ | + | Addition\\ 3 + 4 (ergibt 7) | | + | Textverknüpfung\\ "Apfel" + "baum" (ergibt Apfelbaum) | | - | Subtraktion\\ 9 - 6 (ergibt 3) | | * | Multiplikation\\ 4 * 3 (ergibt 12) | | / | Division\\ 9 /2 (ergibt 4.5) | | % | Rest bei einer Integer-Division\\ 9 % 2 (ergibt 1)\\ Testen :!: | ==== Logische Operatoren ==== {{tablelayout?rowsHeaderSource=Auto}} ^ Operator ^ Erklärung ^ | && | UND | | %%||%% | ODER | | == | ist gleich | | <> | ist ungleich | | != | ist ungleich | | < | ist kleiner als | | %%<=%% | ist kleiner gleich | | > | ist größer | | >= | ist größer gleich | | ! | NICHT | ===== Funktionen ===== ==== Mathematische Funktionen ==== {{tablelayout?rowsHeaderSource=Auto}} ^ Funktion ^ Erklärung ^ | Abs (Number/Time Span) | Absolute value of a number | | Acos (Number) | Arccosine, or inverse cosine, of a number | | Asin (Number) | Arcsine, or inverse sine, of a number | | Atan (Number) | Arctangent, or inverse tangent, of a number | | Atan2 (Number) | Arctangent of the specified x- and y-coordinates | | Ceiling (Number) | Number rounded up, away from zero | | Cos (Number) | Cosine of the given angle | | Cosh (Number) | Hyperbolic cosine of a number | | Exp (Number) | e raised to the power of number | | Floor (Number) | Rounds number down, toward zero | | Log (Number) | Returns the logarithm of a number to the base e. | | Log10 (Number) | Returns the base-10 logarithm of a number. | | Max (Number /DateTime/TimeSpan) | Largest of the two values | | Min (Number/DateTime/TimeSpan) | Smallest of the two values | | Pow (Base,Exponent) | Number raised to a power((Pow und Power scheinen identisch zu funktionieren)) | | Power (Base,Exponent) | Number raised to a power((Pow und Power scheinen identisch zu funktionieren)) | | Round (Number) | Rounds a number to a specified number of digits | | Sign (Number) | Determines the sign of a number | | Sin (Number) | sine of the given angle | | Sinh (Number) | Hyperbolic sine of a number | | Sqrt (Number) | Returns a positive square root | | Tan (Number) | Tangent of the given angle | | Tanh (Number) | hyperbolic tangent of a number | | ToDouble | siehe [[#todouble|unten]] | | Tolnt (Double) | Rounds a number down to the nearest integer | | Truncate (Double) | Removes the fractional part of the number | ==== Text-Funktionen ==== {{tablelayout?rowsHeaderSource=Auto}} ^ Funktion ^ Erklärung ^ | Concat (strings) | Combine text from multiple ranges and/or strings | | Contains (string, string) | To check if a string contains another string | | EndsWith (string, string) | To check if a string ends with the given suffix | | Starts With (string, string) | To check if a string starts with the given prefix | | Substring (string,startlndex[,length]) | To get the substring from the source string\\ Index startet mit 0. Substring("Suppenteller",4,4) ergibt "ente" | | ToString (Number/DateTime/TimeSpan) | Converts argument to a string | | Trim (string) | Eliminates leading and trailing spaces | ==== Funktionen von Datum und Zeit ==== {{tablelayout?rowsHeaderSource=Auto}} ^ Funktion ^ Erklärung ^ | DateTimeFromString (String) | | | Day (DateTime) | Returns the day of a date & time, represented by a serial number | | DayFraction (DateTime) | | | DayOfWeek (DateTime) | | | DayOfYear (DateTime) | | | Days (TimeSpan) | | | Hour (DateTime) | | | Hours (TimeSpan) | | | Millis (DateTime/TimeSpan) | | | Minute (DateTime) | | | Minutes (TimeSpan) | | | Month (DateTime) | | | Now | | | Second (DateTime) | | | Seconds (TimeSpan) | | | Ticks (DateTime/TimeSpan) | | | TimeOfDay (DateTime) | | | TimeSpanFromDays (Number) | | | TimeSpanFromHours (Number) | | | TimeSpanFromMinutes (Number) | | | TimeSpanFromSeconds (Number) | | | TimeSpanFromTicks (Long) | | | TotalDays (TimeSpan) | | | TotalHours (TimeSpan) | | | TotalMinutes (TimeSpan) | | | TotalSeconds (TimeSpan) | | | TotalYears (DateTime) | | | Year (DateTime) | | | YearFraction (DateTime) | | ==== ToDouble ==== Wenn man ein Integer-Feld in einer Funktion einbaut, wird das Ergebnis auf ganze Zahlen gerundet, als ob auch das Ergebnis ein Interger sein müsste. Das ist nicht immer richtig. Leider fehlt uns zur Zeit ein Funktion ToDouble(Integer), welche das Problem lösen würde. Zumindest beim Importieren gibt es eine Behelfslösung, um den Integer-Wert in ein Double-Wert umzuwandeln und dann eine Berechung korrekt auszuführen: In unten stehendem Beispiel weist eine Shape-Datei ein Feld „DimInt“ auf, das den Durchmesser des Schachtes als Integer enthält. {{mikeplus:dialog:ausdruckseditor_todouble.png?direct&600|}} **(1)** Erstellen Sie auf der linken Seite des Import-Dialogs eine neue Variable. **(2)** Geben Sie der Variable einen Namen und wählen Sie als Feldtyp „double“. **(3)** Fügen Sie auf der rechten Seite eine Zuweisung ein, die den Integer-Wert in die Double-Variable schreibt. **(4)** Fügen Sie eine weitere Zuweisung ein, in der Sie mit der Double-Variablen die gewünschte Berechnung durchführen. Übrigens hilft Ihnen die gleiche Behelfslösung, wenn Ihre Originaldaten Text enthalten, den Sie als Double weiterverarbeiten möchten. Sie simulieren eine Funktion ToDouble(String), indem Sie analog zum obigen Beispiel mit einer Variable vom Feldtyp String arbeiten. ===== Bedingungen ===== {{tablelayout?rowsHeaderSource=Auto}} ^ Funktion ^ Erklärung ^ | If (condition, trueExpression, falseExpression) | Testet eine Bedingung | | Ifs (condition, value, (condition, value,]... defaultValue) | Testet mehrere Bedingungen von links nach rechts, bis die erste zutrifft. Der letzte Eintrag beschreibt den Standardwert, der eintritt, wenn keine Bedingung erfüllt ist. | ===== Lookup ===== Lookup wird nur beim Import/Export verwendet und scheint auch nur in dem Zusammenhang auf, siehe [[mikeplus:dialog:menue_werkzeuge_import|Importieren und Exportieren]]. {{tablelayout?rowsHeaderSource=Auto}} ^ Funktion ^ Erklärung ^ | Lookup_Num ('SuchTabelle','SuchSpalte',[Eingangswert],'RückgabeSpalte') | Returns a numerical value from another table | | Lookup_string ('SuchTabelle','SuchSpalte',[Eingangswert],'RückgabeSpalte') | Returns a string value from another table | | Lookup_Date ('SuchTabelle','SuchSpalte',[Eingangswert],'RückgabeSpalte') | Returns a date value from another table |