Zum Hauptinhalt springen

Berichts Funktionen

Einfache Berechnungen (Calc)

Verfügbar ab Version 23.1.100

Hiermit können Sie einfache Berechnungen durchführen ohne SQL.

Bitte beachten

Das verwenden von Calc ist immer performanter als das verwenden eines SQLs und macht den Bericht schneller!

Für komplexere Berechnungen verwenden Sie bitte C# Scripting. Sie können in den Berechnungen auch andere {} Ausdrücke wie {Sql.Name} oder {Fun.Name} etc. verwenden.

Beachten Sie das die Gross/Kleinschreibweise beim Ausdruck Report.Calc genau eingehalten werden muss.

Ausdruck
{Report.Calc("{A.LENGTH}*10")}Richtig
{REPORT.CALC("{A.LENGTH}*10")}Falsch !!
{Report.CALC("{A.LENGTH}*10")}Falsch !!
{Report.Calc("{A.length}*10")}Falsch !!

Beispiele:

{Report.Calc("{A.LENGTH}*10")}
{Report.Calc("{A.WERT1}/{A.WERT2}*10/{A.WERT3}")}

Sie können hiermit auch Wahr/Falsch aussagen berechnen. Diese können Sie dann bei der Funktion "Unterdrückung" als Bedingung einsetzen.

Beispiele:

{Report.Calc("'{A.STATUS}'='Offen'")}
{Report.Calc("'{A.STATUS}'!='Offen'")}
{Report.Calc("{A.STATUS_ZAHL} IN (100,200,500)")}

Beachten Sie das Textwerte immer in einfache Anführungszeichen gesetzt werden müssen auch wenn Es sich um {} Ausdrücke handelt.

Beispiele:

{Report.Calc("'{A.VORNAME}'||' - '||'{A.NACHNAME}'")}

Was passiert wenn in einem Datenbankfeld NULL (Datenbank NULL) steht?

NULL Werte werden beim Report Designer bis Version 24.1.151
durch einen leeren Text ersetzt ( in die Formel eingesetzt). Ab Version 24.1.151 wird NULL eingesetzt.

Bei Berechnungen mit Zahlen ist darauf zu achten das wenn Spalten NULL werte enthalten das dann keine Berechnung ausgeführt werden kann.
Es erscheint dann ein Leerer text oder in manchen Fällen "#Error#".
Mit der Funktion NVL können NULL Werte in eine Zahl umgewandelt werden damit die Berechnung funktioniert.

{Report.Calc("NVL({A.HEIGHT},0)*10")}

Bei Report.Calc unterstützte Operatoren und Funktionen

Bei Report.Calc können Formelausdrücke verwendet werden.
Für eine Liste der möglichen Formel Funktionen siehe:
https://help.mapedit.de/admin-guide/mapedit-appbuilder/ConditionParser

Beachten Sie das in diese Fall anders als dort Beschrieben Variablennamen in eckige Klammern geschrieben werden müssen.
Also {A.COLUMN} statt COLUMN.

Beachten Sie auch das Variablen mit Textwerten in einfach Anführungszeichen gesetzt werden müssen.

Seiten Nummer/Index (PageIndex)

Gibt die aktuelle Seiten Nummer aus.

Beispiel:

{Report.PageIndex}

Seiten Anzahl (PageCount)

Gibt die Seiten Anzahl aus.

Beispiel:

{Report.PageCount}

Seiten x von y (Page)

Gibt einen Ausdruck wie "1 von 100" aus. Der Wert in Anführungszeichen gibt an welches Wort zwischen den Seiten Index und die Seiten Anzahl ausgegeben werden soll.

Beispiele:

{Report.Page("/")}
{Report.Page("of")}
{Report.Page("von")}

Ausgabe des aktuellen Datum

Beispiele:

{Report.Date("dd.MM.yyyy")}
{Report.Date("MM/dd/yyyy")}

Ausgabe des aktuellen Uhrzeit

Beispiele:

{Report.Time("hh:mm")}
{Report.Time("hh:mm tt")}

Datensatz Nummer (RowIndex)

Ab Version 24.1.125 Gibt die Laufende Nummer des aktuellen Datensatzes zurück.

Anzahl Datensätze (RowCount)

Ab Version 24.1.125 Gibt die Anzahl der Datensätze zurück.

Ersten Datensatz identifizieren (IsFirstRow/IsNotFirstRow)

Ab Version 24.1.125

IsFirstRow gibt true zurück wenn es sich um den ersten Datensatz handelt. Ansonsten wird false zurück geliefert.

IsNotFirstRow gibt true zurück wenn es sich NICHT um den ersten Datensatz handelt. Ansonsten wird false zurück geliefert.

Diese Funktionen sind im Zusammenhang mit der Funktioon "Unterdrücken" nützlich. Wenn Sie wollen das ein Text nur einmalig für die erste Zeile ausgegeben werden soll aber bei allen anderen Zeilen nicht dargestellt werden soll dann geben Sie bei Unterdrücken folgendes ein:

{Report.IsNotFirstRow}

Letzten Datensatz identifizieren (IsLastRow/IsNotLastRow)

Ab Version 24.1.125

IsLastRow gibt true zurück wenn es sich um den letzten Datensatz handelt. Ansonsten wird false zurück geliefert.

IsNotLastRow gibt true zurück wenn es sich NICHT um den letzten Datensatz handelt. Ansonsten wird false zurück geliefert.

Diese Funktionen sind im Zusammenhang mit der Funktion "Unterdrücken" nützlich. Wenn Sie wollen das ein Text nur einmalig bei der letzten Zeile ausgegeben werden soll aber bei allen anderen Zeilen nicht dargestellt werden soll dann geben Sie bei Unterdrücken folgendes ein:

{Report.IsNotLastRow}

Summenbildung (Sum/RunSum)

Ab Version 23.1.92. steht unter Andere Berichts Funktionen auch eine Summenbildung (Sum) und Laufende Summe (RunSum) zur Verfügung die sie im Bereich Fuss einfügen können.

Beispiele:

{Report.Sum("A.LENGTH")}
{Report.RunSum("A.LENGTH")}

Der Name der Spalte die aufsummiert werden soll muss im Bericht vorhanden sein und muss in Großbuchstaben geschrieben werden.

Die Summe und laufende Summe wird immer dann zurück auf 0 gesetzt wenn der Bericht im Ablauf auf ein "{Report.Sum(" stößt. Setzen Sie "{Report.Sum(" also nicht in den Seiten Fuss, sonst wird die Summe nach jeder Seite zurück gesetzt. Setzen Sie die Summe immer in einen Bereichs Fuss.

Decode Funktion

Ab Version 24.1.128

Die Decode Funktion funktioniert analog zur in SQL bekannten Decode Funktion.

D.h. hiermit können Werte umgemappt werden.

Weitere Informationen zu DECODE finden Sie im Internet unter SQL und DECODE.

Beispiele:

{Report.Decode({A.MATERIAL},'PVC','blue','METAL','green','STONE','#FF0000','black')}
{Report.Decode({Report.IsFirstRow},True,'green','blue')}

Ab Version 24.1.151 Beispiele mit NULL (Datenbank NULL)

{Report.Decode({A.MATERIAL},'PVC','blue','METAL','green','STONE','#FF0000',NULL,'Undefined','black')}

IIf Funktion

Ab Version 24.1.128

Die IIf Funktion funktioniert ähnlich wieder in SQL bekannten IIf Funktion.

Wenn der übergeben erste Wert True (Wahr) ist dann wird der zweite Parameter zurück gegeben ansonsten der dritte Parameter.

Der Zahlenwert "0" wird als False (Falsch) gewertet, alle anderen Zahlen werden als True gewertet.
D.h. Wenn ein Feld den Wert 0 enthält wird dies als "False" interpretiert.
Wenn ein Feld den Wert -1 oder 1 (oder je andere Zahl) enthält wird dies als "True" interpretiert.
Datenbank NULL Werte werden als "False".

Beispiele:

{Report.IIf({Report.IsFirstRow},"erste Zeile","andere Zeile")}
{Report.IIf({A.FID}>5094,"wert groesser 5094","wert kleiner 5094")}

Beispiele:

{Report.IIf({A.IS_OPEN},"offen","geschlossen")}

Ab Version 24.1.151 Optional kann als 4ter Parameter ein Wert angegeben der zurück gegen wird wenn der Wert NULL ist.

Beispiele:

{Report.IIf({A.IS_OPEN},"offen","geschlossen","undefiniert")}