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
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
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
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
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
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"
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.
Hinweis
e
- 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
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
Beispiel
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
Information
- Diese Funktion gibt die Anzahl der direkt untergeordneten Datensätze aus dem ersten untergeordneten Datenbereich als N4 zurück.
Regel
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
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
- ist nur beim Export aus der PLANTA Software verwendbar.
- wird virtuellen DIs mit DB-Typ X und DB-Länge = 2 in den betroffenen Datentabellen zugeordnet.
- 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 Terminskalen
- 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 = 6, Terminlage = 0 und Abstand = -1 |
xxxxxx |
Beispiel-DI |
CO |
PERIOD(@15,5,1,2) |
Letzter Tag des übernächsten Quartals zum Heutedatum mit Raster = 5, Terminlage = 1 und Abstand = 2 |
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)
Beispiel 2
- Anzahl der Arbeitstage zwischen dem 01.01.1970 und Heute im Kalender „BK"
- Ergebnis:
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)
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))