Toolmaker Produkt-Dokumentation

Prozeduren für beide Programm-Arten (WRK und CHG)

Inhaltsübersicht

Ausgeben von Informationen im Header

Mit Hilfe der Header-Funktionen können sowohl bei Work- als auch bei Change Tables im Kopf-Bereich zusätzliche Informationen / Texte ausgegeben werden.
Die folgenden Funktionen stehen zur Verfügung:

  • Wx_HdrText - Beliebige Texte im Header anzeigen
  • Wx_HdrFile() - Definition der Dateien, aus denen die Header-Felder stammen
  • Wx_HdrFld() - Definition der Header-Felder
  • Wx_HdrFileFld() - Definition der Datei sowie des ersten Header-Felds



Wx_HdrText() – Beliebigen Text in Header ausgeben

Mit Hilfe der Prozedur Wx_HdrText() können sowohl in Change als auch Work-Programmen Informationen in dem Header-Bereich angezeigt werden.


Wx_HdrTxt() - Prototyp
***************************************************************************
P* Procedure name: Wx_HdrText
P* Purpose: Header Text Information
P* Returns:
P* Parameters: ParField => Field
P* Parameters: ParMsg => Message-Id or Text
P* Parameters: ParValue => Message-Id/Value to be displayed as Character
P* Parameters: ParOptions => Options
***************************************************************************
D Wx_HdrText...
D PR OPDesc
D ParField Like(FldRef.NameSQL) Const
D ParMsg Like(FldRef.MsgData) Const
D ParValue Like(FldRefCGI.DftValue) Const
D ParOptions Like(FldRefCGI.Options) Const
D Options(*NoPass)


Bereich

Die Prozedur Wx_HdrText kann verwendet werden

  • nach dem Befehl zum Öffnen der Anzeige
    • Wx_OpenHtmlWRK
    • Wx_OpenHtmlCHG
  • vor der Definition der zu verwendenden Buttons
    • Wx_WrkBtn

Syntax

Wx_HdrText(<fieldname> : <description> :  <content> [: <headeroptions>]);

Parameter

fieldname - Eindeutige Kennung des Header-Feldes

Es ist nicht erforderlich, dass <fieldname> in einer Datei/Tabelle/View hinterlegt ist. Die Kennung muss jedoch innerhalb des Headers eindeutig sein.

description - Beschreibung, die links neben dem Header-Feld angezeigt wird

Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder leer oder mit *Blanks gefüllt übergeben.
Soll eine Beschreibung angezeigt werden, kann diese entweder direkt oder als Message-Id angegeben werden.
Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für die Anwendung hinterlegt sein.

content- Header-Informationen

Beliebiger alphanumerischer Text, der im Header angezeigt werden wird.
Der Text kann entweder direkt oder als Message-Id angegeben werden.
Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für die Anwendung hinterlegt sein.

headeroptions - Aufbereitungsoptionen

optional

Aufbereitungsoptionen gemäß Aufbereitungsoptionen für Header

Beispiele für den Aufruf

Wx_HdrText('EVENT': 'KXD0022': %Trim(GblDS.KGKNGR) + ' ' + %Trim(EVKGBEZ)); //Kongress

Wx_HdrText('STRDAT': 'Von/Bis': %Char(GblDS.KGSTRDAT: *EUR) + ' - ' + %Char(GblDS.KGENDDAT: *EUR)); //Zeitraum

If %Len(%Trim(GblDS.KGHOTEL)) <> *Zeros;
   Wx_HdrText('KGHOTEL': 'KXD0041': %Trim(GblDS.KGHOTEL + ' ' + GblDS.KGHOTELORT + ' ' + GblDS.KGHOTELSTR + ' ' + GblDS.KGHOTELTEL));
EndIf;



Abbildung 35 : Ergebnis aus dem vorherigen Source Code

Wx_HdrFile() – Datei für Header-Informationen

Sofern in den Header-Informationen im Programm verwendete Feld-Werte angezeigt werden sollen, müssen zunächst die Dateien/Tabellen/Views für die Header-Informationen definiert werden.

Die für die Header-Informationen definierten Dateien/Tabellen/Views werden auch zur Definition der Filter- und Spalten in den Work-Programmen bzw. zur Definition der Ein-/Ausgabe-Felder in den Change Tables verwendet.

Werden für Work-Programme mehrere Dateien/Tabellen/Views hinterlegt, so muss die Verknüpfung zwischen den einzelnen Dateien/Tabellen/Views angegeben werden. In Change-Programmen ist die Angabe der Verknüpfungen nicht erforderlich.

Die Join-Anweisungen müssen in gültiger SQL Notation angegeben werden.

Anmerkung:Anstatt die Verknüpfungen in der Funktion Wx_FltFile anzugeben, wird empfohlen SQL Views zu erstellen, die die alle Spalten, sowie die Verknüpfungen enthalten.

Wx_HdrFile() - Prototyp
***************************************************************************
P* Procedure name: Wx_HdrFile
P* Purpose: Define Files used for Header
P* --> Up to 10 Files can be specified
P* --> If more than 1 File is specified: Join Conditions are
P* required
P* Returns:
P* Parameters: ParFile1 => File/Table 1
P* Parameters: ParFile2 => File/Table 2 (Optional)
P* Parameters: ParJoin2 => Join Previous Tables and Table 2 (Optional)
P* Parameters: ParFile3 => File/Table 3 (Optional)
P* Parameters: ParJoin3 => Join Previous Tables and Table 3 (Optional)
P* Parameters: ParFile4 => File/Table 4 (Optional)
P* Parameters: ParJoin4 => Join Previous Tables and Table 4 (Optional)
P* Parameters: ParFile5 => File/Table 5 (Optional)
P* Parameters: ParJoin5 => Join Previous Tables and Table 5 (Optional)
P* Parameters: ParFile6 => File/Table 6 (Optional)
P* Parameters: ParJoin6 => Join Previous Tables and Table 6 (Optional)
P* Parameters: ParFile7 => File/Table 7 (Optional)
P* Parameters: ParJoin7 => Join Previous Tables and Table 7 (Optional)
P* Parameters: ParFile8 => File/Table 8 (Optional)
P* Parameters: ParJoin8 => Join Previous Tables and Table 8 (Optional)
P* Parameters: ParFile9 => File/Table 9 (Optional)
P* Parameters: ParJoin9 => Join Previous Tables and Table 9 (Optional)
P* Parameters: ParFile10 => File/Table 10 (Optional)
P* Parameters: ParJoin10 => Join Previous Tables and Table 10 (Optional)
***************************************************************************
D Wx_HdrFile...
D PR OPDesc
D ParFile1 Like(FldRef.NameSQL) Const
D ParFile2 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin2 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile3 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin3 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile4 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin4 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile5 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin5 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile6 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin6 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile7 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin7 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile8 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin8 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile9 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin9 Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParFile10 Like(FldRef.NameSQL) Const
D Options(*NoPass)
D ParJoin10 Like(FldRef.TextVar) Const
D Options(*NoPass)

Syntax

Wx_HdrFile(<file1> [: <fileN> : <joinforfileN>] ← bis zu 9 Mal wiederholt);

Parameter

file1- Physische Datei/Tabelle/View

Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128 Zeichen) angegeben werden.

fileN- Kurzer System- oder langer SQL Name

optional

N geht von 2 - 10

joinforfileN- Verknüpfung zwischen Datei/Tabelle/View 1 und 2

optional
- nur in WRK-Programmen erforderlich, wenn datei2 angegeben ist
- in CHG-Programmen ist die Angabe der Verknüpfung nicht erforderlich

Beispiel:

'Inner Join MYFILE2 on Key1File1 = Key1File2 and Key2File1 = Key2File2'

file3- file10 - analog zu datei2

joindforfile3 - joinforfile10 - analog zu joindefinitionfürdatei2

Beispiele für den Aufruf

Wx_HdrFile('AuftrKopfX');
Wx_HdrFile('AuftrKopfX' : 'AuftrPosX' : 'Join AuftrPosX on AuftrKopfX.BestNr = AuftrPosX.BestNr' : 'KundSt' : 'Left Outer Join KundSt on KundeNr = KndNr');


Wx_HdrFld() – Feld für Header-Informationen

Ausgabe-Felder mit Header-Informationen, die in den zuvor definierten Tabellen hinterlegt sind, können mit der Prozedur Wx_HdrFld() ausgegeben werden.

Zusätzlich zu dem Feld-Inhalt, kann ein zusätzlicher String (z.B. Artikel-Bezeichnung zu Artikel-Nr.) angegeben werden. Beide Texte werden miteinander verknüpft, durch ein Blank getrennt ausgegeben.

Werden Header-Felder in Worktables definiert, kann über Option AddFlt dafür gesorgt werden, dass diese Header-Informationen in der Where-Anweisung des automatisch generierten SQL Select-Statement berücksichtigt werden.

Wird das Header-Feld als Filter berücksichtigt, kann zusätzlich der Vergleichsoperator für die Where-Bedingung angegeben werden.

WxHdrFld() - Prototyp
***************************************************************************
P* Procedure name: Wx_HdrFld
P* Purpose: Define Fields used for Header
P* Returns:
P* Parameters: ParField => Field
P* Parameters: ParMsg => Message-Id or Text
P* Parameters: ParValue => Value to Display as Character Value
P* Parameters: ParDescr => Additional Descriptions as Character Value
P* Parameters: ParOptions => Options
P* Parameters: ParCompare => Comparison Operator (Optional) --> Default: =
P* (=, <>, >=, <=, <, >, Like, Not Like,
P* Not LikeLeft, LikeRight, Not LikeRight)
***************************************************************************
D Wx_HdrFld...
D PR OPDesc
D ParField Like(FldRef.NameSQL) Const
D ParMsg Like(FldRef.MsgData) Const
D ParValue Like(FldRefCGI.DftValue) Const
D ParDescr Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParOptions Like(FldRefCGI.Options) Const
D Options(*NoPass)
D ParCompare Like(FldRef.Text15V) Const
D Options(*NoPass)


Syntax

Wx_HdrFileFld(<fieldname>: <description>: <value> [ : <valueinfo> : <hdroptions> : <compare> ]);

Parameter

fieldname - Name des Ein-/Ausgabefeldes

Das Ein-/Ausgabe-Feld (der angegebene Feld-Name) muss in den zuvor definierten Tabellen vorhanden sein.

Wahlweise kann der kurze System-Name oder der lange SQL –Name angegeben werden.

description -  die links neben dem Filter-Feld angezeigt wird

Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder leer oder mit *Blanks gefüllt übergeben.

Soll eine Beschreibung angezeigt werden, kann diese entweder direkt oder als Message-Id angegeben werden.

Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für die Anwendung hinterlegt sein.

value- Alphanumerischer Feldwert

Sofern es sich um das Feld, das die Header-Informationen enthält nicht um ein alphanumerisches Feld handelt, muss der Feld-Inhalt mit Hilfe der Built-in-Funktion %Char() konvertiert werden.

valueinfo - zusätzliche alphanumerische Informationen

optional

Neben dem Feld-Wert können weitere alphanumerische Informationen angegeben werden (z.B. ParValue=Artikel-Nr. und ParAddInfo=Artikel-Bezeichnung)

Der Feldwert und die zusätzlichen Informationen (sofern angegeben) werden aufeinanderfolgend in der gleichen Zeile nur durch ein Blank getrennt ausgegeben.

headeroptions - Aufbereitungsoptionen

optional

Aufbereitungsoptionen gemäß Aufbereitungsoptionen für Header

compare - Vergleichsoperator

Nur für WRK-Programme

optional, wird nur berücksichtigt, wenn im Parameter headeroptions der Wert AddFlt angegeben wurde

Wenn in den <headeroptions> der Wert "AddFlt" angegeben wurde, wird der Header-Wert als Filter-Information in die Where-Bedingung des automatisch erstellten Select-Statement integriert.

Beispiele für den Aufruf

Wx_HdrFileFld('AuftrKVX01': 'Firma': 'FLD0007' : DSCsrC01.Firma: '' : 'AddFlt');

Wx_HdrFld('BestNr': 'FLD0025': DSCsrC01.BestNr: '' : 'AddFlt');

Wx_HdrFld('KundeNr': 'FLD0001': DSCsrC01.KundeNr : DSCsrC01.NameOrt);

Wx_HdrFld('LiefTerm' : 'FLD0030' : DSCsrC01.LiefTerm);

Wx_HdrFld('LiefBed' : 'FLD0028' : DSCsrC01.LiefBed : DSCsrC01.LiefBedT);

Wx_HdrFld('AuftrArt':'FLD0027': DSCsrC01.AuftrArt : DSCsrC01.AuftrArtT);

Wx_HdrFld('KopfStatus': 'FLD0026': DSCsrC01.KopfStatus : DSCsrC01.KopfStsT);


Abbildung 36: Ergebnis aus Source Code 231

Wx_HdrFldUC2() – Unicode-Feld für Header-Informationen

##QSTRSC

Wx_HdrFileFld() – Datei und erstes Feld für Header

Sofern nur auf eine einzige physische Datei/Tabelle/View zugegriffen wird, kann diese Datei/Tabelle/View über die Funktion Wx_HdrFileFld() direkt zusammen mit dem ersten Header-Feld definiert werden.

Bei dieser Funktion wird die Datei/Tabelle/View als 1. Parameter übergeben. Die folgenden Parameter entsprechen den Parametern (Anzahl, Reihenfolge und Schlüssel-Wort CONST), die für Prozedur Wx_HdrFld() übergeben werden können.

Wx_HdrFileFld() - Prototyp
***************************************************************************
P* Procedure name: Wx_HdrFileFld
P* Purpose: Define Fields used for Header
P* Returns:
P* Parameters: ParFile => File
P* Parameters: ParField => Field
P* Parameters: ParValue => Value to Display as Unicode Value
P* Parameters: ParDescr => Additional Descriptions as Unicode Value
P* Parameters: ParMsg => Message-Id or Text
P* Parameters: ParOptions => Options
P* Parameters: ParCompare => Comparison Operator (Optional) --> Default: =
P* (=, <>, >=, <=, <, >, Like, Not Like,
P* Not LikeLeft, LikeRight, Not LikeRight)
***************************************************************************
D Wx_HdrFileFld...
D PR OPDesc
D ParFile Like(FldRef.NameSQL) Const
D ParField Like(FldRef.NameSQL) Const
D ParMsg Like(FldRef.MsgData) Const
D ParValue Like(FldRefCGI.DftValue) Const
D ParDescr Like(FldRef.TextVar) Const
D Options(*NoPass)
D ParOptions Like(FldRefCGI.Options) Const
D Options(*NoPass)
D ParCompare Like(FldRef.Text15V) Const
D Options(*NoPass)


Syntax

Wx_HdrFileFld(<filename>: <fieldname> : <description> : <value> [ : <valueinfo> :<hdroptions> : <compare> ]);

Parameter

filename - Datei/Tabelle/View

Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128 Zeichen) angegeben werden.

Analog Parameter file1 in Funktion Wx_HdrFile()

fieldname - Name des Ein-/Ausgabefeldes

Das Ein-/Ausgabe-Feld (der angegebene Feld-Name) muss in den zuvor definierten Tabellen vorhanden sein.

Wahlweise kann der kurze System-Name oder der lange SQL –Name angegeben werden.

description -  die links neben dem Filter-Feld angezeigt wird

Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder leer oder mit *Blanks gefüllt übergeben.

Soll eine Beschreibung angezeigt werden, kann diese entweder direkt oder als Message-Id angegeben werden.

Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für die Anwendung hinterlegt sein.

value- Alphanumerischer Feldwert

Sofern es sich um das Feld, das die Header-Informationen enthält nicht um ein alphanumerisches Feld handelt, muss der Feld-Inhalt mit Hilfe der Built-in-Funktion %Char() konvertiert werden.

valueinfo - zusätzliche alphanumerische Informationen

optional

Neben dem Feld-Wert können weitere alphanumerische Informationen angegeben werden (z.B. ParValue=Artikel-Nr. und ParAddInfo=Artikel-Bezeichnung)

Der Feldwert und die zusätzlichen Informationen (sofern angegeben) werden aufeinanderfolgend in der gleichen Zeile nur durch ein Blank getrennt ausgegeben.

headeroptions - Aufbereitungsoptionen

optional

Aufbereitungsoptionen gemäß Aufbereitungsoptionen für Header

compare - Vergleichsoperator

Nur für WRK-Programme

optional, wird nur berücksichtigt, wenn im Parameter headeroptions der Wert AddFlt angegeben wurde

Wenn in den <headeroptions> der Wert "AddFlt" angegeben wurde, wird der Header-Wert als Filter-Information in die Where-Bedingung des automatisch erstellten Select-Statement integriert.

Beispiele für den Aufruf

Wx_HdrFileFld('AuftrKVX01': 'Firma' : 'FLD0007': DSCsrC01.Firma: '' : 'AddFlt');

Wx_HdrFileFld('WXUMSKNDJS': 'Jahr': 'FLD0013': GblJahr: '' : 'AddFlt');

Wx_HdrFileFldUC2() – Unicode-Feld für Header-Informationen

##QSTRSC

Setzen und Ermitteln von Parameter-Werten

CGI-Programme werden vom Browser aufgerufen und haben keine Parameter(-Liste). Mit RPGWX können jedoch bis zu 5 alphanumerische allgemeine (Parameter-)Werte gesetzt und an das Folge-Programm übergeben werden.

Das Setzen und Ermitteln der Parameter-Werte erfolgt über entsprechende Prozedur-Aufrufe.

Die Parameter-Werte können entweder einzeln oder blockweise (mit Hilfe einer Feldgruppe gesetzt bzw. ermittelt werden.

Das Setzen der Parameter-Werte sollte am Besten unmittelbar vor der Ausgabe des HTML-Dokuments erfolgen.

Anstatt die SET-Funktionen vor Ausgabe des HTML-Dokuments aufzurufen, können, sofern erforderlich die Parameter-Werte auch direkt beim Aufruf der Prozeduren Wx_WrtChgTbl() übergeben werden.

Bei Verwendung der SET-Funktionen können die einzelnen Parameter (bzw. deren Werte) gezielt gesetzt werden, z.B. nur der 3. Parameter. Soll bei Aufruf der Funktionen Wx_WrtWrkTbl() oder Wx_WrtChgTbl() nur der 3. Parameter gesetzt werden, müssen Parameter-Wert 1 und 2 leer übergeben werden.

Das Ermitteln der eingehenden Parameter sollte am Besten unmittelbar nach Aufruf des (Folge-)Programms erfolgen.

Der Nachteil bei Verwendung der allgemeinen Parameter ist, dass die Parameter 1-5 von unterschieldichen Programmen unterscheidlich belegt werden können. Erfolgt z.B. der Aufruf eines Programms aus Programm x wird in Parm1 der Mandant übergeben. Erfolgt der Aufruf aus Programm y wird im Parm 1 die Bestell-Nr. übergeben.

Aus diesem Grund gibt es eine weitere Möglichkeit der Parameterübergabe in Form von benannten Parametern. Der Paramter erhält einen Namen und wird einmalig für die Session gespeichert, d.h. auf diese speziellen Parameter kann aus allen Programmen, die unter der gleichen Session-Nr. laufen zugegriffen werden.

Bei benannten Parametern muss der Parameter-Name sowie der Parmeter-Wert im gewünschten Format übergeben werden. Der Parameter-Name kann in jeder beliebigen Groß/Klein-Schreibweise übergeben werden. Intern wird der Name in Großbuchstaben konvertiert.

Sofern beim Setzen des Parameter-Wertes für die Session bereits ein Parameter mit dem gleichen Namen gesetzt ist, wird der Paramter-Wert überschrieben.

Sofern beim empfangen des Parameter kein Parameter mit dem gewünschten Namen gefunden wurde, erfolgt kein Abbruch. Stattdessen wird der Default-Wert für den entsprechenden Datentypen ausgegeben.

Durch entsprechende Namenskonventionen kann sichergestellt werden, dass die gewünschten Parameter-Werte auch in den aufgerufenen Programmen korrekt empfangen und auch gesetzt werden können.

Das Setzen und Ermitteln der benannten Parameter-(Werte) erfolgt durch den Aufruf von RPGWX-Prozeduren. Für die verschiedenen Datentypen gibt es jeweils eine eigene Prozedur:

  • Char
  • ArrChar
  • UC (Unicode)
  • ArrUC

Für benannte Parameter gibt es noch die weiteren Datentypen:

  • Dec
  • Int
  • Date
  • Time
  • Timestamp

Wx_SetParmXxxx - Parameter-Werte setzen

Wx_SetParmChar() – Setzen Parameter

Einzelne alphanumerische Parameter-Werte können über die Prozedur Wx_SetParmChar() gesetzt werden.

Die numerische Position des Parameters sowie der alphanumerische Parameter-Wert müssen übergeben werden.

Wx_SetParmChar() - Prototoyp
***************************************************************************
P* Procedure name: Wx_SetParmChar
P* Purpose: Store a Character Parameter
P* = Parameter No between 1 and 5 allowed
P* Returns:
P* Parameters: ParNO => Parameter-No
P* Parameters: ParValue => Character Parameter Value
***************************************************************************
D Wx_SetParmChar...
D PR OpDesc
D ParNo 3U 0 Const
D ParValue Like(FldRefcGI.DftVAlue) Const


Syntax

Wx_SetParmChar(<parno>: <parvalue>)

Parameter

parno - Parameter-Position z.Z. 1 – 5 zulässig

parvalue - Alphanumerischer Parameter-Wert

Numerische Werte oder Datums- und Zeit-Werte müssen mit Hilfe der Built-In-Funktion %CHAR() in alphanumerische Werte konvertiert werden.

Unicode-Werte werden ab Release 7.1 automatisch konvertiert. Vor Release 7.1 müssen Unicode-Werte ebenfalls mit Hilfe der Built-in-Funktion %CHAR() konvertiert werden.

Beispiel für den Aufruf

Wx_SetParmChar(1: ArtikelBez);

Wx_SetParmChar(3: %Char(Umsatz * MWST));

Wx_SetParmArrChar() – Setzen mehrere Parameter

Mehrere alphanumerische Parameter-Werte können mit Hilfe einer Feldgruppe mit RefElemParm (aktuell 5) Elementen über die Prozedur Wx_SetParmArrChar() gesetzt werden.

In der Feldgruppe müssen lediglich die Parameter-Werte angegeben werden. Die Position entspricht dem Feldgruppen-Index.

Wx_SetParmArrChar() - Prototyp
***************************************************************************
P* Procedure name: Wx_SetParmArrChar
P* Purpose: Store all Character Parameter (Passed as Character Array)
P* Returns:
P* Parameters: ParArrValue = Array with all Parameter Values
***************************************************************************
D Wx_SetParmArrChar...
D PR OpDesc
D ParArrValue Like(FldRefCGI.DftValue) Const
D Dim(RefElemParm)


Syntax

Wx_SetParmArrChar(<arraychar>));

Parameter

arraychar - Feldgruppe mit z.Zt. aktuell 5 Elementen

Die Anzahl der Elemente in der Feldgruppe ist definiert in RefElemParm, derzeit ist das 5.

Parameter-Werte werden als Element-Werte übergeben

Numerische Werte oder Datums- und Zeit-Werte müssen mit Hilfe der Built-In-Funktion %CHAR() in alphanumerische Werte konvertiert werden.

Unicode-Werte werden ab Release 7.1 automatisch konvertiert. Vor Release 7.1 müssen Unicode-Werte ebenfalls mit Hilfe der Built-in-Funktion %CHAR() konvertiert werden.

Beispiele für den Aufruf

D MyArrParm S Like(FldRef.TextVar)
D Dim(RefElemParm)
*--------------------------------------------------------------------------------
/Free
MyArrParm(1) = ArtikelBez;
MyArrParm(2) = %Char(Umsatz * MWST));
Wx_SetParmArrChar(MyArrParm));
/End-Free

Wx_SetParmUC() – Setzen Unicode-Parameter

Einzelne Unicode-Parameter-Werte können über die Prozedur Wx_SetParmUC() gesetzt werden.
Die numerische Position des Parameters, sowie der Unicode-Parameter-Wert müssen übergeben werden.

Prototype

***************************************************************************
P* Procedure name: Wx_SetParmUC
P* Purpose: Store a Unicode Parameter
P* = Parameter No between 1 and 5 allowed
P* Returns:
P* Parameters: ParNO => Parameter-No
P* Parameters: ParValue => Unicode Parameter Value
***************************************************************************
D Wx_SetParmUC...
D PR OpDesc
D ParNo 3U 0 Const
D ParValue Like(FldRefCGIUC.DftValue) Const
Source Code 153125 : Prototype - Prozedur Wx_SetParmUC() – Unicode-Parameter-Wert setzen

Parameter

  • ParNoParameter-Position z.Z. 1 – 5 zulässig
  • ParValueUnicode-Parameter-Wert

Numerische Werte oder Datums- und Zeit-Werte müssen mit Hilfe der Built-In-Funktionen %CHAR() und %UCS2() in Unicode-Werte konvertiert werden.
Alphanumerische Werte werden ab Release 7.1 automatisch konvertiert. Vor Release 7.1 müssen alphanumerische Werte mit Hilfe der Built-in-Funktion %UCS2() konvertiert werden.

Beispiel für den Aufruf

Wx_SetParmUC(1: ArtikelBez);
Wx_SetParmUC(2: %UCS2(KundeName));
Wx_SetParmUC(3: %UCS2(%Char(Umsatz * MWST)));
Source Code 154126: Aufruf Prozedur Wx_SetParmUC() – Unicode-Parameter-Wert setzen

Wx_SetParmArrUC() – Setzen mehrere Unicode- Parameter

Mehrere Unicode-Parameter-Werte können mit Hilfe einer Feldgruppe mit RefElemParm (aktuell 5) Elementen über die Prozedur Wx_SetParmArrUC() gesetzt werden.
In der Feldgruppe müssen lediglich die Parameter-Werte angegeben werden. Die Position entspricht dem Feldgruppen-Index.

Prototype

***************************************************************************
P* Procedure name: Wx_SetParmArrUC
P* Purpose: Store all Unicode Parameter (Passed as Unicode Array)
P* Returns:
P* Parameters: ParArrValue = Array with all Parameter Values
***************************************************************************
D Wx_SetParmArrUC...
D PR OpDesc
D ParArrValue Like(FldRefCGIUC.DftValue) Const
D Dim(RefElemParm)
Source Code 155127 : Prototype - Prozedur Wx_SetParmArrUC() – Unicode-Parameter-Werte setzen

Parameter

  • ParArrValue Feldgruppe mit RefElemParm (aktuell 5) Elementen

Parameter-Werte werden als Element-Werte übergeben
Numerische Werte oder Datums- und Zeit-Werte müssen mit Hilfe der Built-In-Funktionen %UCS2() und %CHAR() in Unicode-Werte konvertiert werden.
Alphanumerische Werte werden ab Release 7.1 automatisch konvertiert. Vor Release 7.1 müssen alphanumerische Werte mit Hilfe der Built-in-Funktion %UCS2() konvertiert werden.

Beispiel für den Aufruf

D MyArrParm S Like(FldRef.UCVar)
D Dim(RefElemParm)
*--------------------------------------------------------------------------------
/Free
MyArrParm(1) = ArtikelBez;
MyArrParm(2) = %UCS2(KundeName);
MyArrParm(2) = %UCS2(%Char(Umsatz * MWST)));
Wx_SetParmArrUC(MyArrParm));
/End-Free
Source Code 156128: Aufruf Prozedur Wx_SetParmUC() – Unicode-Parameter-Werte setzen

Wx_GetParmXxxx - Parameter-Werte empfangen

Wx_GetParmChar() – Ermitteln Parameter-Wert

Einzelne alphanumerische Parameter-Werte können über die Prozedur Wx_GetParmChar() ermittelt werden.
Die numerische Position des Parameters muss übergeben werden. Der alphanumerische Parameter-Wert wird als Rückgabe-Wert ausgegeben

Prototype

***************************************************************************
P* Procedure name: Wx_GetParmChar
P* Purpose: Get Character Value for a specified Parameter
P* = Parameter No between 1 and 5 allowed
P* Returns: Character Value for the specified parameter
P* Parameters:
***************************************************************************
D Wx_GetParmChar...
D PR Like(FldRef.TextVar) OpDesc
D ParNo 3U 0 Const
Source Code 157129 : Prototype - Prozedur Wx_GetParmChar() - Alphanumerischen Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Alphanumerischer Parameter-Wert


  • ParNo Parameter-Position z.Z. 1 – 5 zulässig

Beispiel für den Aufruf

MyCharVar = Wx_GetParmChar(1);
MyNextVar = Wx_GetParmChar(2);
Source Code 158130: Aufruf Prozedur Wx_GetParmChar() - Alphanumerischen Parameter-Wert ermitteln

Wx_GetParmArrChar() – Ermitteln mehrere alphanumerische Parameter

Mehrere alphanumerische Parameter-Werte können mit Hilfe einer Feldgruppe mit RefElemParm (aktuell 5) Elementen über die Prozedur Wx_GetParmArrChar() gesetzt werden.
In der Feldgruppe müssen lediglich die Parameter-Werte angegeben werden. Die Position entspricht dem Feldgruppen-Index.

Prototype

***************************************************************************
P* Procedure name: Wx_GetParmArrChar
P* Purpose: Get Character Array for all parameter Values
P* = Currently 5 Parameters are allowed
P* Returns: Array Parameter Character Values
P* Parameters:
***************************************************************************
D Wx_GetParmArrChar...
D PR Like(FldRef.TextVar) OpDesc
D Dim(RefElemParm)
Source Code 159131 : Prototype - Prozedur Wx_GetParmArrChar() - Alphanumerische Parameter-Werte ermitteln

Parameter

  • Rückgabe-Wert Feldgruppe mit RefElemParm (aktuell 5) Elementen

Beispiel für den Aufruf

D MyArrParm S Like(FldRef.TextVar)
D Dim(RefElemParm)
*--------------------------------------------------------------------------------
/Free
MyArrParm = Wx_GetParmArrChar();
/End-Free
Source Code 160132: Aufruf Prozedur Wx_GetParmArrChar() - Alphanumerische Parameter-Werte ermitteln

Wx_GetParmUC() – Ermitteln Unicode-Para-meter-Wert

Einzelne Unicode-Parameter-Werte können über die Prozedur Wx_GetParmUC() ermittelt werden.
Die numerische Position des Parameters muss übergeben werden. Der Unicode-Parameter-Wert wird als Rückgabe-Wert ausgegeben

Prototype

***************************************************************************
P* Procedure name: Wx_GetParmUC
P* Purpose: Get Unicode Value for a specified Parameter
P* = Parameter No between 1 and 5 allowed
P* Returns: Unicode Value for the specified parameter
P* Parameters:
***************************************************************************
D Wx_GetParmUC...
D PR Like(FldRef.UCVar) OpDesc
D ParNo 3U 0 Const
Source Code 161133 : Prototype - Prozedur Wx_GetParmUC() – Unicode-Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Unicode-Parameter-Wert


  • ParNo Parameter-Position z.Z. 1 – 5 zulässig

Beispiel für den Aufruf

MyCharVar = Wx_GetParmUC(1);
MyNextVar = Wx_GetParmUC(2);
Source Code 162134: Aufruf Prozedur Wx_GetParmUC() – Unicode-Parameter-Wert ermitteln

Wx_GetParmArrUC() – Ermitteln mehrere Unicode-Parameter-Werte

Mehrere Unicode-Parameter-Werte können mit Hilfe einer Feldgruppe mit RefElemParm (aktuell 5) Elementen über die Prozedur Wx_GetParmArrUC() gesetzt werden.
In der Feldgruppe müssen lediglich die Parameter-Werte angegeben werden. Die Position entspricht dem Feldgruppen-Index.

Prototype

***************************************************************************
P* Procedure name: Wx_GetParmArrUC
P* Purpose: Get Unicode Array for all parameter Values
P* = Currently 5 Parameters are allowed
P* Returns: Array Parameter Unicode Values
P* Parameters:
***************************************************************************
D Wx_GetParmArrUC...
D PR Like(FldRef.UCVar) OpDesc
D Dim(RefElemParm)
Source Code 163135 : Prototype - Prozedur Wx_GetParmArrUC() – Unicode-Parameter-Werte ermitteln

Parameter

  • Rückgabe-Wert Unicode-Feldgruppe mit RefElemParm (aktuell 5) Elementen

Beispiel für den Aufruf

D MyArrParm S Like(FldRef.TextVar)
D Dim(RefElemParm)
*--------------------------------------------------------------------------------
/Free
MyArrParm = Wx_GetParmArrUC();
/End-Free
Source Code 164136: Aufruf Prozedur Wx_GetParmArrUC() – Unicode-Parameter-Werte ermitteln

Wx_SetNamedParmXxxx - Benannten Parameter - setzen

Wx_SetNamedParm() – Setzen alphanumerischen Parameter

Benannte alphanumerische Parameter-Werte können über die Prozedur Wx_SetNamedParm() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************************
// Procedure name: Wx_SetNamedParm
// Purpose: Save Named Parameters - Parameter value in single byte chars
// --> Parameters passed with *Blanks are NOT saved
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************D Wx_SetNamedParm...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue Like(FldRef.TextVar) Const
Source Code 165137 : Prototype - Prozedur Wx_SetNamedParmC() - Alphanumerischen Parameter-Wert setzen

Parameter

  • ParName Paramter Name
  • ParValueAlphanumerischer Parameter-Wert

Beispiel für den Aufruf

Wx_SetNamedParm('My1ArtNr' : ArtNr);
Wx_SetNamedParm('MyKndName': KundeName));
Source Code 166138: Aufruf Prozedur Wx_SetNamedParm - Alphanumerischen Parameter-Wert setzen

Wx_SetNamedParmUC() – Setzen Unicode-Parameter

Benannte Unicode-Parameter-Werte können über die Prozedur Wx_SetNamedParmUC() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************
// Procedure name: Wx_SetNamedParmUC
// Purpose: Save Named Parameters - Value in Double Byte Char.Set Unicode
// --> Parameters passed with *Blanks are NOT saved
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************
D Wx_SetNamedParmUC...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue Like(FldRef.UCVar) Const
Source Code 167139 : Prototype - Prozedur Wx_SetNamedParmUC() – Unicode-Parameter-Wert setzen

Parameter

  • ParNameParameter-Name
  • ParValueUnicode-Parameter-Wert

Beispiel für den Aufruf

Wx_SetNamedParmUC('MyKndName': Kndame);
Wx_SetNamedParmUC('MyAddress': %Trim(Strasse) + ' ' + %Trim(HausNr));
Wx_SetNamedParmUC('MyACity': %UCS2(PLZ) + ' ' + %Trim(Ort)));
Source Code 168140: Aufruf Prozedur Wx_SetNamedParmUC() – Unicode-Parameter-Wert setzen

Wx_SetNamedParmDec() – Setzen numerischen Parameter mit Dezimal-Positionen

Benannte numerische Parameter-Werte mit Dezimal-Positionen können über die Prozedur Wx_SetNamedParmDec() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************
// Procedure name: Wx_SetNamedParmDec
// Purpose: Save Named Parameters - Parameter as Packed/Zoned num. value
// --> Parameters passed with *Zeros are saved with Zero Value
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************
D Wx_SetNamedParmDec...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue Like(FldRef.DftDec) Const
Source Code 169141 : Prototype - Prozedur Wx_SetNamedParmUC() – Unicode-Parameter-Wert setzen

Parameter

  • ParNameParameter-Name
  • ParValue Numerischer Wert ohne oder mit bis zu 9 Dezima-Positionen

Beispiel für den Aufruf

Wx_SetNamedParmDec('MyPreis': Preis);
Wx_SetNamedParmDec('MyTotal' : Menge * Preis);
Wx_SetNamedParmDec('MyMWST' : Total * VAT);
Source Code 170142: Aufruf Prozedur Wx_SetNamedParmDec() – numeriischenParameter-Wert mit Dezimal-Stellen setzen

Wx_SetNamedParmInt() – Setzen ganzzahligen numerischen Parameter

Benannte ganzzahlige numerische Parameter-Werte können über die Prozedur Wx_SetNamedParmInt() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************
// Procedure name: Wx_SetNamedParmInt
// Purpose: Save Named Parameters - Parameter as integer value
// --> Parameters passed with *Zeros are saved with Zero Value
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************
D Wx_SetNamedParmInt...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue 20I 0 Const
Source Code 171143 : Prototype - Prozedur Wx_SetNamedParmInt() – ganzzahligen Parameter-Wert setzen

Parameter

  • ParNameParameter-Name
  • ParValue Ganzzahliger numerischer Wert

Beispiel für den Aufruf

Wx_SetNamedParmInt('MyAnzAnw': AnzAnwesend);
Wx_SetNamedParmInt('MyAnzTeilN' : AnzTeiln);
Wx_SetNamedParmInt('MyAnzSonst' : AnzAnwesend - AnzTeiln);
Source Code 172144: Aufruf Prozedur Wx_SetNamedParmInt() – Ganzzahligen Parameter-Wert setzen

Wx_SetNamedParmDate() – Setzen Datums-Parameter

Benannte Datums-Parameter-Werte können über die Prozedur Wx_SetNamedParmDate() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************
// Procedure name: Wx_SetNamedParmDate
// Purpose: Save Named Parameters - Parameter value as Date value
// --> Dates are saved in the *ISO Format (YYYY-MM-DD)
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************
D Wx_SetNamedParmDate...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue D DatFmt(*ISO) Const
Source Code 173145 : Prototype - Prozedur Wx_SetNamedParmIDate() – Datums-Parameter-Wert setzen

Parameter

  • ParNameParameter-Name
  • ParValue Datums-Wert

Beispiel für den Aufruf

Wx_SetNamedParmDate('MyBestDat': AKBESTDAT);
Wx_SetNamedParmDate('MyMHD' : %Date() + %Days(30));
Wx_SetNamedParmDate('MyHVD' : MHD - %(Days(5));
Source Code 174146: Aufruf Prozedur Wx_SetNamedParmDate() – Datums-Parameter-Wert setzen

Wx_SetNamedParmTime() – Setzen Zeit-Parameter

Benannte Zeit-Parameter-Werte können über die Prozedur Wx_SetNamedParmTime() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************
// Procedure name: Wx_SetNamedParmTime
// Purpose: Save Named Parameters - Parameter value as time value
// --> Dates are saved in the *ISO Format (HH.MM.SS)
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************
D Wx_SetNamedParmTime...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue T TimFmt(*ISO) Const
Source Code 175147 : Prototype - Prozedur Wx_SetNamedParmITime() – Zeit-Parameter-Wert setzen

Parameter

  • ParNameParameter-Name
  • ParValue Zeit-Wert

Beispiel für den Aufruf

Wx_SetNamedParmTime('MyStrTim': StartZeit);
Wx_SetNamedParmTime('MySchichtBeg': T'06.00.00');
Wx_SetNamedParmTime('MyPause' : SchichtBeg + %Hours(3));
Source Code 176148: Aufruf Prozedur Wx_SetNamedParmTimestamp() – Zeitmarken-Parameter-Wert setzen

Wx_SetNamedParmTimestamp() – Setzen Zeitmarken-Parameter

Benannte Zeitmarken-Parameter-Werte können über die Prozedur Wx_SetNamedParmTimestamp() gesetzt werden.
Der Name sowie der zu sichernde Wert des benannten Parameters müssen übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden

Prototype

**********************************************************************************
// Procedure name: Wx_SetNamedParmTimestamp
// Purpose: Save Named Parameters - Parameter value as timestamp value
// Returns:
// Parameter: ParParName => Parameter Name
// Parameter: ParValue => Value
**********************************************************************************
D Wx_SetNamedParmTimestamp...
D PR OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
D ParValue Z Const
Source Code 177149 : Prototype - Prozedur Wx_SetNamedParmITimestamp() – Zeitmarken-Parameter-Wert setzen

Parameter

  • ParNameParameter-Name
  • ParValue Zeitmarken-Wert

Beispiel für den Aufruf

Wx_SetNamedParmInt('MyStart': %Timestamp);
Wx_SetNamedParmInt('MySchichtBeg': %Date() + T'06.00.00');
Wx_SetNamedParmInt('MyPause' : SchichtBeg + %Hours(3));
Source Code 178150: Aufruf Prozedur Wx_SetNamedParmZeit() – Zeit-Parameter-Wert setzen

Wx_GetNamedParmXxxx - Benannten Parameter empfangen

Wx_GetNamedParm() – Ermitteln benannten alphanumerischen Parameter-Wert

Einzelne alphanumerische Parameter-Werte für benannte Parameter können über die Prozedur Wx_GetNamedParm() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

**********************************************************************************
// Procedure name: Wx_GetNamedParm
// Purpose: Retrieve the character value for the named parameter in SBCS
// Not Found --> Return ''
// Returns: Parameter value as Character value
// Parameter: ParParName => Parameter Name
**********************************************************************************
D Wx_GetNamedParm...
D PR Like(FldRef.TextVar) OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 179151 : Prototype - Prozedur Wx_GetNamedParm() – Alphanumerischen benannten Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Alphanumerischer Parameter-Wert


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

ParArtNr = Wx_GetNamedParm('My1ArtNr');
ParName = Wx_GetNamedParm('KundeName');
Source Code 180152: Aufruf Prozedur Wx_GetNamedParm() - Alphanumerischen Parameter-Wert ermitteln

Wx_GetNamedParmUC() – Ermitteln benannten Parameter-Wert in Unicode

Einzelne Parameter-Werte in Unicode für benannte Parameter können über die Prozedur Wx_GetNamedParmUC() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

**********************************************************************************
// Procedure name: Wx_GetNamedParmUC
// Purpose: Retrieve the value for the named parameter in DBCS Unicode
// Not Found --> Return ''
// Returns: Return Parameter value as unicode value
// Parameter: ParParName => Parameter Name
**********************************************************************************
D Wx_GetNamedParmUC...
D PR Like(FldRef.UCVar) OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 181153 : Prototype - Prozedur Wx_GetNamedParmUC() – Unicode-Wert für benannten Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Parameter-Wert in DBCS (Double Byte Character Set) Unicode


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

LocName = Wx_GetNamedParmUC('MyKndName');
LocStreet = Wx_GetNamedParmUC('MyAddress');
LocCity = Wx_GetNamedParmUC('MyCity');
Source Code 182154: Aufruf Prozedur Wx_GetNamedParmUC() - Parameter-Wert in Unicode ermitteln

Wx_GetNamedParmDec() – Ermitteln benannten numerischen Parameter-Wert mit Dezimal-Positionen

Einzelne numerische Parameter-Werte mit Dezimal-Positionen für benannte Parameter können über die Prozedur Wx_GetNamedParmDec() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

******************************************************************************
// Procedure name: Wx_GetNamedParmDec
// Purpose: Retrieve the value for the named parameter as Packed Value
// Not Found --> Return *Zeros
// Returns: Return Parameter value as Packed Value
// Parameter: ParParName => Parameter Name
******************************************************************************
D Wx_GetNamedParmDec...
D PR Like(FldRef.DftDec) OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 183155 : Prototype - Prozedur Wx_GetNamedParmDec() – numerischen Parameter-Wert mit Dezimal-Positionen für benannten Parameter ermitteln

Parameter

  • Rückgabe-Wert Numerischen Parameter-Wert mit Dezimal-Positionen


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

LocStkPreis = Wx_GetNamedParmDec('MyPreis');
LocGesamt = Wx_GetNamedParmDec('MyTotal');
LocMWST = Wx_GetNamedParmDec('MyMwst');
Source Code 184156: Aufruf Prozedur Wx_GetNamedParmDec() – numerischen benannten Parameter mit Dezmal-Positionen ermitteln

Wx_GetNamedParmInt() – Ermitteln benannten ganzzahligen Parameter-Wert

Einzelne ganzzahlige Parameter-Werte für benannte Parameter können über die Prozedur Wx_GetNamedParmInt() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

*******************************************************************************
// Procedure name: Wx_GetNamedParmInt
// Purpose: Retrieve the value for the named parameter as Integer Value
// Not Found --> Return *Zeros
// Returns: Return Parameter value as Integer
// Parameter: ParParName => Parameter Name
*******************************************************************************
D Wx_GetNamedParmInt...
D PR 20I 0 OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 185157 : Prototype - Prozedur Wx_GetNamedParmInt() – ganzzahligen benannten Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Ganzzahliger Parameter-Wert


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

LocAnwesend = Wx_GetNamedParmInt('MyAnzAnwesen');
LocTeilnehmer = Wx_GetNamedParmInt('MyAnzTeiln');
LocSonstiges = Wx_GetNamedParmInt('MySonst');
Source Code 186158: Aufruf Prozedur Wx_GetNamedParmInt() – ganzzahligen benannten Parameter-Wert ermitteln

Wx_GetNamedParmDate() – Ermitteln benannten Datums-Parameter-Wert

Einzelne Datums-Parameter-Werte für benannte Parameter können über die Prozedur Wx_GetNamedParmDate() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

****************************************************************************
// Procedure name: Wx_GetNamedParmDate
// Purpose: Retrieve the value for the named parameter as Date Value
// Not Found --> Return *LoVal = '0001-01-01'
// Returns: Return Parameter value as Date
// Parameter: ParParName => Parameter Name
****************************************************************************
D Wx_GetNamedParmDate...
D PR D DatFmt(*ISO) OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 187159 : Prototype - Prozedur Wx_GetNamedParmIDate() – benannten Datums-Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Datums-Parameter-Wert


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

LocBestDatum = Wx_GetNamedParmDate('MyBestDat');
LocMHD = Wx_GetNamedParmDate('MyMHD');
LocHVD = Wx_GetNamedParmDate('MyHVD');
Source Code 188160: Aufruf Prozedur Wx_GetNamedParmDate() – benannten Datums-Parameter-Wert ermitteln

Wx_GetNamedParmTime() – Ermitteln benannten Zeit-Parameter-Wert

Einzelne Zeit-Parameter-Werte für benannte Parameter können über die Prozedur Wx_GetNamedParmTime() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

****************************************************************************
// Procedure name: Wx_GetNamedParmTime
// Purpose: Retrieve the value for the named parameter as Time Value
// Not Found --> Return '00.00.00'
// Returns: Return Parameter value as Time
// Parameter: ParParName => Parameter Name
****************************************************************************
D Wx_GetNamedParmTime...
D PR T TimFmt(*ISO) OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 189161 : Prototype - Prozedur Wx_GetNamedParmITime() – benannten Zeit-Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Zeit-Parameter-Wert


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

LocStartZeit = Wx_GetNamedParmTime('MyStrTim');
LocSchichtBeginn = Wx_GetNamedParmTime('MySchichtBeg');
LocBeginnPause = Wx_GetNamedParmTime('MyPause');
Source Code 190162: Aufruf Prozedur Wx_GetNamedParmDate() – benannten Zeit-Parameter-Wert ermitteln

Wx_GetNamedParmTimestamp() – Ermitteln benannten Zeitmarken-Parameter-Wert

Einzelne Zeitmarken-Parameter-Werte für benannte Parameter können über die Prozedur Wx_GetNamedParmTime() ermittelt werden.
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger Groß/Kleinschreibung übergeben werden.

Prototype

*********************************************************************************
// Procedure name: Wx_GetNamedParmTimestamp
// Purpose: Retrieve the value for the named parameter as Timestamp Value
// Not Found --> Return '00.00.00'
// Returns: Return Parameter value as Timestamp
// Parameter: ParParName => Parameter Name
*********************************************************************************
D Wx_GetNamedParmTimestamp...
D PR Z OpDesc
D ParName Like(FldRef.UrlLbl) Const
D Options(*Trim)
Source Code 191163 : Prototype - Prozedur Wx_GetNamedParmITime() – benannten Zeitmarken-Parameter-Wert ermitteln

Parameter

  • Rückgabe-Wert Zeitmarken-Parameter-Wert


  • ParName Name unter dem der Parameter-Wert gespeichert wurde

Beispiel für den Aufruf

LocStartZeitmarke = Wx_GetNamedParmTimestamp('MyStart');
LocSchichtBeginn = Wx_GetNamedParmTimestamp('MySchichtBeg');
LocBeginnPause = Wx_GetNamedParmTimestamp('MyPause');
Source Code 192164: Aufruf Prozedur Wx_GetNamedParmDate() – benannten Zeitmarken-Parameter-Wert ermitteln

Ermitteln von Filter-Werten aus Work-Programmen in Folge-Programmen

Vielfach ist es erforderlich, dass die in einem Work-Programm erfassten Filter-Informationen in einem Folge-Programm benötigt werden.

RPGWX stellt eine Reihe von Funktionen zur Verfügung über die, durch die Angabe des wie im Work-Programm benannten Filter-Namens der erfasste Filter-Wert ermittelt wird.

Die Filter-Werte können als String empfangen werden (Default). Es steht allerdings auch für jeden Ausgabe-Datentypen eine Funktion zur Verfügung. Sofern bei der Konverierung in den gewünschten Datentypen ein Konvertierungs-Problem auftritt, wird der Default-Wert des Datentypens ausgegeben.

An alle Funktionen wird der Filter-Name (aus dem Work-Programm als alphanumerischer Parameter übergaben. Die Namen können in beliebiger Groß/Kleinschreibung übergeben werden.

Die Funktionen unterscheiden sich lediglich durch die unterschiedlichen Datentypen des Rückgabe-Werte.

Folgende Prozeduren wurden bereitgestellt:

Wx_PrvFltValXxxx - Rückgabe eines Filter-Werts

Wx_PrvFltVal - Rückgabe des Filter-Werts als Single-Byte alphanumerischer String

 VarChar(4096)

Wx_PrvFltValUC -  Rückgabe des Filter-Wertes als Double-Byte Unicode

VarUCS2(4096)

Wx_PrvFltValInt - Rückgabe des Filter-Wertes als ganzzahlier Wert  Int(20)

Wx_PrvFltValDec - Rückgabe des Filter-Wertes als gepacktnumerischer Wert

 Packed(31: 9)

Wx_PrvFltValDate - Rückgabe des Filter-Wertes als Datum  Date(*ISO)

Beispiel Prototyp für Funktion Wx_PrvFltValDate

//***************************************************************************************
// Procedure name: Wx_PrvFltValDate
// Purpose: Retrieve previous filter values as Date
// The name of the filter field in the previous program must be passed
// --> Not found/invalid date values: *Loval = '0001-01-01' is returned
// Returns: Filter Value as Date
// Parameters: ParLabel => Label/Filter Name
//****************************************************************************************
DCL-PR Wx_PrvFltValDate Date(*ISO); //Filter Value
ParFltName Like(FldRef.URLLbl) Const Options(*Trim); //Filter Name
End-PR;
Source Code 193: Prototyp für Funktion Wx_PrvFltValDate
Beispiele für den Aufruf:
DCL-DS GblDSFilter Qualified Inz;
SYS_DNAME VarChar(15);
DWTotalIUD Int(10);
DataSizeMB Packed(11: 3);
DatLastUse Date(*ISO);
LastChgTSTim Time(*ISO);
LastUsedTimestp Timestamp;
End-Ds;
// Sonstiger Source Code
GblDSFilter.SYS_DNAME = Wx_PrvFltVal('SYS_DNAME');
GblDSFilter.DWTotalIUD = Wx_PrvFltValInt('DWTotalIUD');
GblDSFilter.DataSizeMB = Wx_PrvFltValDec('DataSizeMB');
GblDSFilter.DatLastUse = Wx_PrvFltValDate('DatLastUse');
GblDSFilter.LastChgTSTim = Wx_PrvFltValTime('LastChgTSTim');
GblDSFilter.LastUsedTimestp = Wx_PrvFltValTimestamp('LastUsedTS');

Source Code 194: Ermitteln Filter-Werte aus vorherigem Work-Programm

Wx_PrvFltValTime - Rückgabe des Filter-Wertes als Zeit  Time(*ISO)

Wx_PrvFltValTimestamp - Rückgabe des Filter-Wertes als Zeitmarke  Timestamp

Ermitteln von Schlüssel-Werten

In WRK-Programmen wird bei Auswahl über Kontext-Menü entweder der eindeutige Schlüssel oder die relative Satz-Nr. des/der zu bearbeitenden Datensätze für das Folge-Programm bereitgestellt.

Diese Schlüsselwerte können mit den Wx_GetDBKexXxxx - Prozeduren ermittelt werden.Für diese Datentypen steht jeweils eine Prozedur zur Verfügung:

  • Int - einzelner ganzzahliger Schlüsselwert
  • ArrInt - Gruppe von ganzzahligen Schlüsselwerten
  • Dec - einzelnter numerischer Schlüsselwert
  • ArrDec - Gruppe von numerischen Schlüsselwerten
  • Char - einzelner alphanumerischer Schlüsselwert
  • ArrChar - Gruppe von alphanumerischer Schlüsselwerten
  • UC - einzelner Unicode-Schlüsselwert
  • ArrUC - Gruppe von Unikcode-Schlüsselwerten

Bei allen Funktionen, bei denen eine Gruppe von Schlüssel-Werten zurückgegeben wird, erfolgt die Ausgabe in einer Feldgruppe (mit dem entsprechenden Datentypen).

Die Ermittlung der Schlüssel-Werte über eine Array-Funktion ist bei Mehrfach-Auswahl erforderlich, z.B. wenn mehrere Datensätze gelöscht werden sollen.

Wx_GetDBKeyXxxx - Schlüssel gewählter Sätze in einer WRK-Tabelle ermitteln

Wx_GetDBKeyInt() – Ganzzahliger Schlüssel-Wert

Mit der Funktion Wx_GetDBKeyInt() kann ein einzelner ganzzahliger Schlüssel-Wert, der im vorgelagerten Programm übergeben wurde ermittelt werden.
Der Aufruf ist z.B. erforderlich, wenn ein Datensatz im Änderungsmodus bearbeitet oder angezeigt werden sollt. Basierend auf den zurückgelieferten Informationen (Relative-Satz-Nr. oder eindeutige Id) kann der Datensatz z.B. mit dem RPG OpCode CHAIN eingelesen werden.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyInt
P* Purpose: Get Single Integer File/Table Key from Session Information
P* = Either Relative Record No or Identity Value
P* = No Decimal Positions will be returned
P* Returns: Integer File/Table Key
P* Parameters:
***************************************************************************
D Wx_GetDBKeyInt...
D PR 20I 0 OpDesc
Source Code 129101: Funktion Wx_GetDBKeyInt() - Ermitteln ganzzahligen Schlüssel-Wert

Parameter

  • Rückgabe-WertRelative Satz-Nr. oder eindeutige Id als ganzzahliger Wert


  • Keine Parameter erforderlich!

Beispiel für den Aufruf

D MyDBKey S 20I 0
*-----------------------------------------------------------------------------
/Free
MyDBKey = Wx_GetDBKeyInt();
/End-Free
Source Code 130102: Funktion Wx_GetDBKeyInt() - Ermitteln ganzzahligen Schlüssel-Wert

Wx_GetDBKeyArrInt() – Gruppe von ganzzahligen Schlüssel-Werte

Mit der Funktion Wx_GetDBKeyArrInt() kann eine Gruppe von ganzzahligen Schlüssel-Werten ermittelt werden.
Der Aufruf ist erforderlich, wenn bei Mehrfach-Auswahl alle ausgewählten Datensätze verarbeitet werden müssen.
Die ganzzahligen Schlüssel-Werte werden in einer Feldgruppe mit aktuell 100 Elementen (Referenz-Wert RefElemCGI) ausgegeben.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyArrInt
P* Purpose: Get Array of Single Integer File/Table Keys from Session
P* = Either Relative Record Numbers or Identity Values
P* = No Decimal Positions will be returned
P* Returns: Integer File/Table Keys
P* Parameters:
***************************************************************************
D Wx_GetDBKeyArrInt...
D PR 20I 0 Dim(RefElemCGI) OpDesc
D POutNbrRows 10U 0 Options(*NoPass)
Source Code 131103: Funktion Wx_GetDBKeyArrInt() – Ermitteln Gruppe von ganzzahligen Schlüssel-Werten

Parameter

  • Rückgabe-Wert: Feldgruppe mit 100 Elementen für ganzzahlige Schlüssel-Werte

Relative Satz-Nr. oder eindeutige Id als ganzzahliger Wert

  • POutNbrRowsAnzahl der ausgewählten Zeilen

Optionaler Parameter

Beispiel für den Aufruf

D ArrDBKey S 10I 0 Dim(RefElemCGI)
D NbrRows S 10U 0
D Index S 10U 0
*-----------------------------------------------------------------------------
/Free
//1. Ermitteln ausgewählte Zeilen - Anzahl Zeilen wird nicht ausgegeben
ArrDBKey = Wx_GetDBKeyArrInt();
//2. Ermitteln ausgewählte Zeilen – Anzahl Zeilen wird zurückgegeben
ArrDBKey = Wx_GetDBKeyArrInt(NbrRows);
If NbrRows > *Zeros;
For Index = 1 to NbrRows;
Chain ArrDBKey(Index)MyFileF;
If %Found(MyFileP);
// Verarbeitung
EndIf;
EndFor;
EndIf;
/End-Free
Source Code 132104: Funktion Wx_GetDBKeyInt() - Ermitteln Gruppe von ganzzahligen Schlüssel-Werten

Wx_GetDBKeyDec() – Numerischer Schlüssel-Wert

Mit der Funktion Wx_GetDBKeyInt() kann ein einzelner numerischer (gepackt oder gezont numerisch) Schlüssel-Wert, der im vorgelagerten Programm übergeben wurde ermittelt werden.
Der Aufruf ist z.B. erforderlich, wenn ein Datensatz im Änderungsmodus bearbeitet oder angezeigt werden sollt. Basierend auf den zurückgelieferten Informationen (Relative-Satz-Nr. oder eindeutige Id) kann der Datensatz z.B. mit dem RPG OpCode CHAIN eingelesen werden.

Prototype

*****************************************************************************
P* Procedure name: Wx_GetDBKeyDec
P* Purpose: Get Single Decimal File/Table Key from Session Information
P* = Either Relative Record No or Identity Value
P* Returns: Decimal File/Table Key
P* Parameters:
*****************************************************************************
D Wx_GetDBKeyDec...
D PR Like(FldRef.DftDec) OpDesc
Source Code 133105: Funktion Wx_GetDBKeyDec() - Ermitteln numerischen Schlüssel-Wert

Parameter

  • Rückgabe-WertRelative Satz-Nr. oder eindeutige Id als Dezimal-Wert

Bei ungültigen numerischen Werten wird -1 zurückgegeben

  • Keine Parameter erforderlich!

Beispiel für den Aufruf

D MyDBKey S 11P 2
*-----------------------------------------------------------------------------
/Free
MyDBKey = Wx_GetDBKeyDec();
/End-Free
Source Code 134106: Funktion Wx_GetDBKeyDec() - Ermitteln numerischen Schlüssel-Wert

Wx_GetDBKeyArrDec() – Gruppe von dezimalen Schlüssel-Werten

Mit der Funktion Wx_GetDBKeyArrDec() kann eine Gruppe von dezimalen Schlüssel-Werten ermittelt werden.
Der Aufruf ist erforderlich, wenn bei Mehrfach-Auswahl alle ausgewählten Datensätze verarbeitet werden müssen.
Die dezimalen Schlüssel-Werte werden in einer Feldgruppe mit aktuell 100 Elementen (Referenz-Wert RefElemCGI) ausgegeben.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyArrDec
P* Purpose: Get Array of Single Decimal File/Table Keys from Session
P* = Either Relative Record Numbers or Identity Values
P* Returns: Decimal File/Table Keys
P* Parameters:
***************************************************************************
D Wx_GetDBKeyArrDec...
D PR Like(FldRef.DftDec) OpDesc
D Dim(RefElemCGI)
D POutNbrRows 10U 0 Options(*NoPass)
Source Code 135107: Funktion Wx_GetDBKeyArrDec() – Ermitteln Gruppe von dezimalen Schlüssel-Werten

Parameter

  • Rückgabe-Wert: Feldgruppe mit 100 Elementen für dezimale Schlüssel-Werte

Relative Satz-Nr. oder eindeutige Id als Dezimal-Wert
Bei ungültigen numerischen Werten wird –1 zurückgegeben.

  • POutNbrRows: Anzahl der ausgewählten Zeilen

Optionaler Parameter

Beispiel für den Aufruf

D ArrDBKey S 15P 5 Dim(RefElemCGI)
D NbrRows S 10U 0
D Index S 10U 0
*-----------------------------------------------------------------------------
/Free
//1. Ermitteln dezimale Schlüssel-Werte – Anzahl Zeilen nicht ausgegeben
ArrDBKey = Wx_GetDBKeyArrDec();
//2. Ermitteln dezimale Schlüssel-Wert – Anzahl der Zeilen wird ausgegeben
ArrDBKey = Wx_GetDBKeyArrDec(NbrRows);
If NbrRows > *Zeros;
For Index = 1 to NbrRows;
Chain ArrDBKey(Index) MyFileF;
If %Found(MyFileP)
//Verarbeitung
EndIf;
EndFor;
EndIf;
/End-Free
Source Code 136108: Funktion Wx_GetDBKeyDec() - Ermitteln Gruppe von dezimalen Schlüssel-Werten

Wx_GetDBKeyChar() – Alphanum. Schlüssel-Wert (Einzelne Felder oder aus mehreren Feldern zusammengesetzt)

Mit der Funktion Wx_GetDBKeyChar() kann ein einzelner alphanumerischer Schlüssel-Wert, der im vorgelagerten Programm übergeben wurde ermittelt werden.
Der Aufruf ist z.B. erforderlich, wenn ein Datensatz im Änderungsmodus bearbeitet oder angezeigt werden sollt. Basierend auf den zurückgelieferten Informationen (Relative-Satz-Nr. oder eindeutige Id) kann der Datensatz z.B. mit dem RPG OpCode CHAIN eingelesen werden.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyChar
P* Purpose: Get Single Character File/Table Key from Session Information
P* Returns: Character File/Table Key
P* Parameters:
***************************************************************************
D Wx_GetDBKeyChar...
D PR Like(FldRef.TextVar) OpDesc
Source Code 137109: Funktion Wx_GetDBKeyChar() - Ermitteln alphanumerischen Schlüssel-Wert

Parameter

  • Rückgabe-WertRelative Satz-Nr. oder eindeutige Id als alphanumerischer Wert
  • Keine Parameter erforderlich!

Beispiel für den Aufruf

D MyDBKey S Like(FldRef.TextVar)
*-----------------------------------------------------------------------------
/Free
MyDBKey = Wx_GetDBKeyChar();
/End-Free

Source Code 138110: Funktion Wx_GetDBKeyChar() - Ermitteln alphanumerischen Schlüssel-Wert


Zusammengesetzte Schlüssel: Mit der Funktion Wx_GetDBKeyChar() können auch zusammengesetzte Schlüssel empfangen werden. Die einzelnen Schlüssel-Werte werden als alphanumerische Feldgruppen-Elemente ausgegeben. Die Konvertierung in den für einen Zugriff über Chain erforderlichen Datentypen muss im Change-Programm (z.B. über MOVE oder entsprechende Built-In-Funktionen) erfolgen.

Die Feldgruppen-Elemente werden in der gleichen Reihenfolge ausgegeben, in der die Schlüssel-Spalten in dem vorgelagerten Work-Programm (über Funktion Wx_WrkKeyFld) angegeben wurden.

Wenn beispielsweise im Work-Programm die Keys so eingestellt wurden: Wx_WrkKeyFld('KEYKPF' : '' : 'KEYPOS'); , und der Wert von KEYPF=4711 und der von KEYPOS=5 ist, dann liefert die Funktion Wx_GetDBKeyChar: "4711|5". Diese beiden Werte müssen dann im folgenden Programm aus der Variablen herausgelöst und in eigene Variablen vom richtigen Typ umgewandelt werden, um damit den Chain ausführen zu können.

Der Aufruf ist z.B. erforderlich, wenn ein Datensatz im Änderungsmodus bearbeitet oder angezeigt werden sollt. Basierend auf den zurückgelieferten Informationen (1-n Schlüssel-Werte) kann der Datensatz z.B. mit dem RPG OpCode CHAIN eingelesen werden.

Beispiel für den Aufruf - Zusammgesetzte Schlüssel "manuell" zerlegen

D MyKeyArr S Like(FldRef.TextVar)
D Dim(RefElemCGI)
D NbrKeys S 10U 0

D MyKey S 1048 Varying

D Pos S Uns(5);

-----------------------------------------------------------------------------
//1. Ermitteln zusammenges. Schlüssel – Anz- Schlüssel-Felder nicht ausgegeben
MyKey= Wx_GetDBKeyChar();


//2. Ermitteln zusammengesetzten Schlüssel – Individuelle Programmierung


     Pos = %Scan('|': MyKey);     If %Scan('|', MyKey) > *Zeros;   
MyKeyArr = %Subst(MyKey: 1: Pos-1);
//usw.

MyKeyArr = Wx_GetDBKeyFldChar(NbrKeys);
Chain (MyKeyArr(1): %Dec(MyKeyArr(2): 11: 2): Date(MyKeyArr(3)) MyFileF;

If %Found(MyFileP)
//Verarbeitung
EndIf;


Wx_GetDBKeyArrChar() – Gruppe von alphanumerischen Schlüssel-Werten

Mit der Funktion Wx_GetDBKeyArrChar() kann eine Gruppe von alphanumerischen Schlüssel-Werten ermittelt werden.
Der Aufruf ist erforderlich, wenn bei Mehrfach-Auswahl alle ausgewählten Datensätze verarbeitet werden müssen.
Die alphanumerischen Schlüssel-Werte werden in einer Feldgruppe mit aktuell 100 Elementen (Referenz-Wert RefElemCGI) ausgegeben.

Prototype

**************************************************************************
P* Procedure name: Wx_GetDBKeyArrChar
P* Purpose: Get Array of Single Byte Character File/Table Keys from
P* Returns: Character File/Table Keys
P* Parameters:
**************************************************************************
D Wx_GetDBKeyArrChar...
D PR Like(FldRef.TextVar) OpDesc
D Dim(RefElemCGI)
D POutNbrRows 10U 0 Options(*NoPass)
Source Code 139111: Funktion Wx_GetDBKeyArrChar() – Ermitteln Gruppe von alphanumerischen Schlüssel-Werten

Parameter

  • Rückgabe-Wert: Feldgruppe mit 100 Elementen für alphanumerische Schlüssel-Werte

Relative Satz-Nr. oder eindeutige Id als alphanumerischer Wert

  • POutNbrRows:Anzahl ausgewählte Zeilen

Optionaler Parameter

Beispiel für den Aufruf

D ArrDBKey S Like(FldRef.TextVar) Dim(RefElemCGI)
D NbrRows S 10U 0
D Index S 10U 0
*-----------------------------------------------------------------------------
/Free
//1. Ermitteln alphanumerische Schlüssel-Werte – Anzahl Zeilen nicht ermittelt
ArrDBKey = Wx_GetDBKeyArrChar();
//2. Ermitteln alphanumerische Schlüssel-Werte – Anzahl Zeilen wird ermittelt
ArrDBKey = Wx_GetDBKeyArrChar(NbrRows);
If NbrRows > *Zeros;
For Index = 1 to NbrRows;
Chain ArrDBKey(Index) MyFileF;
If %Found(MyFileP);
//Verarbeitung
EndIf;
EndFor;
EndIf;
/End-Free
Source Code 140112: Funktion Wx_GetDBKeyArrChar() - Ermitteln Gruppe von alphanumerischen Schlüssel-Werten

Wx_GetDBKeyUC() – Unicode-Schlüssel-Wert

Mit der Funktion Wx_GetDBKeyChar() kann ein einzelner Unicode Schlüssel-Wert, der im vorgelagerten Programm übergeben wurde ermittelt werden.
Der Aufruf ist z.B. erforderlich, wenn ein Datensatz im Änderungsmodus bearbeitet oder angezeigt werden sollt. Basierend auf den zurückgelieferten Informationen (Relative-Satz-Nr. oder eindeutige Id) kann der Datensatz z.B. mit dem RPG OpCode CHAIN eingelesen werden.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyUC
P* Purpose: Get Double Byte File/Table Key from Session Information
P* Returns: Unicode File/Table Key
P* Parameters:
***************************************************************************
D Wx_GetDBKeyUC...
D PR Like(FldRef.UCVar) OpDesc
Source Code 141113: Funktion Wx_GetDBKeyUC() - Ermitteln Unicode-Schlüssel-Wert

Parameter

  • Rückgabe-WertRelative Satz-Nr. oder eindeutige Id als Unicode-Wert


  • Keine Parameter erforderlich!

Beispiel für den Aufruf

D MyDBKey S Like(FldRef.UCVar)
*-----------------------------------------------------------------------------
/Free
MyDBKey = Wx_GetDBKeyChar();
/End-Free
Source Code 142114: Funktion Wx_GetDBKeyUC() - Ermitteln Unicode-Schlüssel-Wert

Wx_GetDBKeyArrUC() – Gruppe von Unicode- Schlüssel-Werten

Mit der Funktion Wx_GetDBKeyArrUC() kann eine Gruppe von Unicode-Schlüssel-Werten ermittelt werden.
Der Aufruf ist erforderlich, wenn bei Mehrfach-Auswahl alle ausgewählten Datensätze verarbeitet werden müssen.
Die Unicode-Schlüssel-Werte werden in einer Feldgruppe mit aktuell 100 Elementen (Referenz-Wert RefElemCGI) ausgegeben.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyArrUC
P* Purpose: Get Array of Double Byte Unicode File/Table Keys from Session
P* Returns: Unicode File/Table Keys
P* Parameters:
***************************************************************************
D Wx_GetDBKeyArrUC...
D PR Like(FldRef.UCVar) Dim(RefElemCGI)
D POutNbrRows 10U 0 Options(*NoPass)
Source Code 143115: Funktion Wx_GetDBKeyArrUC() – Ermitteln Gruppe von Unicode Schlüssel-Werten

Parameter

  • Rückgabe-Wert: Feldgruppe mit 100 Elementen für Unicode-Schlüssel-Werte

Relative Satz-Nr. oder eindeutige Id als Unicode-Wert

  • POutNbrRows: Anzahl der ausgewählten Zeilen

Optionaler Parameter

Beispiel für den Aufruf

D ArrDBKey S Like(FldRef.UCVar) Dim(RefElemCGI)
D NbrRows S 10U 0
D Index S 10U 0
*-----------------------------------------------------------------------------
/Free
//1. Ermitteln Unicode Schlüssel-Wert – Anzahl Zeilen nicht ausgegeben
ArrDBKey = Wx_GetDBKeyArrUC();
//2. Ermitteln Unicode Schlüssel-Wert – Anzahl Zeilen wird ausgegeben
ArrDBKey = Wx_GetDBKeyArrUC();
IF NbrRows > *Zeros;
For Index = 1 to NbrRows;
Chain ArrDBKey(Index)MyFileF;
If %Found(MyFileF)
//Verarbeitung
EndIf;
EndFor;
EndIf;
/End-Free
Source Code 144116: Funktion Wx_GetDBKeyUC() - Ermitteln Gruppe von Unicode-Schlüssel-Werten

Zusammengesetzte Schlüssel von in einer WRK-Tabelle gewählten Sätzen ermitteln

In RPGWX-Workprogrammen können zusammengesetzte, eindeutige Schlüssel definiert werden. Die Schlüssel-Felder werden mit der Funktion WX_WrkKeyFld() übergeben. Die Schlüssel-Werte werden dann in einem String, duch Pipes (|) getrennt zusammengefasst, z.B. "37|24711|18". Die Funktion Wx_WrkKeyFld() kann man auf zwei verschiedene Arten einsetzen:

  • in einem einzigen Aufruf der Funktion, wobei das zweite, dritte, vierte, usw. Schlüsselfeld in den optionalen Parametern der Funktion übergeben werden (WX_WrkKeyFld(KEY1 : "" : KEY2 : KEY3 : KEY4)
  • oder in mehreren Aufrufen der Funktion, bei denen jeweils ein Feld übergeben wird. Die Schlüsselwerte werden dann in der Reihenfolge in die Pipe geschrieben, in der die Aufrufe erfolgen.

Beide Methoden können auch kombiniert werden.

Für das Auslesen der Schüssel (z.B. im Change-Programm) stehen drei Funktionen zur Verfügung. Alle drei Funktionen liefern Char-Werte, die bei Bedarf in die benötigten Arten konvertiert werden müssen (z.B. mit der %dec-, %int-, %date-, usw. Funktion). Die Schlüssel-Werte werden in der gleichen Reihenfolge ausgegeben, wie sie im Work-Programm definiert wurden. 

Liefert den Schlüssel-String komplett in einem Feld, inklusive der Pipes (z.B. "37|24711|18"). Das Auflösen des Strings in die einzelnen Schlüsselwerte muss manuell programmiert werden.

Liefert die Schlüssel-Felder bereits in einer Feldgruppe. Element 1 = KEY1, Element 2 = KEY2, Element 3 = KEY3, Element 4 = KEY4, usw.

Liefert eine Array-Datenstruktur, in der jeder Satz eine Feldgruppe mit den einzelnen Schlüssel-Werten dieses Satzes enthält.

Diese Funktion wird z.B. benötigt, wenn bei einer Mehrfach-Auswahl von Datensätzen alle Datensätze (ohne Bildschrim-Anzeige) z.B. bei Löschfunktionen verarbeitet werden könnnen.

Werden z.B. 3 Datensätze bei dem jeder Datensatz einen zusammengesetzten Schlüssel hat, spricht man z.B. den 2. Schlüssel im 3. Satz wie folgt an:

KeyDSChar(3).ArrKey(2)


Wx_GetDBKeyFldChar() – Zusammengesetzter Schlüssel - Auflösen der pipe durch RPGWX

Liefert eine alphanumerische Feldgruppe, in der bei einem zusammengesetzten Schlüssel, die einzelen Schlüssel-Werte in einem Feldgruppen-Element ausgegeben werden.

Die Keys wurden zuvor vom rufenden Work-Programm mit der Funktion Wx_WrkKeyFld() eingestellt.

Da in RPG pro Feldgruppe nur ein  DatenTyp gehandelt werden kann, müssen die einzelnen Schlüssel-Werte ggf. mit einer Built-In-Funktion (z.B. %int, %date, %dec, usw.) in das gewünschte Format konvertiert werden.

Prototype

‚ //**********************************************************************************************
‚ // Procedure name: Wx_GetDBKeyArrChar
‚ // Purpose: Get Array of Single Byte Character File/Table Keys from Session Information
‚ // Returns: Character File/Table Keys
‚ // Parameters:
‚ //--------------------------------------------------------------------------------------------
‚ // 2016-07-26 - BHA : New Constant RefElemCGIDft - RefElemCGI only for defining CGI I/O Field Arrays
‚ //**********************************************************************************************
D Wx_GetDBKeyArrChar...
D PR Like(FldRef.TextVar) OpDesc Array Character Key Values
D Dim(RefElemCGIDft)
D POutNbrRows 10U 0 Options(*NoPass) Number of Rows Returned



Wx_GetDBKeyFldArrChar() – Gruppe von zusammengesetzten Schlüsseln

Mit der dieser Funktion kann eine Gruppe von zusammengesetzten Schlüsseln ermittelt werden.

Der Aufruf ist erforderlich, wenn bei Mehrfach-Auswahl alle ausgewählten Datensätze mit einem zusammengesetzten Schlüssel verarbeitet werden müssen.

Die einzelnen zusammengesetzten Schlüssel-Werte werden als alphanumerische Feldgruppen-Elemente ausgegeben. Aktuell kann ein zusammengesetzter Schlüssel aus bis zu 100 Schlüssel-Feldern/Werten bestehen. Die Konvertierung in den für einen Zugriff über Chain erforderlichen Datentypen muss im Change-Programm (z.B. über MOVE oder entsprechende Built-In-Funktionen) erfolgen.

Die einzelnen Feldgruppen werden wiederum als Datenstruktur-Unterfelder einer Array-Datenstruktur (gleicher Aufbau wie Mehrfach-Datenstruktur) ausgegeben. Aktuell kann die Array-Datenstruktur 100 verschiedene Dimensionen/Elemente haben, d.h. sie kann 100 Feldgruppen mit zusammengesetzten Schlüsseln aufnehmen.

Prototype

***************************************************************************
P* Procedure name: Wx_GetDBKeyFldArrChar
P* Purpose: Get Array of Single Byte Character compound File/Table Key
P* Returns: Character File/Table Keys
P* Rows/Records are returned as dimension of the Array Data
P* Character Key Fields are returned as subfield array element
P* Parameters: POutNbrRows => Number of Elements (= Rows) --> Optional
P* Parameters: POutNbrKeys => Number of Elements (= Keys) --> Optional
***************************************************************************
D Wx_GetDBKeyFldArrChar...
D PR LikeDS(RefArrDSWXCompKeys) OpDesc
D Dim(RefElemCGI)
D POutNbrRows 10U 0 Options(*NoPass)
D POutNbrKeys 10U 0 Options(*NoPass)

Source Code 147119: Funktion Wx_GetDBKeyArrChar() – Ermitteln Gruppe von zusammengesetzten Schlüssel-Werten

Parameter

  • Rückgabe-Wert: Array-Datenstruktur mit 100 Elementen

In den einzelnen Elementen ist eine Feldgruppe für die alphanumerischen Schlüssel-Werte mit ebenfalls 100 Elementen definiert.
Die Konvertierung der Schlüssel-Werte in die erwarteten Datentypen muss im Programm erfolgen.

  • POutNbrRows: Anzahl der ausgewählten Zeilen

Optionaler Parameter

  • POutNbrKeys:Anzahl der zusammengesetzten Schlüssel-Felder


Beispiel für den Aufruf

D ArrDSDBKey S LikeDS(RefArrDSWXCompKeys)
D Dim(RefElemCGI)
D NbrRows S 10U 0
D NbrKeys S 10U 0
D Index S 10U 0
*-----------------------------------------------------------------------------
/Free
//1. Ermitteln Array Datenstruktur der ausgewählten Sätze
// Weder Anzahl Zeilen noch Anzahl Keys ausgegeben
ArrDSDBKey = Wx_GetDBKeyFldArrChar();


//2. Ermitteln Array Datenstruktur der ausgewählten Sätze
// Anzahl Zeilen ausgegeben
ArrDSDBKey = Wx_GetDBKeyFldArrChar(NbrRows);

//3. Ermitteln Array Datenstruktur der ausgewählten Sätze
// Anzahl Zeilen und Anzahl Schlüssel-Werte ausgegeben
ArrDSDBKey = Wx_GetDBKeyFldArrChar(NbrRows: NbrKeys);
For Index = 1 to NbrRows;
  Chain (ArrDSDBKey(Index).ArrKeys(1): %Dec(ArrDSDBKey(Index).ArrKeys2: 15: 3): %Date(ArrDSDBKey(Index).ArrDate: *YMD)) MyFileF;
  If %Found(MyFileP)
    //Verarbeitung
  EndIf;
EndFor;

Source Code 148120: Funktion Wx_GetDBFldArrChar() - Ermitteln Gruppe von zusammengesetzten Schlüssel-Werten

Weitere Steuerungs- und Abruf-Funktionen

Wx_GetSessionUser() - das aktuelle Benutzerprofil ermitteln


Beispiel:

CurUsrPrf = GetSessionUser();

Wx_CallPGM() - Ein Programm aufrufen

Ruft ein Programm dediziert auf.

Wx_CallPGMMode() - Ein Programm mit einem Modus aufrufen

Ruft ein Programm auf und übergibt dabei wahlweise

  • einen "Modus" (20stelliges Zeichenfeld)
  • bis zu 5 Parameter

Das gerufene Programm kann den "Modus" mit der Funktion Wx_isMode() abfragen.

Prototype

Wx_CallPGMMode - Prototype
    ‚  //**********************************************************************************************
    ‚  // Procedure name: Wx_CallPGMMode
    ‚  // Purpose:        Call Next CGI Programm with Mode and Single Parameters
    ‚  // Returns:        URL
    ‚  // Parameters:     ParPGM       => Program
    ‚  // Parameters:     ParMode      => Mode
    ‚  // Parameters:     ParParm1     => Parameter 1       (Optional)
    ‚  // Parameters:     ParParm2     => Parameter 2       (Optional)
    ‚  // Parameters:     ParParm3     => Parameter 3       (Optional)
    ‚  // Parameters:     ParParm4     => Parameter 4       (Optional)
    ‚  // Parameters:     ParParm5     => Parameter 5       (Optional)
    ‚  //**********************************************************************************************
     D Wx_CallPGMMode...
     D                 PR                                        OpDesc
     D   ParPGM                            Like(FldRef.PGM)      Const          Program to Call
     D   ParMode                           Like(FldRef.ModeChar) Const          Mode
     D                                     Options(*NoPass)
     D   ParParm1                          Like(FldRef.TextVAR)  Const          Parameter 1
     D                                     Options(*NoPass)
     D   ParParm2                          Like(FldRef.TextVAR)  Const          Parameter 2
     D                                     Options(*NoPass)
     D   ParParm3                          Like(FldRef.TextVAR)  Const          Parameter 3
     D                                     Options(*NoPass)
     D   ParParm4                          Like(FldRef.TextVAR)  Const          Parameter 4
     D                                     Options(*NoPass)
     D   ParParm5                          Like(FldRef.TextVAR)  Const          Parameter 5
     D                                     Options(*NoPass)
    ‚

Parameter

PGMChar(10)Name des zu rufenden Programmes
ModeChar(20)Frei definierbarer String, der vom gerufenen Programm mit Wx_isMode() abgerufen werden kannz.B. 'DCCPYPARM'
Parm1 - 5Char(256)5 freiverwendbare Parameter