Wertebereichs-Funktionen (CO, PF)
ABS: Absolutwert einer Zahl ermitteln
Ziel
Absolutwert einer Zahl ermitteln
Information
Die Funktion ABS liefert den Absolutwert einer Zahl. Der Absolutwert einer Zahl ist ihr Wert ohne das Vorzeichen.
Regel
Syntax: ABS(Operand)
Beispiel
Der Ausdruck ABS(-2) liefert den Wert 2.
ATOI: Umwandlung eines Strings in einen numerischen Wert
Ziel
Umwandlung eines Strings (Typ X) in einen numerischen Wert
Regel
ATOI (<Alphanumerisches DI, Variablen>)
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
008281 | Anz. DS-Archiv | CS | ATOI(@G442) | Die Vorgangsnummer (DI001098) soll in eine Zahl umgewandet werden |
Hinweis
Hat der String keinen als Zahl interpretierbaren Inhalt, ist das Ergebnis von ATOI der Wert 0.
CONST: Konstanten in Wertebereichen
Ziel
Holen einer Konstantenbezeichnung ggf. sprachabhängig
Regel
CONST (Sprache, Konstanten-ID)
CONST: Funktion
Sprache: @19, 0000, 1000
Konstanten-ID: Identnummer der Konstante
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
027748 | MFG | CO | CONST(@19,"000528") | Gibt in Abhängigkeit von der Sprache den Inhalt der Textkonstante 000528 aus. |
Hinweis
Die Bezeichnung der Konstante wird automatisch getrimmt.
EXIST: Existenzprüfung ohne Relationen
Informationen
Wenn eine Prüfung über Relationen nicht möglich ist, kann ein Dataitem mit dieser Funktion trotzdem nach Existenz in der entsprechenden Datentabelle geprüft werden.
Existiert ein entsprechender Datensatz nicht in der angegebenen DT, wird eine Benutzereingabe mit Bitte Eingabe überprüfen abgewiesen.
Regel
EXIST (DI, DT)
EXIST: Funktion
DI: Ziel-DI, das geprüft werden soll (i.d.R. DI mit WB)
DT: DT in welcher nach Datensatzexistenz geprüft wird.
Beispiel
Funktion EXIST mit Prüfung auf vorhandene Datensätze
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
023623 | VH Modulaufruf | CS | EXIST(DI000111,405) | DI023623 und DI000111 LBMOD sind beide aus der DT411. Mit EXIST() wird geprüft, ob das Listboxmodul in der DT405 existiert. |
Funktion EXIST mit Prüfung auf nicht vorhandene Datensätze
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
023623 | VH Modulaufruf | CS | EXIST(DI000111,405)!=1 | DI023623 und DI000111 LBMOD sind beide aus der DT411. Mit dem Wertebereich wird geprüft, ob das Listboxmodul in der DT405 nicht existiert. |
Hinweis
Die Prüfung
kann auf Idents, die sich aus einem DI bilden, erfolgen.
braucht nicht auf Ident-Dataitems selbst zu stehen, da diese sowieso über Relations-Funktion geprüft werden.
kann nur auf Idents vom DB-Typ = X zugreifen.
kann nicht auf zusammengesetzte Idents zugreifen.
EXP: Potenzieren von Zahlen
Ziel
Potenzieren von Zahlen
Information
Die Funktion EXP liefert potenzierte Werte einer Zahl.
Regel
Syntax: EXP(Operand 1;Operand 2)
Operand 1 = Basis
Operand 2 = Exponent
Beispiel
Der Ausdruck EXP(2;3) liefert den Wert 8.
Der Ausdruck EXP(4;0.5) liefert den Wert 2.
Der Ausdruck EXP(-3;3) liefert den Wert -27.
Hinweise
Der Exponent darf keine rationale Zahl sein. Brüche wie z.B. ½ müssen durch den Wert 0.5 ersetzt werden.
Bei Wurzeln aus positiven Zahlen wird nur das positive Ergebnis geliefert. Das Ergebnis von EXP(4;0.5) ist beispielsweise +2 und -2. Die Software liefert den Wert +2.
Berechnungen mit negativer Basis sind nur mit ganzzahligem Exponenten zulässig. Berechnungen mit der Funktion EXP sollten daher nur nach der Umrechnung in einen Absolutwert durchgeführt werden.
Expand: Zurückgeben des Wertes einer Variablen
Ziel
Auslesen des aktuellen Wertes einer Variablen
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
003622 | Aktueller Wert @G | CS | EXPAND("@G" + FMT(DI003109,".0")) | Der aktuelle Wert der globalen Variablen @G100 soll ausgegeben werden |
Hinweis
Mögliche Variablen sind "@xxx", "@Gxxx", "@Dxxx", und "@Uxxx".
FMTDATE: Umwandlung eines Termin-DI in einen String
Ziel
Umwandeln eines Termin-DIs in einen String z.B. um diesen in eine Zeichenketten einzubauen
Regel
FMT(Termin-DI, <Format-ID>)
Termin-DI: Termin-Dataitem mit DB-Typ = N4
Format-ID:
Identnummer des Formats als Zeichenkette (mit "") oder
"" (Leerstring): Ausgabe im Standardterminformat der Benutzeroberfläche ( Format Termin)
FMT: Umwandlung eines numerischen DIs in einen String
Ziel
Ein numerisches DI soll in einen String umgewandelt werden, um diesen z.B. in eine Zeichenkette einzubauen
Regel
FMT(DI, <Formatstring>)
Formatstring: „[-][W][.P][e|E]"
-: links ausgerichtet (default: rechts)
W: min. Breite
P: max. Anzahl Nachkommastellen
E: Exponentialdarstellung
Beispiel
Format → Resultat, Wert: 298.123
„8.2" → „ 298.12"
„-10" → „298.12 "
„.1" → „298.1"
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
023120 | Jahr | CO | FMT(DI023062, ".0") | Gibt den Wert aus DI023062 ohne die Nachkommastellen aus. |
Hinweise
Es sind alle numerischen DB-Typen erlaubt.
Entspricht der UNIX-Funktion man fprintf.
FR: Zeichenkette anhängen
Ziel
Holen eines Wertes eines Operanden und Anhängen von Zeichenketten vor und/oder hinter dem geholten Wert
Regel
FR(<Zeichenkette>, <DIxxxxxx oder @xx>, <Zeichenkette>)
Als Operanden können Dataitems und Variablen eingesetzt werden.
Die Zeichenketten
können beliebig lang sein.
werden vorher getrimmt.
Hinweis
Diese Funktion kann nicht für I-Texte eingesetzt werden.
IIFS: Werte nach Bedingung ermitteln
Ziel
Zeichenketten in Abhängigkeit von Bedingungen unterschiedlich zusammenbauen
Regel
IIFS (Bedingung, String1, String2)
Bedingung: logischer Ausdruck, dessen Ergebis WAHR oder FALSCH ist.
String1: Wert, den das prüfende DI annimmt, wenn die Bedingung erfüllt ist.
String2: Wert, den das prüfende DI annimmt, wenn die Bedingung nicht erfüllt ist.
Hinweise
Die Anzahl der IIFS-Bedingungen in einer Wertebereichskonstruktion wurde auf 15 erhöht. Es dürfen bis 15 IIFS-Bedingungen angelegt werden.
Gilt nur für X, AL Felder, aber nicht für Numerische.
LENGTH: Zeichenanzahl einer Zeichenkette ermitteln
Ziel
Zeichenanzahl einer Zeichenkette ermitteln
Informationen
Die Wertebereichsfunktion LENGTH liefert die Zeichenanzahl einer Zeichenkette.
Leerzeichen am Anfang und Ende werden nicht mitgezählt.
Regel
Syntax: LENGTH(Operand)
Beispiel
Der Ausdruck LENGTH("12345678") liefert den Wert 8.
Hinweis
Die Funktion kann nur auf Strings ( DB-Typ =X, Klasse =0) angewendet werden. Eine Anwendung auf I-Texte und Fließtexte ist nicht möglich.
NB: Eingabeprüfung für Alpha-Dataitem nach numerischer Regel (von, bis)
Informationen
Ein alphanumerisches Dataitem wird in eine Zahl umgewandelt.
Anschließend wird überprüft, ob diese Zahl zwischen von und bis liegt.
Regel
NB (Dataitem, von, bis).
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
xxxxxx | Beispiel-DI | PF | NB(DIxxxxxx,1,9999) | Im Feld Beispiel-DI können nur Zahlen zwischen 1 und 9999 eingegeben werden. |
Hinweis
Eine Eingabe wird mit der Fehlermeldung Bitte Eingabe überprüfen abgewiesen, wenn die Prüfung
keine gültige Zahl ergibt oder
die Zahl nicht im Bereich von/bis liegt.
NCHILD: Ausgabe der direkt untergeordneten Datensätze (veraltet)
Hinweis
In 39 Umsetzung über Python-API
Information
Diese Funktion gibt die Anzahl der direkt untergeordneten Datensätze aus dem ersten untergeordneten Datenbereich als N4 zurück.
Regel
NCHILD()
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
xxxxxx | Beispiel-DI | CO | NCHILD() | Beispiel: Wird das DI in der DT461 Projekt angelegt und in einem Modul in einem Datenbereich der DT461 eingebunden, in dem der erste untergeordnete Datenbereich aus der DT463 kommt, wird im Feld die Anzahl der Vorgänge eines Projekts ausgegeben. |
NORMSINV: Quantile der Standardnormalverteilung
Information
Die Funktion NORMSINV liefert die Quantile der Standardnormalverteilung.
Regel
NORMSINV (Operand)
Der Operand ist die zur Standardnormalverteilung gehörige Wahrscheinlichkeit.
Ein Operand <0 oder >1 ist nicht zulässig.
Beispiel
Der Ausdruck NORMSINV(0.75) liefert den Wert 0.674490.
OBS: Objektschutzüberschreibung
Ziel
Überschreiben von Objektschutz-Dataitems mit dem angegebenen Wert
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
003404 | Export: OBS setzen 1 | CX | OBS1("r--","r--","r--") |
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
003405 | Export: OBS setzen 2 | CX | OBS2("}}}}","}}}}") |
Regel
OBS<OS-Teil > (Wert für Teil1, Wert für Teil2, ...)
OBS: Funktion
OS-Teil:
1: Überschreibt (rwd owner, rwd group, rwd any)
Beispiel: OBS1 ("r--","r--","r--")
Ergebnis: Nach Export sind die Datensätze nicht mehr änder- bzw. löschbar
2: Überschreibt (Anlagebenutzer [1-4],Anlagebenutzer [5-8])
Beispiel: OBS2 ("z", " ")
Ergebnis:
Nach Export haben die Datensätze den Anlagebenutzer "z".
In betreffenden Modulen kann nach "ohne z" gesucht werden. So werden die Datensätze mit Anlagebenutzer "z" nicht angezeigt und können nicht mehr geändert oder gelöscht werden.
Hinweise
Diese Funktion
Der Datenbereich, der die DIs mit diesen WB-Funktionen enthält, darf keine Datenfelder anderer Datentabellen enthalten.
Die Datensätze werden direkt in den Datenbanken geändert. Dadurch werden
die zu ändernden Objektschutz-Datenfelder erst nach der Neusuche aktualisiert.
ggf. vorhandene Exits nicht ausgeführt.
PCT: Prozentabweichungsberechnung
Ziel
Berechnung der prozentualen Abweichung zweier Dataitems
Regel
PCT<DBTyp> (DI-1, DI-2)
PCT: Funktion
DB-Typ:
DB-Typ der in der Klammer angegebenen Dataitems.
Mögliche Werte: N2, N4, N8
DI-1: z.B. Ist-Wert
DI-2: z.B. Soll-Wert
Hinweise
Diese Funktion kann nur zwischen DIs mit gleichen DB-Typ angewendet werden.
Wenn eine %-Abweichung zwischen DIs mit unterschiedlichen DB-Typen angewendet werden soll, muss
ein DI mit WB-Art =CS eines der beiden DB-Typen umgewandelt werden.
diese Werteberechnung in jedem Fall mit der WB-Art =CO durchgeführt werden.
PERIOD: Zeitraumermittlung
Ziel
Ermittlung des Anfangs- oder Endtermins eines Zeitraums relativ zu einem Datum
Information
Funktion zur Zeitraumermittlung:
Ergebnis
Ein Tagesdatum, das den ersten oder letzten Tag des durch die Eingabeparameter der Funktion festgelegten Zeitraums darstellt.
Verwendungsmöglichkeiten
Anfangs- und Endtermin in Zeitskalen
Anfangs- und Endtermin in Terminbalken
Als dynamische Variable für Filterkriterien
Als dynamische Variable in Wertebereichen
Details
Ausgehend von einem angegebenen Datum soll vom System der Anfangs- oder Endtermin des Zeitraums ermittelt werden, in dem dieses Datum liegt oder eines benachbarten Zeitraums:
Kalenderwoche des Datums
n-te Woche davor (nicht implementiert)
n-te Woche danach (nicht implementiert)
Monat des Datums
n-ter Monat davor
n-ter Monat danach
Quartal des Datums
n-tes Quartal davor
n-tes Quartal danach
Jahr des Datums
n-tes Jahr davor
n-tes Jahr danach
Regel
PERIOD (<Datum>, <Raster>, <Terminlage>, <Abstand>)
Datum
Auf dieses Datum bezieht sich der ermittelte Zeitraum.
Als Wert kann ein Datums-Dataitem verwendet werden oder eine dynamische, globale, Benutzer- oder Systemvariable, die ein Datum enthält.
Raster
Legt fest, für welchen Zeitraum der Anfangs- oder Endtermin ermittelt wird.
Werte:
3: Woche
4: Monat
5: Quartal
6: Jahr
Terminlage
Werte:
0: der Anfangstermin wird ermittelt
1: der Endtermin wird ermittelt
Es kann ein Dataitem mit DB-Typ=N2 verwendet werden oder eine Benutzervariable oder eine dynamische, globale Variable, die den Wert 0 oder 1 enthält.
Abstand
Legt fest, der wievielte Zeitraum davor bzw. danach ermittelt wird.
Werte:
0: der Zeitraum, in dem das Datum selbst liegt
< 0: Anzahl gleicher Zeiträume davor
> 0: Anzahl gleicher Zeiträume danach
Es kann ein Dataitem mit DB-Typ=N2 verwendet werden oder eine Benutzervariable oder eine dynamische, globale Variable, die eine Ganzzahl enthält.
Beispiele
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
xxxxxx | Beispiel-DI | CO | PERIOD(@D1008,6,0,1) | Erster Tag des Vorjahres zum Datum in der dynamischen Variablen @D1008 mit Raster |
xxxxxx | Beispiel-DI | CO | PERIOD(@15,5,1,2) | Letzter Tag des übernächsten Quartals zum Heutedatum mit Raster |
RELPOS: Ausgabe der Datensatzposition
Information
Diese Funktion gibt die relative Position des Datensatzes in der Datentabelle als N4 zurück.
Hinweis
Funktion funktioniert nicht in Modulen mit Struktursortierung.
ROUND: Zahlen runden
Information
Die Funktion ROUND rundet eine Zahl auf eine definierbare Anzahl von Stellen, z.B liefert der Ausdruck ROUND(12,3456;2) den Wert 12.35.
Regel
Syntax: ROUND(<Wert>;<Anzahl Dezimalstellen>).
STR: Abschneiden von Zeichenketten
Ziel
Holen eines Wertes eines Operanden und Abschneiden von Zeichenketten an beliebiger Stelle
Regel
STR(<DIxxxxxx oder @xx>, Startposition, Länge)
Als Operanden können Dataitems und Variablen eingesetzt werden.
Startposition
Stelle in der Zeichenkette des Operanden, ab welcher abgeschnitten wird.
ab der ersten Stelle der Operanden nach oben gezählt wird.
Länge
Anzahl Zeichen, die ab Startposition abgeschnitten werden.
max. Länge ist Länge der Operanden
Beispiel
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
009488 | GK-Projekt J/N | CS | (STR(DI009487,1,2)@G935) | In diesem Beispiel wird geprüft ob die ersten 2 Zeichen des DIs 009487 dem Wert der Variablen @G935 entsprechen |
SYSTEM: Programmaufruf von der Software aus
Informationen
Diese Funktion soll nicht mehr verwendet werden.
Diese Funktion erlaubt den Aufruf eines anderen Programms vom Programm aus.
Die Ausführung dieses Programms geschieht synchron, d.h. das System wartet, bis das aufgerufene Programm beendet ist.
Regel
SYSTEM(DI<DI-Nummer>)
DI<Nummer>: das DI enthält das Kommando, wie bei einer Shell-Eingabe, z. B. „cp file1 file2 1>&2 2> cp.err$$".
Um nur auf Fehler zu prüfen, wird hinter der Klammer der Vergleichoperand angehängt, z.B.: SYSTEM( DI<DI-Nummer>) 0
Hinweise
Die Funktion SYSTEM gibt bei Erfolg den Wert Null zurück; sie sollte daher an ein DI vom internen Typ Integer gebunden werden. Zur Angabe des auszuführenden Programms ist ein Text-DI erforderlich, welches Name und Optionen des Programms aufnimmt.
Wenn dieser Wertebereich an ein J/N-Feld mit Bezeichnung Fehler gebunden ist, erfolgt die Anzeige des Status als Text.
Der neue Prozess übernimmt Standardeingabe und -ausgabe des Systems und ist daher direkt mit dem Programm-Client verbunden. Ausgaben würden also zum Client gesendet, daher müssen Standardeingabe, -ausgabe und -fehler umgeleitet werden.
Der Rückgabewert von SYSTEM entspricht dem Return-Status (integer) des aufgerufenen Programms.
Zur Unterscheidung von bei der Ausgabeumleitung erzeugten Dateien kann „$$" in den Namen eingefügt werden. Die beiden Zeichen werden bei der Ausführung durch die Prozessnummer ersetzt.
TRIM: Leerzeichen entfernen
Ziel
Leerzeichen vor und/oder nach einer Zeichenkette entfernen
Regel
TRIM (Operand)
TRIM: Funktion
Operand: DI, Variablen- oder Konstanten-Identnummer
VH: Anzahl Datensätze in einer untergeordneten Datentabelle
Information
Diese Funktion zeigt die Anzahl von Datensätzen eines übergeordneten Datensatzes an, die in einer untergeordneten Datentabelle existieren, ohne dass ein Datenbereich dieser Datentabelle im Modul existieren muss.
Regel
VH (DT, Index, Pfad, DI)
DT: Zieldatentabelle, deren Verwendungshäufigkeit ermittelt werden soll
Index: Angegebene Datentabelle im Ident der Ziel-DT
Pfad: abhängig vom Variablennamen aus Relation
0: z.B. "ID425"
1: z.B. "ID425A"
2: z.B. "ID425B"
3: z.B. "ID425C"
DI: Ident-DI in der Datentabelle des übergeordneten Objekts, mit dem in der untergeordneten gesucht werden soll.
Hinweis
Diese Funktion kann mit den WB-Arten: CS, CO, und CL angewendet werden.
Achtung
Wird der Wertebereich falsch konstruiert, tritt im Modul bei der Suche die Fehlermeldung Datenbankfehler -52 auf, die für jeden gefundenen Datensatz bestätigt werden muss.
IKV: EXCEL-Funktion für finanzmathematische Berechnungen
Ziel
Einsatz der EXCEL-Funktion IKV als Wertebereichsfunktion in der PLANTA Software, um finanzmathematische Berechnungen mit Programm-Customizing zu realisieren.
Regelen
IKV (Wert1,Wert2,Wert3,....,Wert12,Schätzwert)
Algorithmus: MS EXCEL, Funktion IKV
Eingabe-Parameter
Wert1 bis Wert12
Werte der Zahlungsreihe als Kosten (negativ) und Nutzen (positiv) in der Reihenfolge der Jahre.
Es muss mindestens einen negativen und einen positiven Wert geben.
Operatoren für Wert1 bis Wert12 können sein:
DIxxxxxx (numerische Dataitems, DBTyp = N8)
@Dxxxx (dyn. Variablen auf numerischen Dataitems, DBTyp = N8)
numerische Konstanten, z.B. 0.0
Wenn weniger als 12 Werte benötigt werden, können die restlichen Parameter konstant mit 0.0 im Wertebereich angegeben werden.
Schätzwert
siehe EXCEL-Hilfe
0, wenn nicht verwendet. Dann nimmt das System intern „10%" an, siehe EXCEL-Funktion
Rückgabewert
Ergebnis von EXCEL-IKV
999999.99, wenn Berechnung nicht durchgeführt werden kann (bei Excel: #ZAHL!)
Beispiel
IKV(DI299101, DI299102, DI299103, DI299104, DI299105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
Hinweis
Der Wertebereich soll nicht mit Wertebereichsart CO verwendet werden, weil dann nach jeder Eingabe eines an der Formel beteiligten Feldes sofort eine Neuberechnung des IKV-Wertes stattfindet, was wegen des verwendeten Iterationsverfahrens dauern kann.
Abstands- und Terminberechnung
Ziel
Berechnen von Daten bzw. Abständen zwischen zwei Terminen über einen in der PLANTA Software hinterlegten Kalender
Details: Ermittlung der Anzahl von Werktagen
Berechnung der Anzahl von Werktagen zwischen zwei Terminen
Um die Anzahl Werktage zwischen zwei Terminen auszurechnen, wird folgende Formel benutzt:
WD_BETWEEN([Kalender],[Termin1],[Termin2])
Beispiel 1
Anzahl der Arbeitstage zwischen Heute und Heute + 100 Tage im Kalender „BK"
Ergebnis:
WD_BETWEEN("BK",@15,@15+100)
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
034591 | Beispiel Between | CS | WD_BETWEEN("BK",@15,@15+100) |
Beispiel 2
Anzahl der Arbeitstage zwischen dem 01.01.1970 und Heute im Kalender „BK"
Ergebnis:
WD_BETWEEN("BK",0,@15)
Details: Datumsermittlung
Datumsermittlung über Werktage
Zur Berechnungen mit einer Anzahl von Werktagen wird folgende Formel verwendet:
WD_TIMEINTERVAL([Kalender],[Starttermin],[Anzahl])
Beispiel 1
Datum von Heute + 5 Arbeitstage, welche im Kalender „BK" hinterlegt sind.
Ergebnis:
WD_TIMEINTERVAL("BK",@15,5)
DI | Bezeichnung | WB-Art | Wertebereich | Erklärung |
---|---|---|---|---|
034592 | Beispiel Timeint. | CS | WD_TIMEINTERVAL("BK",@15,5) |
Beispiel 2
Datum von Heute + die Anzahl der Arbeitstage aus DI000002+1, welche im Kalender aus DI000001 hinterlegt sind.
Ergebnis:
WD_TIMEINTERVAL(DI000001,@15,(DI000002+1))
Siehe auch: Anlegen eines Wertebereichs |