Toolmaker Produkt-Dokumentation

Aufbereitungsoptionen in RPGWX-Prozeduren

Inhaltsübersicht


Um die Anzahl der Parameter so gering wie möglich zu halten, werden Aufbereitungsoptionen in Form von Schlüssel-Worten in einem Text-String übergeben. Sind mehrere Aufbereitungsoptionen erforderlich (z.B. Muss-Feld und Datumsaufbereitung), werden die Schlüssel-Worte hintereinander durch *Blanks getrennt angegeben.

Optionen sind nicht case sensitive, d.h. die folgenden Optionen führen zum gleichen Ergebnis: required, REQUIRED, Required, ReQUired

Viele Prozeduren - insbesondere die zur Ausgabe von Variablen im Browserfenster - haben Optionen zur Aufbereitung. Diese in Form von Schlüssel-Worten in einem Text-String übergeben. Sind mehrere Aufbereitungsoptionen erforderlich (z.B. Muss-Feld und Datumsaufbereitung), werden die Schlüssel-Worte hintereinander durch *Blanks getrennt angegeben.

Beispiele:

Die Prozedur Wx_ChgFld sorgt dafür, dass in einem CHG-Programm ein Feld im Browserfenster erscheint. Die Aufbereitungsoptionen sind ihr letzter (optionaler) Parameter.

Wx_ChgFld('ADRID : %Addr(ADRID) : 'FAD0000' : 'Output');

→ Das Feld ADRID erscheint, ist aber nicht eingabefähig

Wx_ChgFld('PLZ' : %Addr(PLZ) : 'FAD0200' : 'Required NoNewLine');

→ Das Feld PLZ ist ein Muss-Feld und das nächste Feld wird in derselben Zeile erscheinen

Optionen sind nicht case sensitive, d.h. die folgenden Optionen führen zum gleichen Ergebnis: required, REQUIRED, Required, ReQUired

Steuerungsoptionen für HTML-Dokumente

Beim Öffnen der HTML-Dokumente können diverse Schlüssel-Worte für die Anzeige und Aufbereitung des Dokuments festgelegt werden.

Die Übergabe der Optionen erfolgt über Schlüssel-Worte beim Öffnen der HTML-Dokumente, d.h. beim Aufruf der Funktionen Wx_OpnHTMLWrk und WX_OpnHTMLChg.

HelpDoc - Hinterlegen einer allgemeinen Hilfe für Detail- und List-Anzeigen

In den Optionen der Prozeduren Wx_OpnHTMLWrk() und Wx_OpnHTMLChg() können Hilfen für die gesamte HTML-Seite hinterlegt werden.

Wenn die Seite mit der Funktion Wx_ChgNavTab() in Reiter aufgeteilt wurde, dann gibt es nur ein HelpDoc für alle Reiter der Seite.

Das Schlüssel-Wort selber kann mit bis zu 4 Parametern, die durch Kommata getrennt werden, angegeben werden.

Die Option helpDoc kann verweisen auf:

  • Eine PDF-Datei, ggf. mit Seitennummer
  • Eine URL

Syntax

Wx_OpnHTMLWrk('xxxx': 'xxxxxx': '': 'helpDoc(<prompt>, <helpsource> [ , <anchor>, <icon> ] )');


Parameter

prompt  - Text der angezeigt wird

Text kann wahlweise direkt oder als Message-Id, die in den Anwendungs-Message-Files hinterlegt sein muss angegeben werden.

helpsource - Name eines PDF-Dokumentes oder Link zum Hilftext

Gütlige Werte:

  • Name eines PDF-Dokuments
    • dieses muss im IFS der IBM i im Anwendungs-Verzeichnis für Hilfe-Dokumente /www/dirweb/htdocs/HelpDocs/<anwendung> hinterlegt sein.
    • Für mehrsprachige Bedienerhilfe müssen unterschiedliche PDF-Dokument in der gleichen Message-Id in den Sprachen-Message-Files hinterlegt werden.
  • URL zu einem Hilfetext
    • direkt (http://....)
    • Verweis auf eine MSGD, in der die URL hinterlegt ist

anchor - Anker im PDF-Dokument

Optional, nur bei PDF-Dokumenten

Gültige Werte:

  • "#page=x": x=Seitenzahl im PDF-Dokument
  • "*NONE": Keine Seitenzahl - nur erforderlich, wenn der nächste Parameter (icon) verwendet werden soll

Sofern keine Seiten-Zahl benötigt wird, jedoch im 4. Parameter ein spezielles Icon hinterlegt werden soll, kann der 3. Parameter mit dem Default-Wert *NONE angegeben werden.

icon  - Individuelles Icon

Optional

Sofern ein individuelles Icon verwendet werden soll, wird dieses ohne Pfad im 4. Parameter angegeben.

Das Icon muss im Anwendungs-Pfad für Icons /www/dirweb/htdocs/HelpDocs/<anwendung> hinterlegt sein.

Wird kein Icon angegeben wird ein Default-Icon verwendet.

Beispiele

Wx_OpnHTMLWrk('Überschrift Programm': 'EXCHGCOMP': '': 'helpDoc(BedienerHilfe, WOPiXX.PDF)');

Wx_OpnHTMLWrk('Überschrift Programm': 'EXCHGCOMP': '': 'helpDoc(BedienerHilfe, WOPiXX.PDF, #page=8)');

Wx_OpnHTMLWrk('Überschrift Programm': 'EXCHGCOMP': '': 'helpDoc(MSG4711, MSG4712, *NONE, MyIcon.png)');

Wx_OpnHTMLWrk('TIT0012' : 'EXCHGCOM' : '' : 'helpDoc(HLP0002, HLP0001, *NONE, Phone-52.png) ');

Steuerungsoptionen nur für Work-Tables

Die folgenden Steuerungsoptionen gelten nur für Worktables

NoList - Beim ersten Aufruf nur die Filter anzeigen

Wird das Schlüssel-Wort NoList übergeben, werden beim ersten Aufruf nur die Filter angezeigt, die Liste enthält noch keine Sätze.

Diese Auswahl ist insbesondere dann sinnvoll, wenn große Dateien durchsucht werden sollen und vorab die Möglichkeit einer Vorauswahl bereitgestellt werden soll.

EmptyList -Beim ersten Aufruf eine leere Liste und die Anzahl der Datensätze anzeigen

Wird das Schlüssel-Wort EmptyList angegeben, werden die Filter und eine leere Liste angezeigt. Das SQL-Statement, das die Liste aufbaut wird ausgeführt. Die Anzahl der Datensätze wird angezeigt.

Bei großen Tabellen bzw. bei komplexen SQL-Statements sollte NoList der Angabe von EmptyList vorgezogen werden.

DoubleClick -Default-Programm für den Doppelklick

Standardmäßig wird bei DoubleClick auf einen Satz in der List-Anzeige das Folge-Programm im Änderungs-Modus eröffnet. Vielfach ist dies jedoch nicht erwünscht, d.h. entweder soll das Folge-Programm bei Doppelklick im Anzeige-Modus geöffnet werden, oder bei Doppelkllick soll keine Aktion erfolgen. Weiterhin ist es möglich beim Doppeklick, bevor das Folge-Programm im Änderungs-Modus geöffnet wird ein Bestätigungs-Fenster auszugeben.

Bei dem Schlüssel-Wort können ein oder zwei Parameter angegeben werden. Sofern beide Paramter angegeben werden, müssen sie durch ein Komma getrennt werden.

Das Schlüssel-Wort DoubleClick, sowie die einzelnen Parameter können in jeder beliebigen Groß-/Klein-Schreibung angegeben werden.

Syntax

Wx_OpnHTMLWrk('xxxx': 'xxxxxx': '': 'Doubleclick(<mode>, [ <confirm [ (<confirmmsg>) ] > ] ');

Parameter

modus -  Modus

Gültige Werte

*DSP/*DISPLAY = Anzeige Modus
*CHG/*CHANGE = Änderungs-Modus
*NONE = Keine Aktion bei Doppel-Klick

confirm - Bestätigung erforderlich

Optional, nur für Änderungs- und Anzeige-Modus

Gültige Werte

Confirm:  mit Standard-Bestätigungstext

confirm(<confirmmsg>)
   confirmmsg - Inhalt der Bestätigungsaufforderung
    - 
Bestätigungstext in Klammern
    - MSGID - Message-Id für Bestätigungstext in Klammern

Beispiele

Wx_OpnHTMLWrk('TIT0012': 'EXCHGCOMP': '': 'DoubleClick(*NONE)');

Wx_OpnHTMLWrk('TIT0012': 'EXCHGCOMP': '': 'DOUBLECICK(*DSP)');

Wx_OpnHTMLWrk('TIT0012': 'EXCHGCOMP': '': 'DoubleClick(*Change, confirm)');

Wx_OpnHTMLWrk('TIT0012': 'EXCHGCOMP': '': 'DoubleClick(*Chg, CONFIRM(Achtung: Änderungsmodus))');

Wx_OpnHTMLWrk('TIT0012': 'EXCHGCOMP': '': 'DoubleClick(*Chg, confirm(BST0007))');

Group - Gruppierung

Durch die Angabe des Schlüssel-Wortes Group bei Aufruf der Funktion WX_OpnHTMLWrk wird am Ende des Kontext-Menüs ein zusätzlicher Kontext-Menü-Punkt „Gruppieren“ hinzugefügt.

Bei Auswahl dieses Kontext-Menü-Punktes werden die Daten in der Spalte, auf der der Cursor gerade steht, verdichtet.

Sofern einzelne Spalten nicht verdichtet werden sollen oder dürfen, kann dies durch Angabe des Schlüssel-Wortes NoGroup bei Aufruf der Funktion Wx_WrkFld unterbunden werden.

Vergleichsoperatoren für Filter-Felder

Die folgenden Funktionen werden zur Deklaration von Filter-Feldern verwendet:

  • WX_GenFlt() – Generischer Filter
  • Wx_FltFile() – Datei für Filter definieren
  • Wx_FltFld() – Such(Filter-)Feld definieren
  • Wx_FltFileFld() – Filterfile und 1.Feld definieren
  • Wx_BegEnhFlt() – Beginn erweiterter Filter

Bei diesen Funktionen können verschiedene Vergleichsoperatoren für die Filterung angegeben werden. Siehe: Vergleichsoperationen für Filter-Felder.

Aufbereitungsoptionen für Filter-Felder

Die folgenden Funktionen werden zur Deklaration von Filter-Feldern verwendet:

  • WX_GenFlt() – Generischer Filter
  • Wx_FltFile() – Datei für Filter definieren
  • Wx_FltFld() – Such(Filter-)Feld definieren
  • Wx_FltFileFld() – Filterfile und 1.Feld definieren
  • Wx_BegEnhFlt() – Beginn erweiterter Filter

Für das gleiche Filterfeld können mehrere unterschiedliche Optionen angegeben werden. Die einzelnen Optionen werden durch Blanks getrennt in dem Parameter Option als Text übergeben. Die Schlüsselworte können in jeder beliebigen Groß/Kleinschreibung angegeben werden.

Die Aufbereitungsoptionen, die hier beschrieben werden, sind auch für Felder in Detail-Anzeigen verwendbar.


CTL(xxx)  Aufbereitung und Anzeige von Werten aus der Parameter-Control-Table


Durch die Angabe des Schlüsselwortes CTL(xxx) kann auf die Liste der erlaubten Werte für ein Feld aus einer Parameter Control Table geholt werden.

Parameter Control Tables werden in RPGWX für jede Anwendung individuell eingerichtet und verwaltet. HIer als Beispiel eine Parameter Control Table für Anreden:

Parameter-Tabelle "ADTYPE" mit 4 Einträgen

Zur Laufzeit werden kann der Benutzer einen Wert aus den Werten der Parameter-Tabelle auswählen.

Wenn das Feld kein Pflichtfeld ist, dann fügt RPGWX der Liste eine weitere Auswahl hinzu: "Keine Auswahl" hinzu:

Code im CHG-Programm - kein Pflichtfeld:

Wx_ChgFld('ADTYPE' : %Addr(ADTYPE) : 'FAD0100' : 'CTL(ADTYPE)' );


Wenn es ein Pflichtfeld ist, dann werden nur definierten Auswahlen angzeiegt:



Code im CHG-Programm - kein Pflichtfeld:

Wx_ChgFld('ADTYPE' : %Addr(ADTYPE) : 'FAD0100' : 'CTL(ADTYPE) required' );



Wenn im Parameter weniger als 4 Auswahlmöglichkeiten (inklusive von "Keine Auswahl"), dann werden die Auswahlen in Form von Radiobuttons dargestellt:


Parameter-Tabelle "ADTYPE" mit nur 3 Einträgen

ExecSQL(<name>) oder ExecSQL(<name>, NoList) - Aufbereitung und Anzeige von Werten aus einer SQL-Abfrage

Durch Angabe des Schlüsselwortes ExecSQL kann die Liste der erlaubten Werte aus einer vom Programmierer hinterlegten SQL-Abfrage geholt werden.

Die von der Abfrage gelieferten Werte können als Combobox oder in einem Fenster aufbereitet, angezeigt und ausgewählt werden.

Die Angabe des 2. Parameters NoList bewirkt, dass zunächst nur die Filter-Felder angezeigt werden, so dass eine Vorauswahl getroffen werden kann.

EnhFlt - Erweiterter Filter

Das Feld kann durch Klicken auf die Pfeil auf/ab Buttons ein- und ausgeblendet werden.

Anstatt das Schlüssel-Wort bei jedem erweiterten Filterfeld anzugeben kann auch die Funktion Wx_BegEnhFlt() – Beginn erweiterter Filter vor dem ersten erweiterten Filter-Feld aufgerufen werden.

Center - Spalten-Inhalt zentrieren

Left - Spalten-Inhalt linksbündig ausrichten

Right -  Spalten-Inhalt rechtsbündig ausrichten

Uppercase -  Eingabe wird in Großbuchstaben übersetzt

Lowercase -  Eingabe wird in Kleinbuchstaben übersetzt

NewLine - Nächstes Feld in nächste Zeile (Default-Wert)

NoNewLine - Nächstes Filter-Feld in der gleichen Zeile

Checkbox oder Logical - Schalter (0/1)

  • 1 - Häkchen (eingabefähiges Feld)
  • 0 - Leeres (eingabefähiges Feld)

DateNum  - Numerisches Datum im Format JJJJMMTT

  • Aufbereitung als Datum

TimestampNum  - Numerische Zeitmarken im Format JJJJMMTTHHMMSS

  • Aufbereitung als Zeitmarke

TimeNum - Numerische Zeit im Format HHMMSS

  • Aufbereitung als Zeit

HHMMNum - Numerische Zeit im Format HHMM

  • Aufbereitung als Zeit

Für Echte Datums- und Zeit-Felder müssen keine Aufbereitungsoptionen definiert werden.

Required - Bei dem Filter-Feld handelt es sich um ein Muss-Feld

NotRequired  - Bei dem Filter-Feld handelt es sich um ein Kann-Feld

SelectList -  Combobox mit gültigen Werten

Hierfür gibt es verschiedene Syntaktiken:

  • SelectList oder SelectList()
    • Bildet Combobox mit allen unterschiedlichen Feldwerten in dem definierten Feld in den definierten Dateien/Tabellen/Views.
    • z.B. für Auswahl Stati / Auswahl Länder
  • SelectList(<feldname>) oder SelectList(Field=<feldname>) oder SelectList(Field='<feldname>')
    • Bildet Combobox mit allen unterschiedlichen Feldwerten in dem Feld <feldname> in den definierten Dateien/Tabellen/Views
  • SelectList(File=<dateiname>, <feldname>) oder SelectList(File=<dateiname>, Field=<feldname>) oder SelectList(File='<dateiname>', <feldname>) oder SelectList(File='<dateiname>', Field=<feldname>)
    • Bildet eine Combobox mit allen Unterschiedlichen Feldwerten in der angegebenen Datei/Tabelle/View mit dem angegebenen Feld.

Die angegebene Datei/Tabelle/View, sowie das angegebene Feld müssen nicht zwangsläufig definiert sein.

SQLList - Combobox basierend auf einem SQL-Select-Statement

  • SQLList(<sqlstatement>;)
    • Wichtig: Das SQL-Select-Statement mit einem Semikolon (;) abgeschlossen werden.
    • Bildet eine Combobox basierend auf dem Ergebnis, das das SQL-SELECT-Statement zurückliefert.
    • Wird in dem SELECT-Statement nur eine einzige Spalte definiert, wird nur diese angezeigt und die entsprechenden Werte zurückgegeben:

SQLList(Select Distinct PLZ from AdresseX;)

→ Rückgabe: PLZ


Werden in dem SELECT-Statement mehrere Spalten ausgewählt, so werden die Spalten-Werte aus der 2. Spalte angezeigt. Bei Auswahl wird der Wert der 1. Spalte zurückgegeben.

SQLList(Select Distinct PLZ, PLZ concat ' ' concat ORT From AdresseX;)

→ Anzeige: z.B. 86916 Kaufering
→ Rückgabe: 86916


DependList - Abhängige Combobox mit gültigen Werten

Basierend auf dem eingegebenen Wert in einem anderen Feld werden nur die abhängigen Auswahlkriterien angezeigt.

Das Feld von dem die Werte in der Combobox abhängen, muss vor dem abhängigen Feld definiert werden.

Beispiel: Abh. vom Land enthält die Combobox nur die Orte, die in dem entsprechenden Land liegen.

  • DependList(<feldname>)
    • Bildet die Werte in der Combobox abhängig von dem erfassten Wert in <feldname>.
  • DependList(File=<dateiname>, <feldname>, KeyA=KeyB)
    • Bildet die Combobox aus der Tabelle <dateiname> und der Spalte <feldname> (in Tabelle <dateiname>). Die Tabelle <dateiname> wird über den Schlüssel KeyB mit dem Feld KeyA (das zuvor definiert wurde) mit der definierten Tabelle, in der KeyA hinterlegt ist verknüpft.
    • Sofern mehrere Schlüssel-Felder erforderlich sind, müssen diese anschließend durch ein logisches AND getrennt angegeben werden.
    • → KeyA1=KeyB1 and KeyA2=KeyB2 etc.)

Beispiel: Das Land (Spalte ELAND) wird erfasst. Die Orte (Spalte XORT) die ausgewählt werden dürfen sind in Datei ADRESSEX hinterlegt.

DependList(File=AdresseX, XORT, ELAND=XLand)

ValuesList - Combobox aus den vorgegebenen Werten, Beispiele:

  • ValuesList(Offen, Bestätigt, Erledigt)
  • ValuesList(2, 4, 8, 16, 32)

ListNumRange -  Combobox mit allen numerischen Werten in dem angegebenen Bereich

  • ListNumRange(100, 150)
    • Bildet eine Combobox mit allen ganzzahligen Werten zwischen 100 und 150
  • ListNumRange(100, 150, 10)
    • Bildet eine Combobox mit den Werten 100, 110, 120, 130, 140, 150,

ListMonth  - Combobox mit den Werten 1-12 für den Monat

ListMonthName - Combobox mit sprachenabhängigen Monatsnamen, sortiert nach dem numerischem Monat (Januar=1, Dezember=12).

  • Rückgabe-Wert: sprachenabhängiger Monatsname

ListMonthNameNum - Combobox mit sprachenabhängigen Monatszahlen (1=Januar, 12=Dezember)

  • Rückgabe: Wertnumerischer Monat (Januar=1 / Dezember=12)

ListDay - Combobox mit den Werten 1-31 für den Tag im Monat

  • Aktuell keine abhängige Combobox

ListDayName - Combobox mit sprachenabhängigen Wochentagsnamen, sortiert nach dem numerischem Wochentag (Montag=1, Sonntag=7).

  • Rückgabe: Wertsprachenabhängiger Wochentagsname

ListDayNameNum - Combobox mit sprachenabhängigen Wochentagssnamen, sortiert nach dem numerischen Wochentag (Montag=1, Sonntag =7)

  • Rückgabe: Wertnumerischer Wochentag (Montag=1 / Sonntag=7)

ListHour  - Combobox mit den Werten 0-24 für die Stunden


ListMinSec - Bildet eine Combobox mit den Werten 0-59 für Minuten und Sekunden


AutoComplete - AutoComplete Combobox

  • AutoComplete oder Autocomplete()
    • Bildet eine AutoComplete Combobox basierend auf den aktuellen Werten in dem definierten Feld aus den definierten Tabellen
  • Autocomplete(File=<dateiname>, <feldname>)
    • Bildet eine AutoComplete Combobox basierend auf den Werten in der Spalte MyFld aus der Tabelle MyFile.

DependAuto - Abhängige Autocomplete Combobox

  • DependAuto(MyFld)
    • Bildet die Werte in der AutoComplete Combobox abhängig von dem erfassten Wert in Spalte MyFld.

AutoDepend(File=<dateiname>, <feldname>, KeyA=KeyB)

  • Bildet die AutoComplete Combobox aus der Tabelle MyFile und der Spalte MyFld (in Tabelle MyFile). Die Tabelle MyFile wird über den Schlüssel KeyB mit dem Feld KeyA (das zuvor definiert wurde) mit der definierten Tabelle, in der KeyA hinterlegt ist verknüpft.

Sofern mehrere Schlüssel-Felder erforderlich sind, müssen diese anschließend durch ein logisches AND getrennt angegeben werden.

--> KeyA1=KeyB1 and KeyA2=KeyB2 etc.)

Beispiel: Das Land (Spalte ELAND) wird erfasst. Die Orte (Spalte XORT) die ausgewählt werden dürfen sind in Datei ADRESSEX hinterlegt.
AutoDepend(File=AdresseX, XORT, ELAND=XLand)

Aufbereitungsoptionen für Spalten

Für eine Spalte (Prozedur Wx_WrkFld() ) können mehrere unterschiedliche Aufbereitungs-Optionen angegeben werden. Die einzelnen Optionen werden durch Blanks getrennt in dem Parameter Option als Text übergeben.

Die Schlüsselworte können in jeder beliebigen Form der Groß/Kleinschreibung angegeben werden.

Bei der Definition von Spalten in Work Tables können die folgenden Aufbereitungsoptionen angegeben werden.

NoSort - Sortieren nicht zulässig

Per Default können List-Anzeigen nach allen definierten Spalten sortiert werden. Sofern für einzelne Spalten eine Sortierung nicht zulässig ist, kann das Schlüssel-Wort NoSort angegeben werden.

Center -  Spalten-Inhalt zentrieren

Left  - Spalten-Inhalt linksbündig ausrichten

Right  - Spalten-Inhalt rechtsbündig ausrichten

Hidden  - Spalte wird nicht angezeigt

Logical  - Schalter (0/1)

  • 1 - Anzeige als Häkchen
  • 0 - Leere Spalte

DateNum - Numerisches Datum im Format JJJJMMTT

  • Aufbereitung als Datum

TimestampNum - Numerische Zeitmarken im Format JJJJMMTTHHMMSS

  • Aufbereitung als Zeitmarke

TimeNum - Numerische Zeit im Format HHMMSS

  • Aufbereitung als Zeit

HHMMNum - Numerische Zeit im Format HHMM

  • Aufbereitung als Zeit

Für Echte Datums- und Zeit-Felder müssen keine Aufbereitungsoptionen definiert werden.

CTL(xxx) - Aufbereitung und Anzeige von Werten aus der Parameter-Control-Table

Durch die Angabe des Schlüsselwortes CTL(xxx) kann auf die Liste der erlaubten Werte für ein Feld aus einer Parameter Control Table geholt werden.

Parameter Control Tables werden in WOPiXX für jede Anwendung individuell eingerichtet und verwaltet.

KEEPFORMAT - Keine Aufbereitung - die ursprüngliche Formatierung wird beibehalten

Filter(xxx) - Definition von Inline-Filter. Die folgenden Optionen (xxx) sind zulässig:

  • Text_Filter
  • Select_Filter
  • Combo_Filter
  • Text_Search
  • Numeric_Filter

BgColor(Farbe) - Hintergrundfarbe

Mit Hilfe des Schlüssel-Wortes BgColor (oder auch BgColour) kann die Hintergrund-Farbei bei einer Spalte festgelegt bzw. geändert werden.

  • Bgcolor(red) Angabe der Farbe z.B. red, blue, white
  • Bgcolor(#FFF5B7) Angabe der Farbe als Hex-Wert

Beispiel

führt zu dieser Darstellung:

FontColor -  Schriftfarbe

Über das Schlüssel-Wort FontColor(Farbe) (oder auch fontcolour() fntcolor(), fntcolour()) kann die Text-Farbe von Buttons vorgegeben werden. Die Angabe der Farbe erfolgt wie in HTML, also z.B. Farbe in englisch fontcolor(red). Alternativ kann anstatt der Farbe auch ein Hex-Wert angegeben werden, z.B. FontColor(#FFF5B7)

Exit() - Externe Funktionen für die Aufbereitung

Mit exit() kann man ein eigenen Code für die Steuerung der Darstellung hinterlegen.

Syntax

Wx_WrkFld('fldname' : 'feldbezeichnung' : 'Exit( <proc_name>, <srvpgm_name>, <srvpgm_lib>, <fieldfunction>)');

Parameter

proc_name - Name der Prozedur im Exit-Programm

srvpgm_name - Name des Serviceprogrammes

Optionaler Parameter - wenn er ausgelassen wird, dann wird das Serviceprogramm DWEXTFNC verwendet

srvpgm_lib - Bibliothek des Servicprogrammes

Optionaler Parameter - wenn er ausgelassen wird, dann wird das Serviceprogramm *LIBL verwendet

fieldfunction - Name der aufzurufenden Feldfunktion

Optionaler Parameter - wenn er ausgelassen wird, dann wird keine Feldfunktion aufgerufen

Beispiele

  • Exit(geticncmb)  -  Es wird die Prozedur geticncmb aus dem Serviceprogram DWEXTFNC in *LIBL aufgerufen
  • Exit(SC, EXITPGM1)Es wird die Funktion SC aus dem Serviceprogram EXITPGM1 in *LIBL aufgerufen
  • Exit(SC, EXITPGM1, QGPL)Es wird die Funktion SC aus dem Serviceprogram EXITPGM1 in QGPL aufgerufen

Beispielprogramm für ein Exit-Programm

Ein Beispielprogramm ist auf der Seite Beispiel-Programme im Abschnitt "Exit-Programm für die Darstellungs-Steuerung in Spalten in Wrk-Programmen" dargestellt.

Image  -Inhalt als Bild anzeigen

Handelt es sich bei dem Spalten-Inhalt um einen Link (IFS-Datei-Name), so wird die IFS-Datei (z.B. Bild oder Icon) an dieser Stelle angezeigt

Sofern nur das Schlüssel-Wort Image angegeben wird, wird das Bild in Icon-Größe ausgegeben.

Mit Schlüssel-Wort Image können jedoch auch Größen-Angaben in der Form Image(Breite, Höhe) z.B. Image(120, 100) übergeben werden.

Die Höhe und Breite werden in Pixel angegeben

Bei der MouseOver-Aktion wird das Bild entweder in die Origianlgröße (Schlüssel-Wort ohne Parameter) oder in die angegebene Gr´öße (Schlüssel-Wort mit Parameter) vergrößert.


Abbildung 4: Schlüssel-Wort Image - Bilder in List-Anzeigen

IFS() - Auswahl einer Datei in einem vorgegebenen Verzeichnis im IFS

Das Feld enthält den Namen einer Datei im IFS. Mit der Option "IFS()" kann man ein Verzeichnis festlegen, aus dem der Benutzer die Datei auswählen kann, z.B. per drop-down-Liste

Syntax

IFS(<verzeichnisname>,<darstellung>)

<verzeichnisname> - Vollständiger Pfad im IFS der IBM i

Wenn hier eine Variable verwendet wird, dann ist muss diese als varchar deklariert sein.

<darstellung> -

Gültige Werte

1: Drop-Down-Liste
2: Neues Auswahl-Fenster

Beispiel

dcl-s GblPth_icons varchar(256);  // ist gefüllt mit: '/Toolmaker/DirectWEB/htdocs/icons'
Wx_ManChgFldChar('ARhdrlgo' :%Addr(ARhdrlgo) : 'DWB0454' : %Len(ARhdrlgo ): 'IFS(' + GblPth_icons+',1)')   ;      

Wx_ManChgFldChar('ARhdrlgo' :%Addr(ARhdrlgo) : 'DWB0454' : %Len(ARhdrlgo ): 'IFS(' + GblPth_icons+',2)')   ;   

   

HTML() -  Externe Funktionen für die Aufbereitung [ehemals Exit() ]

Hier kann zusätzlicher HTML-Code übergeben werden, um Funktionalitäten zu nutzen, die durch RPGWX nicht abgedeckt sind. Der HTML-Code wird bei diesem Feld 1:1 an die HTML-Seite übergeben. 

Achtung: Es wird dringend empfohlen, den Code vorher in einem Editor zu testen. Falls ungültiger Inhalt übergeben wird, kann dies dazu führen, dass nur ein Fehler oder gar nichts angezeigt wird.

Output - In editierbarer Liste: keine Eingabe für diese Spalte

Sofern bei editierbaren List-Anzeigen bei der Spalten-Definition das Schlüssel-Wort Output angegeben wurde, wird die Spalte für die Eingabe gesperrt.

Footer()  -Fusszeile

Mit dem Schlüssel-Wort Footer beim Definieren von Spalten in List-Anzeigen kann für die Spalte ein aggregierter Wert oder Text angezeigt werden.

  • Footer oder Footer(*SUM) - Summe über alle Spalten-Werte
  • Footer(*AVG) - Durchschnitt über alle Spalten-Werte
  • Footer(*MIN) - Kleinster Wert
  • Footer(*MAX) - Größter Wert
  • Footer(MSGID oder Text) - Text wird angezeigt

Beispiel

Im folgenden Beispiel wird eine List-Anzeige mit einem Summen-Text und der Summe über alle eingelesenen Umsätze (Sales)

Wx_WrkFld('ArtikelNr' : 'FLD0008' : 'Footer(TXD0027)');
Wx_WrkFld('Wert' : 'FLD0024' : 'Footer(*sum)');



Footer - maximal 1.000 Zeilen

Einschränkung 1: Wird das Schüssel-Wort Footer angegeben so werden 1.000 Zeilen (anstatt 100 Zeilen mit Nachladen) gelesen. Da bei der Footer-Funktion nur die geladenen Zeilen aggregiert werden, kann die Funktion nur dann korrekte Werte liefern, wenn das Ergebnis maximal 1.000 Zeilen enthält.

Einschränkung 2: Wenn in der Tabelle Grafik-Spalten () enthalten sind werden diese in der Footerzeile "übersehen". Beispiel: 

Lösungsvorschlag: Die Spalten so tauschen, dass vor der Spalte mit dem Footer keine Graphik-Spalten stehen. Beispiel:

Aufbereitungsoptionen Kontext-Menü-Punkte

Für Kontext-Menü-Punkte können die folgenden Aufbereitungsoptionen angegeben werden:

Line - Im Kontext-Menü wird vor dem Menü-Punkt eine Trennlinie eingefügt

NoWindow - Folge-Programm nicht im Fenster-Format ausgeben

Sofern das Folge-Programm nicht in einem Fenster ausgegeben werden soll, muss explizit das Schlüssel-Wort NoWindow angegeben werden.

Wird NoWindow angegeben und das Folge-Programm eine Bildschirmausgabe erfordert, wird das Folge-Programm als Voll-Bild angezeigt.

Icn(xxxx.gif) -  Icon, das in Verbindung mit dem Kontext-Menü-Punkt angezeigt wird.

Confirm -  Anzeige Bestätigungsfenster vor Aufruf des eigentlichen Verarbeitungsprogramms

  • Confirm   Default-Bestätigungstext
  • Confirm(X)   X = Message-Text oder Message-Id für Individuelle Nachrichten

HelpText - Hilfe-Texte, die bei Mouse Over angezeigt werden.

Sofern für die Mesage-Id für den Button-Text bzw. den Kontext-Menü-Item-Text ein Level2-Text hinterlegt ist, wird dieser bei Mouse-Over automatisch angezeigt.

Durch das Schlüssel-Wort HelpText können auch andere Hilfe-Texte eingebunden werden. Der Hilfe-Text kann in Verbindung mit dem Schlüssel-Wort HelpText direkt angegeben oder als Message-Id hinterlegt werden.

* HelpText(Dies ist ein HilfeText) - Direkte Angabe des Hilfe-Textes
* HelpText(MSG4711)   Hilfe-Text wird aus der Message-Id (Level1) ermittelt

NoHelpText -Keinen Hilfetext anzeigen

Über das Schlüssel-Wort NoHelpText kann die Anzeige des Level2 Hilfe-Textes für Buttons und Kontext-Menü-Einträge verhindert werden.



Abbildung 5: Kontext-Menü-Punkte mit Bestätigungsfenster

ParCond  - Bedingungen für Menü-Auswahl

Bedingungen können wahlweise in einer der folgenden Schreibweisen angegeben werden. Groß/Kleinschreibung spielt keine Rolle:

* CL             z.B. Spalte1 *EQ 123 *AND Spalte2 *GT 'ABC'
* RPG/SQL  z.B. Spalte1 = 123 and Spalte2 > 'ABC'
* JavaScript  z.B. {3} == 123 && {5} > 'ABC'


Abbildung 6: Bedingte Kontext-Menü-Punkte

ShortCut - Anstatt der Kontext-Menü-Auswahl kann die Auswahl auch über ShortCut erfolgen.

ShortCuts werden bei der Funktion WX_CtxMnuItm() bzw. bei den Prozeduren, über die die Standard-Auswahlen definiert werden können, über Schlüssel-Wort ShortCut registriert.

Sofern für die Kontext-Menü-Auswahl ein ShortCut definiert wurde, wird dieser bei der Kontext-Menü-Auswahl angezeigt

Syntax: ShortCut(xxx)

* ShortCut(Funktionstaste) ShortCut(F6)
ShortCut(Alt+Funktionstaste) →
ShortCut(Alt+F6)
ShortCut(Alt+Ziffer)
ShortCut(Alt+2)
ShortCut(Alt+Buchstabe)
ShortCut(Alt+A)
ShortCut(Ctrl+Funktionstaste)
ShorCut(Ctrl+F8)
ShortCut(Ctrl+Ziffer)
→ ShortCut(Crtl+3)
ShortCut(Ctrl+Buchstabe)
ShortCut(Ctrl+B)


Abbildung 7: Kontext-Menü-Punkte mit ShortCuts

Aufbereitungsoptionen für Buttons in Worktables

Für Buttons in Worktables können die folgenden Aufbereitungsoptionen angegeben werden:

Window - Das Folge-Programm wird in einem Fenster-Format ausgegeben.

Confirm  - Anzeige Bestätigungsfenster vor Aufruf des eigentlichen Verarbeitungsprogramms

  • Confirm - Default-Bestätigungstext
  • Confirm(X) - X = Message-Text oder Message-Id für Individuelle Nachrichten

ShortCut - Anstatt auf den Button zu Klicken, dann die Aktion auch über einen Shortcut aktiviert werden.

ShortCuts werden bei der Funktion WX_WrkBtn() bwz. bei den Funktionen über die die Standard-Buttons definiert werden können mit Hilfe des Schlüssel-Wortes ShortCut registriert.

Sofern für den Button ein ShortCut hinterlegt wurde, wird dieser im Button-Text angezeigt.

Buttons, die über Shortcut aktiviert werden können, müssen nicht zwangsläufig angezeigt werden. Wenn Buttons über Shortcuts aktiviert und abgeblendet werden sollen, muss im Schlüssel-Wort ShortCut ein zweiter Parameter mit dem Wert hidden angegeben werden.


Syntax: ShortCut(xxx) oder ShortCut(xxx,hidden)

* ShortCut(Funktionstaste) →  ShortCut(F6) oder ShortCut(F6,hidden)
ShortCut(Alt+Funktionstaste)
ShortCut(Alt+F6)
ShortCut(Alt+Ziffer)
 ShortCut(Alt+2)
ShortCut(Alt+Buchstabe)
ShortCut(Alt+A)
ShortCut(Ctrl+Funktionstaste)
ShortCut(Ctrl+F8)
ShortCut(Ctrl+Ziffer)
ShortCut(Crtl+3)
ShortCut(Ctrl+Buchstabe)
ShortCut(Ctrl+B)

BackColor(Farbe) - Hintergrundfarbe [ ehemals bgColor(Farbe) ]

Mit Hilfe des Schlüssel-Wortes BackColor kann die Hintergrund-Farbei bei einer Spalte festgelegt bzw. geändert werden.

  • Backcolor(red) Angabe der Farbe z.B. red, blue, white
  • Backcolor(#FFF5B7) Angabe der Farbe als Hex-Wert

FontColor -  Schriftfarbe  [ ehemals fntcolor(Farbe) ]


Über das Schlüssel-Wort FontColor(Farbe) kann die Text-Farbe von Buttons vorgegeben werden. Die Angabe der Farbe erfolgt wie in HTML, also z.B. Farbe in englisch fontcolor(red). Alternativ kann anstatt der Farbe auch ein Hex-Wert angegeben werden, z.B. Fontcolor(#FFF5B7)

HelpText -  Hilfe-Texte, die bei Mouse Over angezeigt werden.

Sofern für die Mesage-Id für den Button-Text bzw. den Kontext-Menü-Item-Text ein Level2-Text hinterlegt ist, wird dieser bei Mouse-Over automatisch angezeigt.

Durch das Schlüssel-Wort HelpText können auch andere Hilfe-Texte eingebunden werden. Der Hilfe-Text kann in Verbindung mit dem Schlüssel-Wort HelpText direkt angegeben oder als Message-Id hinterlegt werden.

HelpText(Dies ist ein HilfeText) - Direkte Angabe des Hilfe-Textes
HelpText(MSG4711) - Hilfe-Text wird aus der Message-Id (Level1) ermittelt


NoHelpText -Keinen Hilfetext anzeigen

Über das Schlüssel-Wort NoHelpText kann die Anzeige des Level2 Hilfe-Textes für Buttons und Kontext-Menü-Einträge verhindert werden.

WaitMsg - Das Schlüssel-Wort WaitMsg kann angegeben werden, wenn über einen Klick auf einen Button oder einer Kontext-Menü-Auswahl ein Programm ohne Anzeige aufgerufen wirde.

Sofern das Schlüssel-Wort WaitMsg bei einem Button oder Kontext-Menü-Eintrag angegeben wurde, wird bei Aktivierung des Buttons bzw. bei Aufruf des Programms eine „Uhr" angezeigt, die erst bei Beendigung der Verarbeitung wieder abgeblendet wird.

Abbildung 1: Bildschirm-Anzeige, wenn WaitMsg aktiviert wurde

Der angezeigte Text, kann durch die Angabe einer Message-Id oder einer Meldung im Klartext bei Schlüssel-Wort WaitMsg gesteuert werden.
Beispiele:

Work-Programm: Button und Kontext-Menü-Item

Wx_WrkBtn('WAITBTN': 'TSTB004': 'WaitMsg(BST0009)');
Wx_CtxMnuItm('WAITCTX': 'TSTC004': 'WaitMsg(Bitte Warten!)');

Change-Programm: Button

Wx_ChgBtn('EXWAIT' : 'TSTB004': 'waitMsg(BST0009)');

Aufbereitungsoptionen für Felder in Detail-Anzeigen (Change-Programmen)

Alle Aufbereitungsoptionen, die auch für Filterfelder gelten

Für Felder in Detail-Anzeigen/Change Tables können für die Auswahl und Anzeige die gleichen Aufbereitungsoptionen wie für die Filter-Felder angegeben werden.

Daneben gibt es noch weitere Optionen, die nur für Change Tables gelten

Output - Nur Ausgabe-Feld

Im Anzeige-Modus wird die Option automatisch von WOPiXX gesetzt.

NotRequired - Keine Eingabe erforderlich (Default-Wert)

Required - Eingabe erforderlich Muss-Feld

NewLine - Nächstes Feld in nächste Zeile (Default-Wert)

NoNewLine - Nächstes Filter-Feld in der gleichen Zeile

Password - Verschlüsselt Eingabe

Checkbox - Für Schalter (0/1)

  • 1 oder Y - Häkchen (eingabefähiges Feld)
  • 0 oder N - Leeres (eingabefähiges) Feld
  • CheckBox(Left) - Text immer auf der linken Seite

TextArea - Für einen Text-Bereich

Anzahl Zeilen und Spalten/Zeichen müssen als Parameter-Werte bei Schlüssel-Wort TextArea angegeben werden:

TextArea(10, 80) = Text-Bereich 10 Zeilen hoch und 80 Zeichen breit

EditText - Editierbarer Textbereich

Anzahl Zeilen und Spalten/Zeichen müssen als Parameter-Werte bei Schlüssel-Wort EditText angegeben werden.

EditText(10, 80) = editierbarer Textbereich 10 Zeilen hoch und 80 Zeichen breit


Abbildung 8: Text-Bereiche

Img(IFSDatei, Breite, Höhe, Benutzer) -  Bild anzeigen

Zur Anzeige von Bildern muss ist die Definition eines reinen Ausgabe-Feldes (ohne Inhalt) erforderlich.

Bei dem Schlüssel-Wort können bis zu 4 Parameter, mindestens jedoch der erste angegeben werden. Die einzelnen Parameter werden durch Kommata von einander getrennt

* Parameter1: IFSDatei - Pfad und Name des Bildes
Parameter2: Breite - Numerischer Wert
Parameter3: Höhe - Numerischer Wert
Parameter4: Benutzer

isWWW - Text in einem Ausgabe-Feld wird als Link interpretiert.

Bei Klick auf den Text wird der Link aktiviert.

LibObj -IBM i - Objekt (objekt - bibliothek)

Das Schlüssel-Wort LibObj kann verwendet werden für ein 20-stelliges alphnumerisches Feld, in dem sich auf den ersten 10 Stellen ein Objekt-Name und ab Stelle 11 ein Bibliotheks-Name hinterlegt ist.

Wird das Schlüssel-Wort LibObj angegeben, wird das 20-stellige Feld in der Ausgabe in zwei unabhängige Felder gesplittet. In dem ersten Feld wird der Bibliotheks-Name und in dem zweiten Feld der Objekt-Name des Objekts angezeigt. In der Anzeige sind beide Felder durch einen Schrägstrich (Slash /) getrennt.

Beim Sichern werden die Werte aus beiden Feldern wieder zusammengefasst und in die 20-stellige RPG-Variable ausgegeben.


Abbildung 2: Anzeige qualifiziertes Objekt bei Schlüssel-Wort LibObj

Obj(*ObjectType) - Ergänzung zu LibObj: Objektart

Das Schlüssel-Wort LibObj und das Schlüssel-Wort Obj(*ObjectType) gehen Hand in Hand.

Wird zusätzlich zu dem Schlüssel-Wort LibObj das Schlüssel-Wort Obj(*ObjType) angegeben, wird ein Matchode –Fenster, aus dem qualifizierte Objekte des angegebenen Objekt-Typen ausgewählt werden.

Die ObjektTypen werden wie im CL mit vorangestelltem Sternchen, also z.B. *SRVPGM oder *FILE angegeben.

Wird das Schlüssel-Wort LibObj ohne das Schlüssel-Wort Obj(*ObjectType) angegeben, wird kein Matchode-Fender bereitgestellt.

Neben diesen speziellen Schlüssel-Worten können bei der Definition von Ein-/Ausgabe-Feldern auch alle Schlüssel-Worte, die auch für Filter-Felder zulässig sind, verwendet werden.

Beispiel

dcl-ds gblPgmLib_ds   qualified inz;
  PGM                 like(FldRef.PGM);
  LIB                 like(FldRef.LIB);
end-ds

gblPgmLib_ds.PGM = FEEPGM;
gblPgmLib_ds.LIB = FEELIB;

Wx_ManChgFldChar('PGMLIB' : %addr(gblPgmLib_ds : 'DWB0416' : 20 : 'Obj(*srvpgm) LibObj');


erzeugt diese Ausgabe:


ismailbox - Name einer directmail-Mailbox

Nur verfügbar, wenn das Lizenzprodukt directmail installiert ist.

Mit dieser Option wird bestimmt, dass der Feldinhalt der Name einer Mailbox von directmail (WRKMBX). Die Auswahlliste wird automatisch gesetzt und enthält die Namen der verfügbaren Mailboxen.

Beispiel

        Wx_ManChgFldChar('ARmailbox' :%Addr(ARmailbox) : 'DWB0273' : %Len(ARmailbox): 'ismailbox');

Lässt den Benutzer eine der existierenden Mailboxen auswählen:

HTML-Code für die Formatierung verwenden (Stylesheets für Felder)

Es ist möglich, für jedes Programm und jedes Feld eine CSS-Datei mit speziellen Formatierungsangaben zu hinterlegen. Damit kann die Darstellung beeinflusst werden, z.B. Fontgrösse, Positionierung, Farbe, usw.

Weitere Informationen dazu finden Sie auf der Seite Möglichkeiten zur Layout-Steuerung.

Aufbereitungsoptionen für Header

Für Header-Felder können die folgenden Aufbereitungsoptionen angegeben werden.

NewLine - Nächstes Feld in nächste Zeile (Default-Wert)

AddFlt -Feld in die SELECT-Anweisung einbinden

Addflt kann für Header-Anweisungen in WRK-Programmen verwendet werden. Wird das Schlüssel-Wort addflt angegeben, wird diese Information als Filter (zusätzliche WHERE-Bedingung) in die Abfrage integriert.

Beispiel: Für einen Auftrag sollen die Auftrags-Positionen angezeigt werden. Die Auftrags-Nr., sowie weitere Informationen über den Auftrag (z.B. Kunde, Lieferadresse, Liefertermin, Lieferbedingungen etc) werden als Header-Informationen (mit WX_HdrFileFld und/oder WX_HdrFld) definiert.
Angenommen, die Auftrags-Nr. ist ein Teil-Schlüssel der Auftrags-Positionen. Um die Auftrags-Positionen für einen bestimmten Auftrag anzuzeigen, muss die Auftrags-Nr. als Schlüssel-Wert (zusätzliche WHERE-Bedingung) in die Abfrage integriert werden. Wird bei den Funktionen Wx_HdrFileFld und WX_HdrFld das Schlüssel-Wort addflt angegeben, werden diese Informationen automatisch als Schlüssel (WHERE-Bedingungen) übernommen.

Alle anderen Header-Informationen (z.B. Kunde, Lieferadresse, Liefertermin, Lieferbedingungen etc) werden ohne das Schlüssel-Wort addflt definiert, da diese Informationen (vermutlich) weder in der Auftrags-Positions-Datei vorhanden sind, noch als Filter (WHERE-Bedingung) einer Abfrage auf die Auftrags-Positions-Datei hinzugefügt werden dürfen.