Download: WOPIXX_Programmiererhandbuch_V02

Werbung
BENUTZERHANDBUCH
Programmierer-Handbuch
BENUTZERHANDBUCH
Vertrieb
TOOLMAKER ADVANCED EFFICIENCY GMBH
D-86916 Kaufering, Westendstraße 34
Telefon: (+49) 08191-968-111
Telefax: (+49) 08191-968-100
Hotline
TOOLMAKER HOTLINE
Telefon: (+49) 040-559 19 62
Telefax: (+49) 040-559 19 08
Bildschirme
Die abgebildeten iSeries-Masken in diesem Handbuch
entsprechen nur bedingt dem tatsächlichen Layout.


Handbuch Version 2.10 (ausgedruckt am 24.02.2015),
Handbuch bezieht sich auf Software Release 2.10
Layout: Toolmaker Advanced Efficiency GmbH, Kaufering
© Copyright: 2009-2014 Toolmaker Advanced Efficiency GmbH
B EN UT ZERHA ND BUC H 3
Inhalt
Vertrieb ....................................................................................................................... 2
Hotline ........................................................................................................................ 2
Inhalt .......................................................................................................................... 3
1. ..................................................................................................... Allgemeine Informationen 9
1.1 Neuerungen seit Version 2.11 ............................................................................................ 12
2. ............................................................................................................... Quellen und Objekte 14
2.1 Bibliotheken ...................................................................................................................... 14
2.2 Binderverzeichnisse ........................................................................................................... 14
2.3 Aktivierungsgruppen .......................................................................................................... 15
2.4 Copy-Strecken .................................................................................................................. 16
2.4.1 Upgrade und Änderung von Copy-Strecken ............................................................. 16
2.4.2 Einbindung von Copy-Strecken ................................................................................ 17
2.4.3 Copy-Strecke WX_HSPECS H-Bestimmungen....................................................... 17
2.4.3.1 Individuelle Anpassung der H-Bestimmungen............................................. 19
2.4.3.2 Individuelle H-Bestimmungen .................................................................... 19
2.4.4 WX_HCOPYR Copyright ....................................................................................... 20
2.4.5 Copy-Strecke WX_FLDREF Referenz-Felder und Datenstrukturen ......................... 21
2.4.5.1 Copy-Strecken zur Referenzierung von Variablen ....................................... 21
2.4.5.2 Referenzierung und Prototypen ................................................................. 22
2.4.5.3 Referenz-Datenstruktur FLDREF ................................................................ 22
2.4.5.4 Referenz-Datenstrukturen für lange Text-Felder.......................................... 23
2.4.6 WX_PROTO Prototypen ........................................................................................ 25
2.5 Default-HTML-Dokumente ................................................................................................. 26
3. .................................................................................... Erstellen von WOPiXX-Programmen 27
4. ...............................................................................................................WOPiXX-Prozeduren 29
4.1 WOPiXX-Prozeduren im Überblick ...................................................................................... 29
4.1.1 Prozeduren für Work-Tables..................................................................................... 29
4.1.2 Prozeduren für Change Tables ................................................................................. 30
4.2 Parameter in WOPiXX-Prozeduren ..................................................................................... 31
4.3 Aufbereitungsoptionen für WOPiXX .................................................................................... 32
4.3.1 Steuerungsoptionen für HTML-Dokumente ............................................................... 32
4.3.1.1 Steuerungsoptionen nur für Work-Tables ................................................... 32
4.3.2 Vergleichsoperatoren für Filter Felder ........................................................................ 32
4.3.3 Aufbereitungsoptionen für Filter-Felder...................................................................... 34
4.3.4 Aufbereitungsoptionen für Spalten ............................................................................ 38
4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte ........................................................... 39
4.3.6 Aufbereitungsoptionen für Buttons ........................................................................... 42
4.3.7 Aufbereitungsoptionen für Detail-Anzeigen ................................................................ 43
4.3.8 Aufbereitungsoptionen für Header ............................................................................ 44
4.4 Standard-Bearbeitungs-Modi ............................................................................................. 44
4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern ................................................................... 45
4.6 Bedienerhilfe ..................................................................................................................... 48
4.7 Reihenfolge der Prozedur-Aufrufe....................................................................................... 49
4.8 Physische Dateien, SQL Tabellen oder Views...................................................................... 52
4.8.1 DDS beschriebene logische Dateien ......................................................................... 52
4.8.2 Dateien direkt verknüpfen oder SQL Views?.............................................................. 52
B EN UT ZERHA ND BUC H 4
4.8.3 Datei- und Feld-Namen............................................................................................ 53
4.9 Datenstrukturen und Ein-/Ausgabe-Felder .......................................................................... 53
4.10 Mehrsprachigkeit ............................................................................................................... 54
4.11 Work-Programm ............................................................................................................... 55
4.11.1 Template für Work-Programm .................................................................................. 56
4.11.2 Wx_OpnHTMLWrk() HTML Dokument öffnen ......................................................... 56
4.11.3 Prozeduren zur Definition von Filter-Feldern .............................................................. 57
4.11.3.1 WX_GENFLT() Generischer Filter ............................................................. 57
4.11.3.2 Wx_FltFile() Datei für Filter definieren........................................................ 59
4.11.3.3 Wx_FltFld() Filter-Feld definieren .............................................................. 61
4.11.3.4 Wx_FltFileFld() Filterfile und 1.Feld definieren............................................ 64
4.11.3.5 Wx_BegEnhFlt() Beginn erweiterter Filter ................................................. 66
4.11.4 Bedingte Filter-Felder Condition Group .................................................................. 67
4.11.4.1 Wx_FltIf() Beginn der Condition Group..................................................... 68
4.11.4.2 Wx_FltElse Else-Anweisung .................................................................... 68
4.11.4.3 Wx_FltEndIf() Ende Condition Group ....................................................... 69
4.11.4.4 Condition Group - Beispiel für den Aufruf ................................................... 70
4.11.5 Inline-Filter............................................................................................................... 70
4.11.5.1 WX_FltHelp Bedienerhilfe zu Filter hinzufügen .......................................... 72
4.11.5.2 Wx_FltNoHelp Bedienerhilfe für Filter unterbinden .................................... 73
4.11.6 Prozeduren für Kontext-Menü und Buttons ............................................................... 74
4.11.6.1 Wx_NoCtxMnuItm() Ohne Standard-Kontext-Menü.................................. 75
4.11.6.2 Wx_CtxMnuItmChange() Menü-Punkt Ändern.......................................... 76
4.11.6.3 Wx_CtxMnuItmCopy() Menü-Punkt Kopieren ........................................... 77
4.11.6.4 Wx_CtxMnuItmDelete() Menü-Punkt Löschen .......................................... 78
4.11.6.5 Wx_CtxMnuItmProperty() Menü-Punkt Anzeigen/Eigenschaften................ 79
4.11.6.6 Wx_CtxMnuItmDefault() Standard-Kontext-Menü ..................................... 80
4.11.6.7 Wx_CtxMnuItm() Kontextmenüpunkt definieren .......................................... 81
4.11.6.8 Wx_NoWrkBtn() Ohne Standard-Buttons................................................. 83
4.11.6.9 Wx_WrkBtnAdd() Button Hinzufügen/Erfassen ......................................... 84
4.11.6.10 Wx_WrkBtnDefault() Standard-Buttons.................................................... 85
4.11.6.11 Wx_WrkBtn() Button definieren .................................................................. 86
4.11.6.12 Wx_WrkBtnReseq- Resequenzierung ........................................................ 88
4.11.6.13 Wx_WrkBtnEdtList Editierbare Worktables .............................................. 89
4.11.7 Prozeduren zur Erstellung der Work Tables ............................................................... 90
4.11.7.1 Wx_WrkFile() Datei für Work Table definieren ........................................... 90
4.11.7.2 Prozeduren zur Definition von Schlüsseln ................................................... 93
4.11.7.2.1 Wx_WrkKeyRRN() Schüssel = Relative Satz-Nr. ................... 93
4.11.7.2.2 Wx_WrkKeyFld() Definieren Schlüssel-Felder ........................ 94
4.11.7.3 Wx_WrkFld() Feld/Spalte definieren ............................................................ 95
4.11.7.4 Wx_WrkWhere() Where-Bedingungen ........................................................ 97
4.11.7.5 Wx_WrkDftOrder() Default-Sortierung (Order By)......................................... 98
4.11.7.6 Wx_WrkSQLMan() SQL Select-Statement .................................................. 99
4.11.8 Prozeduren zur Ausgabe von Worktables ................................................................100
4.11.8.1 Wx_NoRcdTxt() - Anzahl Datensätze ausblenden .....................................101
4.11.8.2 Wx_RcdTxt Beliebiger Satz-Text ............................................................102
4.11.8.3 Wx_WrtWrkTbl() Worktable ausgeben ....................................................103
4.12 Ermitteln von Schlüssel-Werten .........................................................................................104
4.12.1 Wx_GetDBKeyInt() Ganzzahliger Schlüssel-Wert....................................................105
4.12.2 Wx_GetDBKeyArrInt() Gruppe von ganzzahligen Schlüssel-Werte...........................105
4.12.3 Wx_GetDBKeyDec() Numerischer Schlüssel-Wert .................................................106
4.12.4 Wx_GetDBKeyArrDec() Gruppe von dezimalen Schlüssel-Werten...........................107
4.12.5 Wx_GetDBKeyChar() Alphanum. Schlüssel-Wert ...................................................108
4.12.6 Wx_GetDBKeyArrChar() Gruppe von alphanumerischen Schlüssel-Werten .............109
4.12.7 Wx_GetDBKeyUC() Unicode-Schlüssel-Wert .........................................................110
B EN UT ZERHA ND BUC H 5
4.13
4.14
4.15
4.16
4.12.8 Wx_GetDBKeyArrUC() Gruppe von Unicode- Schlüssel-Werten .............................111
4.12.9 Wx_GetDBKeyFldChar() Zusammengesetzte Schlüssel..........................................112
4.12.10
Wx_GetDBKeyFldArrChar() Gruppe von zusammengesetzten Schlüsseln.113
Ermitteln und Setzen von Parameter-Werten......................................................................114
4.13.1 Allgemeine Parameter .............................................................................................115
4.13.1.1 Wx_SetParmChar() Setzen Parameter ....................................................116
4.13.1.2 Wx_SetParmArrChar() Setzen mehrere Parameter ..................................116
4.13.1.3 Wx_SetParmUC() Setzen Unicode-Parameter.........................................117
4.13.1.4 Wx_SetParmArrUC() Setzen mehrere Unicode- Parameter ......................118
4.13.1.5 Wx_GetParmChar() Ermitteln Parameter-Wert ........................................119
4.13.1.6 Wx_GetParmArrChar() Ermitteln mehrere alphanumerische Parameter .....120
4.13.1.7 Wx_GetParmUC() Ermitteln Unicode-Para-meter-Wert ............................120
4.13.1.8 Wx_GetParmArrUC() Ermitteln mehrere Unicode-Parameter-Werte..........121
4.13.2 Benannte Parameter ...............................................................................................122
4.13.2.1 Wx_SetNamedParm() Setzen alphanumerischen Parameter ....................122
4.13.2.2 Wx_SetNamedParmUC() Setzen Unicode-Parameter..............................123
4.13.2.3 Wx_SetNamedParmDec()
Setzen numerischen Parameter mit DezimalPositionen ..............................................................................................................124
4.13.2.4 Wx_SetNamedParmInt() Setzen ganzzahligen numerischen Parameter ....125
4.13.2.5 Wx_SetNamedParmDate() Setzen Datums-Parameter ............................125
4.13.2.6 Wx_SetNamedParmTime() Setzen Zeit-Parameter ..................................126
4.13.2.7 Wx_SetNamedParmTimestamp() Setzen Zeitmarken-Parameter..............127
4.13.2.8 Wx_GetNamedParm()
Ermitteln benannten alphanumerischen ParameterWert
128
4.13.2.9 Wx_GetNamedParmUC() Ermitteln benannten Parameter-Wert in Unicode
128
4.13.2.10 Wx_GetNamedParmDec() Ermitteln benannten numerischen Parameter-Wert
mit Dezimal-Positionen ...........................................................................................129
4.13.2.11 Wx_GetNamedParmInt() Ermitteln benannten ganzzahligen Parameter-Wert
130
4.13.2.12 Wx_GetNamedParmDate() Ermitteln benannten Datums-Parameter-Wert 131
4.13.2.13 Wx_GetNamedParmTime() Ermitteln benannten Zeit-Parameter-Wert ......131
4.13.2.14 Wx_GetNamedParmTimestamp()
Ermitteln benannten ZeitmarkenParameter-Wert......................................................................................................132
Ermitteln/Prüfen Modi .......................................................................................................133
4.14.1 Wx_isModeAdd() Modus Hinzufügen ....................................................................134
4.14.2 Wx_isModeChange() Modus Ändern .....................................................................135
4.14.3 Wx_isModeCopy() Modus Kopieren ......................................................................136
4.14.4 Wx_isModeDelete() Modus Löschen .....................................................................136
4.14.5 Wx_isModeProperty() Modus Anzeigen .................................................................137
4.14.6 Wx_isModeWrite() Modus Hinzufügen oder Kopieren .............................................138
4.14.7 Wx_isModeSave() Modus Sichern .........................................................................139
4.14.8 Wx_isModeApply() Modus Übernehmen................................................................140
4.14.9 Wx_isModeUpdate() Modus Sichern oder Übernehmen .........................................140
4.14.10
Wx_isModeOutput() Modus Anzeigen oder Eigenschaften .......................141
4.14.11
Wx_isMode() Prüfen beliebigen Modus ...................................................142
4.14.12
Wx_isModeReseq() Resequenzierung ....................................................143
4.14.13
Wx_isModeEdtList() Editierbare Worktable..............................................144
Umsortierung von Datensätzen in einer List-Anzeige ..........................................................145
4.15.1 Wx_GetReseqArrInt() Numerische Schlüssel-Werte in neuer Reihenfolge ................146
4.15.2 Wx_GetReseqArrChar() alphanumerische Schlüssel-Werte in neuer Reihenfolge .....147
4.15.3 Wx_GetReseqArrUC() Unicode-Schlüssel-Werte in neuer Reihenfolge ....................149
4.15.4 Wx_GetReseqString() AlphaString mit Schlüsseln in neuer Reihenfolge ...................150
4.15.5 Wx_GetReseqStringUC() Unicode-String mit Schlüsseln in neuer Reihenfolge .........151
Editierbare List-Anzeigen ..................................................................................................152
B EN UT ZERHA ND BUC H 6
4.17
4.18
4.19
4.20
4.16.1 XML-Dokument für editierbare Worktables - Aufbau .................................................153
4.16.2 Wx_GetEdtListXML() Empfangen alphanumerisches XML-Dokument mit geänderten
Werten.............................................................................................................................154
4.16.3 RPG-Code Empfangen/Verarbeiten XML-Dokument..............................................155
Direkter Aufruf von CGI-Programmen ................................................................................156
4.17.1 Wx_CallPGM() Direkter Aufruf CGI-Programm .......................................................156
Change Programm ...........................................................................................................159
4.18.1 Template für Change-Programm .............................................................................160
4.18.2 Wx_OpnHTMLChg() HTML Dokument öffnen ........................................................161
4.18.3 Wx_ChgNavTab() Reiter definieren ........................................................................162
4.18.4 Wx_ChgBtn Buttons definieren .............................................................................164
4.18.5 Wx_ChgFile() Datei für Change Table definieren .....................................................166
4.18.6 Wx_ChgFld() Felder in Change Tables definieren ...................................................167
4.18.7 Wx_ChgFileFld() Datei und 1.Feld definieren ..........................................................170
4.18.8 Definieren Arbeits-Felder/Variablen ..........................................................................172
4.18.8.1 Wx_ManChgFld() Definieren Variable für jeden Datentypen ......................173
4.18.8.2 Wx_ManChgFldChar Def. alphanumerische Variable fixer Länge..............175
4.18.8.3 Wx_ManChgFldVarChar Def. alphanumerische Variable variabler Länge ..177
4.18.8.4 Wx_ManChgFldUC2 Definieren Unicode-Variable mit fixer Länge ............179
4.18.8.5 Wx_ManChgFldVarUC2 Definieren Unicode-Variable mit variabler Länge .181
4.18.8.6 Wx_ManChgFldPack() Definieren gepackte numerische Variable .............183
4.18.8.7 Wx_ManChgFldZone() Definieren gezonte numerische Variable ...............184
4.18.8.8 Wx_ManChgFldInt() Definieren ganzzahlige Variable ................................186
4.18.8.9 Wx_ManChgFldFloat() Definieren Fließkomma-Variable ...........................188
4.18.8.10 Wx_ManChgFldDate() Definieren Datums-Variable ..................................189
4.18.8.11 Wx_ManChgFldTime() Definieren Zeit-Variable ........................................191
4.18.8.12 Wx_ManChgFldTimestamp() Definieren Zeit-Variable...............................192
4.18.8.13 Wx_ManChgFldRef() Definieren Variable basierend auf Referenz-Feld ......194
4.18.9 Bedienerhilfe ..........................................................................................................195
4.18.9.1 Wx_ChgHelp Bedienerhilfe hinzufügen ...................................................197
4.18.9.2 Wx_ChgNoHelp Bedienerhilfe unterbinden .............................................197
4.18.10
Bedingte Ein-/Ausgabe-Felder Condition Group .....................................198
4.18.10.1 Wx_ChgIf() Beginn der Condition Group .................................................199
4.18.10.2 Wx_ChgElse() Else-Anweisung...............................................................199
4.18.10.3 Wx_ChgEndIf() Ende Condition Group....................................................200
4.18.10.4 Condition Group Beispiel..........................................................................201
4.18.11
Definition von HTML-Tabellen ...................................................................201
4.18.11.1 Wx_HTMLTbl Definition Tabelle..............................................................201
4.18.11.2 Wx_HTMLTblColHdg() Definition Spalten ................................................203
4.18.12
Wx_GetChgInput() Empfangen Eingabe-Daten .......................................205
4.18.13
Error-Handling .........................................................................................206
4.18.13.1 Wx_FldErr() Individuelle Fehlermeldung für Ein-/Ausgabe-Feld .................207
4.18.13.2 Wx_MultFldErr() Individuelle Fehlermeldung für mehrere Felder ................209
4.18.13.3 Wx_isChgFldErr() Prüfung mindestens eine individuelle Fehlermeldung.....211
4.18.14
Prozeduren zum Beenden von Change Tables ..........................................212
4.18.14.1 Wx_RtnPrv() Rücksprung auf vorgelagertes Programm ...........................212
4.18.14.2 Wx_WrtChgTbl() Beenden Change Programm ........................................213
Header-Informationen .......................................................................................................215
4.19.1 Wx_HdrText() Beliebigen Text in Header ausgeben ................................................215
4.19.2 Wx_HdrFile() Datei für Header-Informationen .........................................................217
4.19.3 Wx_HdrFld() Feld für Header-Informationen ...........................................................219
4.19.4 Wx_HdrFileFld() Datei und erstes Feld für Header ..................................................222
Sonstige Funktionen .........................................................................................................223
4.20.1 Wx_SplitStringArr() String in Feldgruppe splitten ....................................................223
4.20.2 Wx_SplitStringArrUC2() Unicode-Test in Feldgruppe splitten ..................................225
B EN UT ZERHA ND BUC H 7
5. ............................................................................................................... Beispiel-Programme 228
5.1 Work-Programm EXWRKAD01 .........................................................................................228
5.1.1 Programm EXWRKAD01 Web-Anzeige .................................................................228
5.1.2 Programm EXWRKAD01 - Source Code..................................................................228
5.2 Change-Programm EXCHGAD01 Adress-Stamm............................................................230
5.2.1 H-, F- und globale D-Bestimmungen .......................................................................232
5.2.2 Haupt-Programm ...................................................................................................233
5.2.3 Int_ReadData() Einlesen Daten..............................................................................236
5.2.4 Int_HdrFldDfn() Header Information .......................................................................236
5.2.5 Int_ChgFldDfn() Ein-/Ausgabe-Feld-Definition ........................................................237
5.2.6 Int_ChkInput() Eingabe-Prüfung ............................................................................240
5.2.7 Int_WrtUpdate() Daten fortschreiben .....................................................................240
5.2.8 Int_Dlt() Datensätze löschen .................................................................................242
6. .............................................................................................................WOPiXX Verwaltung 244
6.1 Starten/Beenden WOPiXX-Server......................................................................................244
6.2 Anmeldung unter WOPiXX ................................................................................................246
6.3 WOPiXX Menü im Überblick ...........................................................................................248
6.3.1 WOPiXX Verwaltungs-Programme ........................................................................248
6.3.2 WOPiXX IBM i Allgemeine Verwaltung ...................................................................251
6.4 WOPiXX Benutzer verwalten...........................................................................................253
6.4.1 List-Anzeige: Benutzer ............................................................................................254
6.4.2 Detail-Anzeige: Ändern/Erstellen Benutzer ...............................................................256
6.4.2.1 Erstellen/Ändern Anwender ......................................................................256
6.4.2.2 Erstellen/Ändern Gruppen-Profile..............................................................260
6.5 Bibliothekslisten................................................................................................................263
6.5.1 Allgemeine Bibliothekslisten ....................................................................................264
6.5.1.1 List-Anzeige Bibliothekslisten....................................................................264
6.5.1.2 Bibliothekslisten bearbeiten ......................................................................265
6.5.1.2.1 Bibliothekslisten erfassen...........................................................265
6.5.1.2.2 Bibliothekslisten anzeigen/ändern/kopieren ................................267
6.5.1.2.3 Bibliothekslisten löschen............................................................268
6.5.1.3 Bibliothekslisten verwalten........................................................................269
6.5.1.3.1 Bibliothek hinzufügen ................................................................270
6.5.1.4 Verwendung der Bibliothekslisten .............................................................271
6.5.2 Zuordnen Bibliotheksliste zu Anwendung .................................................................272
6.5.2.1 Zuordnung Bibliotheksliste/Anwendung bearbeiten....................................274
6.5.2.1.1 Zuordnung Bibliotheksliste / Anwendung erstellen ......................274
6.5.2.1.2 Zuordnung Bibliotheksliste / Anwendung ändern ........................275
6.5.2.1.3 Zuordnung Bibliotheksliste / Anwendung löschen .......................275
6.5.2.1.4 Alle Bibliothekslisten/ Anwendung anzeigen................................276
6.5.2.1.5 Bibliotheksliste anzeigen/bearbeiten ...........................................277
6.5.3 Zuordnen Bibliotheksliste zu Programm ...................................................................277
6.5.3.1 Zuordnung Bibliotheksliste/Anwendung bearbeiten....................................278
6.5.3.1.1 Zuordnung Bibliotheksliste / Programm erstellen ........................278
6.5.3.1.2 Zuordnung Bibliotheksliste / Programm ändern/anzeigen ............279
6.5.3.1.3 Zuordnung Bibliotheksliste / Programm löschen .........................280
6.5.3.1.4 Bibliothekliste anzeigen/bearbeiten ............................................280
7. ....................................................................................... Einrichten WOPiXX-Anwendungen 282
7.1 Anwendung .....................................................................................................................282
7.1.1 List-Anzeige Anwendungen.....................................................................................282
7.1.2 Wartung der Anwendungsdaten ..............................................................................285
7.1.2.1 Neue Anwendung erstellen.......................................................................286
7.1.2.2 Anwendung anzeigen/ändern ...................................................................289
B EN UT ZERHA ND BUC H 8
7.2
7.3
7.4
7.5
7.6
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.1.2.3 Anwendung löschen ................................................................................291
Standard Buttons/Items für List-Anzeigen..........................................................................291
Standard Buttons .............................................................................................................293
Anwendung kopieren........................................................................................................295
Anwendung umbenennen .................................................................................................296
Anwendungsmenü ...........................................................................................................298
7.6.1 List-Anzeige Anwendungsmenü ..............................................................................299
7.6.1.1 Anwendungsmenü bearbeiten ..................................................................301
7.6.1.2 Anwendungsmenü-Punkt erstellen............................................................301
7.6.1.3 Anwendungsmenü-Punkt anzeigen/ändern ...............................................304
7.6.1.4 Anwendungsmenü-Punkt löschen ............................................................305
Sprachen .........................................................................................................................306
7.7.1 List-Anzeige Sprachen ............................................................................................307
7.7.2 Sprachen bearbeiten ..............................................................................................308
7.7.2.1 Sprachen erfassen ...................................................................................309
7.7.2.2 Sprachen anzeigen/ändern.......................................................................310
7.7.2.3 Sprachen löschen ....................................................................................310
Parameter-Control-Informationen ......................................................................................311
7.8.1 List-Anzeige Parameter-Control-Daten ....................................................................313
7.8.2 Parameter-Control-Header bearbeiten .....................................................................316
7.8.3 Parameter-Control-Daten erstellen ..........................................................................317
7.8.4 Parameter-Control-Daten löschen ...........................................................................320
7.8.5 Parameter-Control-Detail-Informationen...................................................................320
7.8.5.1 Parameter-Control-Details erstellen...........................................................323
7.8.5.2 Parameter-Control-Details ändern/anzeigen ..............................................325
7.8.5.3 Parameter-Control-Details löschen ...........................................................326
Parameter übernehmen ....................................................................................................326
SQL-Abfrage ....................................................................................................................328
7.10.1 List-Anzeige SQL-Abfragen .....................................................................................330
7.10.2 SQL-Abfrage Erstellen ............................................................................................334
7.10.3 SQL-Abfragen Ändern/Anzeigen .............................................................................338
7.10.4 SQL-Abfragen Löschen ..........................................................................................339
7.10.5 SQL-Abfragen Spalten List-Anzeige ......................................................................340
7.10.5.1 SQL-Abfragen Spalten bearbeiten ............................................................342
7.10.6 SQL-Abfragen Berechtigungen List-Anzeige..........................................................347
7.10.6.1 SQL-Abfragen Berechtigungen erfassen ...................................................349
7.10.6.2 SQL-Abfragen Berechtigungen anzeigen/ändern .......................................350
7.10.6.3 SQL-Abfragen Berechtigungen löschen ....................................................351
SQL-Abfragen umbenennen .............................................................................................352
SQL-Abfragen übernehmen (kopieren)...............................................................................353
Parameter/Combo-Boxen.................................................................................................355
7.13.1 Vorhandene Comboboxen/Parameter .....................................................................356
7.13.2 List-Anzeige Parameter / Comboboxen verwalten .................................................356
B EN UT ZERHA ND BUC H 9
1.
Allgemeine Informationen
WOPiXX ist eine Sammlung von ILE Prozeduren und Funktionen, mit deren Hilfe Web-Anwendungen allein mit RPGIV erstellt werden können. Kenntnisse von HTML, JavaScript, CSS oder stateless Programmierung sind nicht erforderlich.
WOPiXX basiert auf dem Tool Dirweb.
Directweb steuert den Aufruf und die Verarbeitung von Web-Programmen mit Hilfe von AJAXTechnologien (Asynchronous Javascript And XML). Der Programmierer muss lediglich über WOPiXX die
anzuzeigenden Dateien, Felder oder Spalten definieren und sofern gewünscht Aufbereitungsoptionen für
die einzelnen Felder angeben.
Weiterhin liefert Directweb Werkzeuge zur Verwaltung und Integration der Web-Programme. So können
die Web-Programme in einem Menü hinterlegt werden. Bibliothekslisten können auf Programm- oder
Anwendungsebene zugeordnet werden. Es bestehen Möglichkeiten zur Hinterlegung von Informationen
und SQL-Statements, die in die WOPiXX-Programme eingebunden werden können, und die zur Laufzeit
als Combo-Boxen oder Matchcode-Programme aufbereitet werden.
Aktuell werden von Dirweb/WOPiXX die folgenden Anzeige-Formate unterstützt:
List-Anzeigen (oder Work Tables/Programme):
Listanzeigen können mit Subfiles in der Green-Screen-Programmierung verglichen werden. Über
AJAX-Technologien sind automatisch (ohne zusätzliche Programmierung) Funktionen, wie Vertauschen der einzelnen Spalten, beliebige Festlegung der Spaltenbreite, auf- und absteigende Sortierung nach einzelnen Spalten oder Nachladen von Datensätzen integriert.
Für Listanzeigen können diverse Filter definiert werden, durch die zur Laufzeit nur die gewünschten
Informationen aus den Tabellen selektiert werden.
Kontext-Menü-Punkte und Buttons zum Aufruf von Folge-Programmen können beliebig definiert
werden.
B EN UT ZERHA ND BUC H 10
Kontext-Menü
 Anzeige bei Rechtsclick
Abbildung 1: Beispiel List-Anzeige/Work Table
Detail-Anzeige (oder Change Tables/Programme):
Detail-Anzeigen entsprechen den Detail-Anzeigen in der Green-Screen-Programmierung.
Der Programmierer definiert die Dateien/Tabellen oder Views, sowie die anzuzeigenden/zu erfassenden Felder/Spalten. Es ist möglich diverse Reiter anzulegen unter denen die Felder/Spalten
gruppiert werden. Aufbereitungsoptionen der einzelnen Felder/Spalten werden über SchlüsselWorte gehandelt.
Das Einlesen der Daten, die Prüfungen sowie das Fortschreiben der Daten obliegt weiterhin dem
Programmierer.
Auch bei der Detail-Anzeige können Buttons für Bearbeitungsoptionen (z.B. Sichern der erfassten
Daten) oder zum Aufruf von Folge-Programmen definiert werden.
B EN UT ZERHA ND BUC H 11
B EN UT ZERHA ND BUC H 12
Abbildung 2: Detail-Anzeige / Change Table
1.1
Neuerungen seit Version 2.11

Benannte Parameter
Informationen für den Folge-Aufruf (bzw. für die komplette Session) können in Form
von benannten Parametern, d.h. unter einem beliebigen Namen gesichert werden.
Es werden Funktionen zur Verfügung gestellt, über die benannte Parameter(-Werte) in
fast jedem beliebigen Datentyp (Alpha, Unicode, gepackt/gezont, ganzzahlig, Datum,
Zeit und Zeitmarke) gesichert werden kann.
Des weiteren werden Funktionen zur Verfügung gestellt, über die die gesicherten benannten Parameter-Werte in den o.g. Datentypen empfangen werden können.

Editierbare Listen
Durch die Definition des Buttons EdtList bzw. den Aufruf der Funktion
Wx_WrkBtnEdtList() können Spalten-Inhalte in List-Anzeigen geändert werden.
Bei Klick auf den definierten Button werden die geänderten Spaltenwerte an das Programm zurückgegeben.
Durch die Angabe des Schlüssel-Wortes Output bei der Spalten-Definition können die
Spalten vor einer Änderung geschützt werden.

ShortCuts für Buttons und Kontext-Menü-Anzeigen
Mit Hilfe des neuen Schlüssel-Wortes ShortCut können für alle Buttons (in List- und
Detail-Anzeigen), sowie für Kontext-Menü-Punkte ShortCuts definiert werden.
Die ShortCuts stellen für den Anwender eine Alternative zum Mouseclick bzw. zur
Kontext-Menü-Auswahl über die rechte Mouse-Taste dar.
B EN UT ZERHA ND BUC H 13

Neue Schlüssel-Worte für Comboboxen

DayName

DayNameNum

MonthName

MonthNameNum
Combobox mit Wochentagsnamen jeweils in der
Spache des aktuellen Anwenders
Rückgabe-Wert: Name des Wochentags
Sortierung nach numerischem Wochentag (Montag=1,
Sonntag=7)
Combobox mit Wochentagsnamen jeweils in der
Sprache des aktuellen Benutzers
Rückgabe-Wert: Numerischer Wochentag (Montag=1)
Sortierung nach dem numerischen Wochentag
Combobox mit Monatsnamen jeweils in der Sprache
des aktuellen Benutzers
Rückgabe-Wert: Monats-Name
Sortierung nach dem numerischen Monat
Combobox mit Monatsnamen jeweils in der Spache
des aktuellen Benutzers
Rückgabe-Wert: numerischer Monat (Januar=1)
Sortierung nach dem numerischen Monat

Bilder in List-Anzeigen (Aufpoppen in vorgegebener Größe)
Bilder in Listanzeigen werden über das Schlüssel-Wort image gesteuert.
Wird nur das Schlüssel-Wort image angegeben, so wird beim Mouseover das Bild in
Original-Größe angezeigt.
Über zusätzliche Parameter bei Schlüssel-Wort image kann die Anzeigegröße festgelegt werden  Image(Breite,Höhe)

Schlüssel-Wort isLink
Bei Schlüssel-Wort isLink wird bei einem Klick per Default in das Folge-Programm im
Änderungsmodus verzweigt.
Wird das Schlüssel-Wort isLink(Output) angegeben, wird in das Folge-Programm im
Anzeigemodus verzweigt.
B EN UT ZERHA ND BUC H 14
2.
Quellen und Objekte
2.1
Bibliotheken
Für die WOPIX-Entwicklung wurden zunächst die folgenden Bibliotheken angelegt.


WOPIX
Objekt-Bibliothek
WOPIXSRC Quellen-Bibliothek
In der Quellen-Bibliothek WOPIXSRC befindet sich der Source Code für alle WOPiXX-Programme und
Service-Programme, sowie die DDS-Datei-Beschreibungen und die SQL-Skripte zur Erstellung von Datenbankenobjekten (Tabellen, Views, Indices, Sequences, etc.).
Die Quellenbibliothek WOPIXSRC wird nicht ausgeliefert.
Alle zur Erstellung von WOPiXX-Programmen benötigten Quellen, d.h. Prototypen, Referenz-Felder und
Referenz-Datenstrukturen sind in der Bibliothek WOPIX hinterlegt und werden somit ausgeliefert.
Da WOPiXX auf Directweb basiert wird auch die Bibliothek DIRWEB ausgeliefert. In dieser Bibliothek befinden sich alle zur Laufzeit benötigten Programm- und Service-Programm-Objekte, sowie Prototypen
und Referenz-Felder und Referenz-Datenstrukturen, die zur Erstellung von Directweb und/oder
WOPiXX-Programmen erforderlich sind.
Für die Umwandlung von WOPiXX-Programmen sollten die beiden Objekt-Bibliotheken in der folgenden
Reihenfolge in der Bibliotheksliste hinterlegt sein:



QTEMP
WOPIX
DIRWEB
Die Bibliothekslisten, die zur Laufzeit verwendet werden, werden in Directweb gesetzt. Wartungsprogramme über die die Bibliothekslisten vordefiniert und zugeordnet werden können, werden zur Verfügung gestellt.
Werden die Bibliotheken WOPIX und DIRWEB nicht in der Bibliotheksliste für die individuellen WOPiXXProgramme hinterlegt, werden sie zur Laufzeit (der WOPiXX-Programme) automatisch in die Bibliotheksliste aufgenommen
2.2
Binderverzeichnisse
Alle WOPiXX- und Directweb-Prozeduren sind in Service-Programmen hinterlegt.
Um die Auflistung der Service-Programme beim Erstellen der individuellen WOPiXX-Programme zu vermeiden, wurden die Service-Programme in Binder-Verzeichnissen zusammengefasst.
B EN UT ZERHA ND BUC H 15
Alle Service-Programme, in denen WOPiXX-Prozeduren enthalten sind, sind in Binderverzeichnis
WXBNDDIR in Bibliothek WOPIX hinterlegt. Die Service-Programme mit den Dirweb-Prozeduren sind in
Binderverzeichnis DWBNDDIR in Bibliothek DIRWEB hinterlegt.
Die Binder-Verzeichnisse müssen beim Erstellen der individuellen WOPiXX-Programme angegeben werden.
Toolmaker stellt die Copy-Strecke WX_HSPECS (2.4.3 Copy-Strecke WX_HSPECS H-Bestimmungen)
in Datei QCPYLESRC in Bibliothek WOPIX zur Verfügung. Wird diese Copy-Strecke in die individuellen
WOPiXX-Programme integriert, werden die Binder-Verzeichnisse beim Erstellen der Programme mit Option 14 in PDM bzw. dem CL-Befehl CRTBNDRPG (CRPG-Binderprogramm erstellen) automatisch integriert.
* Binding Directories
/IF NOT DEFINED(HBndDir)
H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE')
/ENDIF
Source Code 1: H-Bestimmungen
2.3
Binderverzeichnisse
Auszug aus Copy-Strecke WX_HSPECS
Aktivierungsgruppen
Da es sich sowohl bei den WOPiXX- als auch bei den Dirweb-Prozeduren um echte ILE Prozeduren
handelt, können die individuellen WOPiXX-Programme nicht in der Default-Aktivierungsgruppe (=
Default-Wert in Befehl CRTBNDPRG) erstellt werden, d.h. die Option DFTACTGRP=*NO ist nicht zulässig.
Da in dem steuernden Dirweb-Programm intensiv mit Pointern gearbeitet wird und Pointer bzw. die zugeordneten Speicherbereiche nicht in unterschiedlichen Aktivierungsgruppen verwaltet werden können,
müssen die individuellen WOPiXX-Programme in der gleichen Aktivierungsgruppe wie das steuernde
Dirweb-Programm ausgeführt werden, d.h. die Option
muss im Compile-Befehl
oder den H-Bestimmungen angegeben werden.
Bei Einbindung der Copy-Strecke WX_HSPECS (2.4.3 Copy-Strecke WX_HSPECS
HBestimmungen), wird beim Erstellen der individuellen WOPiXX-Programme mit Option 14 im PDM bzw.
dem CL-Befehl CRTBNDRPG die Aktivierungsgruppe auf *CALLER gesetzt.
* Activation Group
/IF NOT DEFINED(HActGrp)
/DEFINE HActGrp
/IF Defined (*CRTBNDRPG)
H DftActGrp(*No) ActGrp('QILE')
/ENDIF
/ENDIF
Source Code 2: H-Bestimmungen
Aktivierungsgruppe
Auszug aus Copy-Strecke WX_HSPECS
B EN UT ZERHA ND BUC H 16
2.4
Copy-Strecken
Für die Entwicklung von Web-Anwendungen mit WOPIXX werden die folgenden Copy-Strecken zur Verfügung gestellt.




WX_HSPECS
H-Bestimmungen
- Alle wichtigen Schlüssel-Worte
WX_HCOPYR
H-Bestimmung - Schlüsselwort Copyright
WX_FLDREF D-Bestimmungen
Referenz-Felder und -Datenstrukturen
WX_PROTO D-Bestimmungen
Alle WOPiXX-Prototypen
Alle Copy-Strecken und Prototypen, die in den Bibliotheken DIRWEB und WOPIX ausgeliefert werden,
können vom Programmierer zur Definition von Referenz-Feldern oder Datenstrukturen bzw. zum Aufruf
von Prozeduren verwendet werden.
Anmerkung:
Die in den Bibliotheken WOPIX und DIRWEB zur Verfügung gestellten Copy-Strecken können vom Programmierer in die Programme eingebunden
werden.
Der Source Code in den Copy-Strecken sollte jedoch vom Programmierer
nicht verändert werden. Toolmaker übernimmt keine Verantwortung für
Fehler, die durch Manipulation der zur Verfügung gestellten Quellen auftreten könnten.
2.4.1
Upgrade und Änderung von Copy-Strecken
Diese Copy-Strecken werden jeweils bei einem Upgrade von WOPiXX ausgetauscht.
Referenz-Felder und Datenstrukturen, die in den Copy-Strecken hinterlegt sind werden von Toolmaker
nur in Ausnahmefällen geändert.
Alle Parameter-Felder, die in Prototypen definiert sind, basieren auf diesen Referenz-Definitionen.
Vorhandene Prozeduren bzw. deren Prototypen werden von Toolmaker allenfalls dahingehend erweitert,
dass optionale Parameter ans Ende der Parameter-Liste hinzugefügt werden.
Anmerkung:
Nach einem Upgrade sollten die individuellen WOPiXX-Programme erneut
kompiliert werden, um sicherzustellen, dass die Parameter- und VariablenDefinitionen übereinstimmen.
Um Probleme mit abweichenden Feld-Definitionen zu vermeiden, sollten
Variablen und Parameter-Felder, die an WOPiXX-Prozeduren übergeben
werden mit Schlüssel-Wort LIKE oder LIKEDS basierend auf den entsprechenden Referenz-Felder bzw. Datenstrukturen definiert werden.
B EN UT ZERHA ND BUC H 17
2.4.2
Einbindung von Copy-Strecken
Die von Toolmaker zur Verfügung gestellten Copy-Strecken können wahlweise mit /COPY oder
/INCLUDE in die individuellen Quellen eingebunden werden.
Der Unterschied zwischen beiden Angaben liegt darin wie der SQL Precompiler die Copy-Strecken behandelt. Bei Verwendung von /COPY wird die Copy-Strecke vom SQL Precompiler aufgelöst, während
sie bei Einbindung mit /INCLUDE übergangen wird. Dies hat besonders bei verschachtelten CopyStrecken Konsequenzen, da er SQL Precompiler verschachtelte Copy-Strecken nicht unbedingt verarbeiten kann.
Anmerkung:
2.4.3
Copy-Strecken mit Informationen, die von SQL nicht verwendet werden
mit /INCLUDE eingebunden werden.
Copy-Strecke WX_HSPECS
H-Bestimmungen
Die Copy-Strecke WX_HSPECS in der Quellen-Datei QCPYLESRC in der Bibliothek WOPIXX enthält die
H-Bestimmungen, die von Toolmaker zur Verfügung gestellt werden.
Die Copy-Strecke WX_HSPECS bzw. die integrierte Copy-Strecke H_SPECS (in Quellen-Datei
QCPYLESRC in Bibliothek DIRWEB) enthält die folgenden Schlüssel-Worte:
* Binding Directory
/IF NOT DEFINED(HBndDir)
/Define HBndDir
H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE')
/ENDIF
* Copyright
/INCLUDE QCPYLESRC,HCopyRight
* Activation Group
/IF NOT DEFINED(HActGrp)
/DEFINE HActGrp
/IF Defined (*CRTBNDRPG)
H DftActGrp(*No) ActGrp('QILE')
/ENDIF
/ENDIF
/IF NOT DEFINED(HDebug)
/DEFINE HDebug
H Debug
/ENDIF
* Edit Numeric Fields
/IF NOT DEFINED(HDecEdit)
/DEFINE HDecEdit
H DECEDIT('0,')
/ENDIF
* Edit Date/Time Values
/IF NOT DEFINED(HDateEdit)
/DEFINE HDateEdit
H DATEDIT(*DMY.)
/ENDIF
B EN UT ZERHA ND BUC H 18
* Instructions for Compile and Source Debugging
/IF NOT DEFINED(HOption)
/DEFINE HOption
/If Defined (*V6R1M0)
H Option(*NoDebugIO: *ShowCpy: *Ext: *SRCSTMT: *NoUnref)
/Else
H Option(*NoDebugIO: *ShowCpy: *Ext: *SRCSTMT)
/EndIf
/EndIf
* Work with NULL Values
/IF NOT DEFINED(HAlwNull)
/Define HAlwNull
H AlwNull(*UsrCtl)
/ENDIF
* Integer Fields defined within files/tables will not be converted into packed
/IF NOT DEFINED(HExtBinInt)
/Define HExtBinInt
H ExtBinInt(*YES)
/ENDIF
* CCSID From/To convert UCS2 and for calling java methods
/IF NOT DEFINED(HCCSID)
/Define HCCSID
H CCSID(*CHAR: *JOBRUN)
/ENDIF
* Interim results will never have less decimal positions as the final result
* --> Reduces the risc of problems caused by rounding interim results
/If Not Defined (HExprOpts)
/Define HExprOpts
H ExprOpts(*ResDecPos)
/EndIf
* RPG without multithreading
/If Defined (*V6R1M0)
/If Not Defined (HThread)
/Define HThread
H Thread(*SERIALIZE)
/EndIf
/EndIf
Source Code 3: Copy-Strecke WX_HSPECS - H-Bestimmungen
Bei Einbindung der Copy-Strecke WX_HSPECS können individuelle WOPiXX-Programme direkt mit Befehl CRTBNDRPG (Option 14 in PDM) umgewandelt werden, ohne dass die Default-Einstellungen (insbesondere Aktivierungsgruppe und Binderverzeichnisse) manuell angepasst werden müssen.
Die Verwendung der Copy-Strecke WX_HSPECS ist weder zwingend erforderlich, noch müssen alle
Optionen mit den angegebenen Ausprägungen verwendet werden. Die Aktivierungsgruppe muss jedoch
auf *CALLER gesetzt werden und das Binderverzeichnis WXBNDDIR im Binderschritt verwendet werden.
Alle Schlüssel-Worte in der Copy-Strecke WX_HSPECS sind durch Compiler-Direktiven bedingt und
können deshalb beliebig deaktiviert und ersetzt werden.
B EN UT ZERHA ND BUC H 19
2.4.3.1 Individuelle Anpassung der H-Bestimmungen
Alle Schlüssel-Worte in der Copy-Strecke WX_HSPECS sind durch Compiler-Direktiven bedingt und
können beliebig aktiviert oder deaktiviert werden.
Im folgenden Beispiel wird die Option BNDDIR um das individuelle Binderverzeichnis MYBNDDIR
erweitert. Anschließend wird die Copy-Strecke WX_HSPECS eingebunden. Durch das Setzen der
Compiler-Direktive /Define HBNDDIR werden die in der Copy-Strecke WX_HSPECS angegebenen
Binder-Verzeichnis-Einträge übergangen.
/Define HBndDir
H BndDir('WXBNDDIR': 'DWBNDDIR': 'QC2LE', 'MYBNDDIR')
/INCLUDE WX_HSPECS
Source Code 4: Deaktivieren / Ändern Aktivierungsgruppe in Copy-Strecke
Die Verwendung der Copy-Strecke WX_HSPECS ist nicht zwingend erforderlich, d.h. der Anwender
kann nicht nur einzelne Optionen ändern, sondern die kompletten H-Bestimmungen austauschen.
2.4.3.2 Individuelle H-Bestimmungen
Wird die Copy-Strecke WX_HSPECS verwendet, können die individuellen WOPiXX-Programme direkt mit CRTBNDRPG (Auswahl 14 in PDM) kompiliert werden.
Bei der Verwendung von individuellen H-Bestimmungen muss folgendes beachtet werden:
Umwandlung mit CRTBNDRPG (RPG-Binderprogramm erstellen)
o Da aus WOPiXX-Programmen ILE-Prozeduren aufgerufen werden, dürfen die Programme nicht
in der Default-Aktivierungsgruppe ausgeführt werden.
Aus diesem Grund muss die Option DFTACTGRP (Standardaktivierungsgruppe) in dem Compile-Befehl CRTBNDRPG auf *NO gestellt werden.
o
Individuelle WOPiXX-Programme müssen in der gleichen Aktivierungsgruppe wie das steuernde Dirweb-Programm laufen.
Deshalb muss die Option ACTGRP (Aktivierungsgruppe) im Compile-Befehl mit *CALLER angegeben werden.
o
Die Service-Programme, in denen die WOPiXX-Funktionen hinterlegt sind, sind in Binderverzeichnis WXBNDDIR hinterlegt.
Die Service-Programme mit den Dirweb-Funktionen sind in Binderverzeichnis DWBNDDIR hinterlegt.
Aus diesem Grund muss bei Kompilierung mit CRTBNDRPG zumindest das Binderverzeichnis
WXBNDDIR in der Option BNDDIR (Binderverzeichnis) angegeben werden.
Falls zusätzlich auch Directweb-Prozeduren in den individuellen CGI-Programmen verwendet
werden sollen, muss auch das Binderverzeichnis DWBNDDIR in der Option BNDDIR angegeben werden.
B EN UT ZERHA ND BUC H 20
Anstatt den Compile-Befehl anzupassen, können die notwendigen Informationen auch in den HBestimmungen hinterlegt werden. Die Kompilierung kann anschließend über CRTBNDRPG ohne Anpassung erfolgen.
Bei Programmen, die embedded SQL beinhalten erfolgt die Kompilierung über den Befehl
CRTSQLRPGI (SQL ILE RPG-Objekt erstellen). Dieser Befehl hat keine Optionen um die Aktivierungsgruppe oder Binderverzeichnisse vorzugeben. Deshalb müssen bei Programmen mit embedded SQL
die benötigten Informationen in den H-Bestimmungen hinterlegt werden.
H-Bestimmungen
o Das Schlüssel-Wort DFTACTGRP in den H-Bestimmungen überschreibt zur Compile-Zeit den
Eintrag in Option DFTACTGRP im Compile-Befehl CRTBNDRPG.
Werden H-Bestimmungen verwendet, sollte DFTACTGRP(*NO) angegeben werden.
o
Das Schlüssel-Wort ACTGRP in den H-Bestimmungen überschreibt zur Compile-Zeit den Eintrag in Option ACTGRP im Compile-Befehl CRTBNDRPG.
Werden H-Bestimmungen verwendet sollte ACTGRP(*CALLER) angegeben werden.
o
Werden im Schlüssel-Wort BNDDIR in den H-Bestimmungen Binderverzeichnisse angegeben,
wird die Option im BNDDIR im Compile-Command nicht überschrieben, sondern die in den HBestimmungen hinterlegten Binderverzeichnisse werden zusätzlich zu den im Compile-Befehl
hinterlegten Binderverzeichnisse verwendet.
Werden H-Bestimmungen verwendet sollte zumindest das Binderverzeichnis WXBNDDIR angegeben werden. Sofern auch Directweb-Prozeduren aufgerufen werden sollten, sollte zusätzlich das Binderverzeichnis DWBNDDIR angegeben werden.
Die Binderverzeichnisse müssen im Schlüssel-Wort BNDDIR in Hochkommata und in Großbuchstaben und durch Kommata getrennt angegeben werden.
2.4.4
WX_HCOPYR
Copyright
In der Copy-Strecke WX_HCOPYR in Datei QCPYLESRC in Bibliothek WOPIX ist das Copyright hinterlegt.
Diese Copy-Strecke ist in der Copy-Strecke WX_HSPECS integriert.
In der ausgelieferten Copy-Strecke sind aktuell die Toolmaker-Daten hinterlegt. Für die eigenen Programme können die Daten vom Programmierer überschieben werden. Dabei sollte jedoch berücksichtigt werden, dass bei einem Upgrade die Copy-Strecke ausgetauscht wird und damit die individuell
geänderten Daten verloren gehen.
/IF NOT DEFINED(HCopyRight)
/DEFINE HCopyRight
H COPYRIGHT('(C) Toolmaker Advanced Efficiency (www.toolmaker.de)')
/ENDIF
Source Code 5: Copy-Strecke WX_HCOPYR
B EN UT ZERHA ND BUC H 21
Anstatt die Daten in der Copy-Strecke zu ändern, kann das Copyright über eine Compiler-Direktive deaktiviert und durch eigene Angaben in den jeweiligen Programmen ersetzt werden.
Im folgenden Beispiel werden die Copyright-Informationen im individuellen WOPiXX-Programm deaktiviert und durch die eigenen Daten ersetzt.
/Define HCopyRight
H CopyRight('MyCompany, Wald-und-Wiesenweg 17, 12345 MeineStadt')
Source Code 6: Austausch von Copyright Informationen
2.4.5
Copy-Strecke WX_FLDREF
Datenstrukturen
Referenz-Felder und
In der Copy-Strecke WX_FLDREF in Datei QCPYLESRC in Bibliothek WOPIX bzw. in der integrierten
Copy-Strecke D_FLDREF in Datei QCPYLESRC in Bibliothek DIRWEB sind alle Referenz-Felder und Referenz-Datenstrukturen, die zur Definition von Variablen und Parameter-Feldern in den WOPiXXProzeduren verwendet wurden hinterlegt.
Die Referenz-Felder und Datenstrukturen sind bis einschließlich Release V5R4 mit dem Schlüsselwort
BASED definiert, ab Release 6.1 mit Schlüssel-Wort TEMPLATE, d.h. die Felder- und Datenstrukturen
dürfen/können nur zur Referenzierung verwendet werden und dürfen nicht direkt angesprochen werden.
Die folgenden Referenz-Datenstrukturen sind in der Copy-Strecke D_FLDREF und damit auch in der
Copy-Strecke WX_FLDREF integriert.





FLDREF
Qualifizierte Externe Datenstruktur auf Feld-Referenz-Datei DWFLDREF
FLDREFLA Qualifizierte Referenz-Datenstruktur für lange alphanumerische Variablen (RPGDatentyp A)
FLDREFMA Qualifizierte Referenz-Datenstruktur für (mittlere) alphanumerische Variablen (RPGDatentyp A)
FLDREFLU Qualifizierte Referenz-Datenstruktur für lange Unicode-Variablen (RPG-Datentyp C)
FLDREFMU Qualifizierte Referenz-Datenstruktur für (mittlere) Unicode-Variablen (RPG-Datentyp C)
Die übrigen Referenz-Datenstrukturen, in Copy-Strecke D_FLDREF sind zur Definition von Variablen für
individuelle WOPiXX-Programme nicht relevant.
2.4.5.1 Copy-Strecken zur Referenzierung von Variablen
Die Copy-Strecken, die zur Definition von Parameter-Feldern verwendet werden, sind jeweils direkt in
den Copy-Strecken für die Prototypen integriert. Da die Prototypen in die individuellen WOPiXXProgramme eingebunden werden müssen, werden die Referenz-Felder und Datenstrukturen ebenfalls
eingebunden. Eine separate Einbindung der Copy-Strecken mit den Referenz-Informationen ist somit in
den individuellen WOPiXX-Programmen nicht erforderlich.
B EN UT ZERHA ND BUC H 22
Da alle Referenz-Datenstrukturen durch Compiler-Direktiven bedingt sind, treten bei mehrfacher Einbindung der gleichen Copy-Strecke bzw. bei mehrfacher Definition der gleichen Datenstruktur keine Probleme auf. Die erste Definition wird verwendet, die folgenden Definitionen werden ignoriert.
Bei WOPiXX-Programmen mit embedded SQL muss ggf. die Copy-Strecke D_FLDREF angegeben
werden, da der SQL Precompiler verschachtelte Copy-Strecken abhängig vom Release u.U. nicht auflösen kann.
2.4.5.2 Referenzierung und Prototypen
Alle in den Prototypen hinterlegten Parameter-Felder wurden basierend auf den Feldern in der FeldReferenz-Datei oder anderen in den Copy-Strecken WX_FLDREF und D_FLDREF definiert.
Variablen oder Datenstruktur-Unterfelder, über die Daten mit den WOPiXX-Funktionen ausgetauscht
werden, können genau wie die Parameter-Felder in den Prototypen definiert werden.
Anmerkung:
Um Probleme mit unterschiedlichen Definitionen zu vermeiden, und um
Änderungen (z.B. Feldlänge oder Anzahl Elemente einer Feldgruppe) ohne
Anpassungen zu ermöglichen, wird empfohlen alle individuellen Variablen,
über die Informationen mit den WOPiXX-Funktionen ausgetauscht werden,
über die Referenzen zu definieren.
2.4.5.3 Referenz-Datenstruktur FLDREF
Die Feld-Referenz-Datei (DWFLDREF) wird in der Copy-Strecke WX_FLDREF (bzw. in der Copy-Strecke
D_FLDREF) als externe qualifizierte Datenstruktur definiert. Durch die Angabe des Schlüssel-Wortes
BASED (bzw. TEMPLATE) kann die Datenstruktur bzw. können die Datenstruktur-Unterfelder nur zur
Referenzierung verwendet, jedoch nicht direkt angesprochen werden.
/IF NOT DEFINED(FldRef)
/DEFINE FldRef
D FldRef
E DS
D
/EndIf
EXTNAME(DWFLDREF) Qualified
based(DummyPtr)
Source Code 7: Referenz-Datenstruktur FLDREF für Feld-Referenz-Datei DWFLDREF
Im folgenden Beispiel werden eine stand-alone Variable und Datenstruktur-Unterfelder basierend auf in
der Feld-Referenz-Datei hinterlegten Feldern definiert.
D LocMsgText
S
Like(FldRef.MsgText)
D DSObjQual
D
Obj
D
Lib
DS
Qualified
Like(FldRef.Obj)
Like(FldRef.Lib) inz('*LIBL')
/Free
LocMsgText = 'Dies ist eine Nachricht';
B EN UT ZERHA ND BUC H 23
DSObjQual.Obj = 'MYFILE';
/End-Free
Source Code 8: Definition von Variablen und Datenstruktur-Unterfelder über Feld-Referenz-Datei)
2.4.5.4 Referenz-Datenstrukturen für lange Text-Felder
Da physische (Feld-Referenz-)Dateien nur bis zu einer maximalen Satz-Länge von 32740 Byte definiert
werden können, wurden für längere Text-Felder separate Referenz-Datenstrukturen angelegt.
Die folgenden Referenz-Datenstrukturen wurden definiert:
Referenz-Datenstruktur FLDREFLA Lange alphanumerische Referenz-Text-Felder
In der Referenz-Datenstruktur wurden alphanumerische Referenz-Text-Felder mit fixer und variabler
Länge hinterlegt.
Die Feldlänge wurde auf 16350 Bytes/Zeichen beschränkt, da bei Verarbeitung mit (embedded)
SQL die maximale Länge eines Double-Byte-Strings auf 16383 Zeichen beschränkt ist und ein
problemloser Austausch (ohne Abschneiden) zwischen Single- und Double-Byte-Texten erfolgen
soll.
/IF NOT DEFINED(FldRefLA)
/DEFINE FldRefLA
D FldRefLA
DS
D FixLen
D VarLen
Qualified based(DummyPtr)
16350A
16350A
Varying
/ENDIF
Source Code 9: Referenz-Datenstruktur FldRefLA
Im folgenden Beispiel wird ein Text-Feld basierend auf dem Datenstruktur-Unterfeld VARLEN in der
Datenstruktur FLDREFLA definiert
D MyText
S
Like(FldRefLA.VarLen)
/Free
MyText = 'Dies ist eine Nachricht';
/End-Free
Source Code 10: Definition und Verwendung von langen alphanumerischen Texten
Referenz-Datenstruktur FLDREFMA mittlere alphanumerische Referenz-Text-Felder
In der Referenz-Datenstruktur wurden alphanumerische Referenz-Text-Felder mit fixer und variabler
Länge hinterlegt.
Die Feldlänge wurde auf 4096 Zeichen festgelegt, um eine Zwischenstufe zwischen den langen (Referenz-)Texten (16350 Zeichen) und den kurzen (Referenz-)Texten (256 Zeichen) zu schaffen.
/IF NOT DEFINED(FldRefMA)
B EN UT ZERHA ND BUC H 24
/DEFINE FldRefMA
D FldRefMA
DS
D FixLen
D VarLen
Qualified based(DummyPtr)
4096A
4096A
Varying
/ENDIF
Source Code 11: Referenz-Datenstruktur FLDREFMA
Im folgenden Beispiel wird ein Text-Feld basierend auf dem Datenstruktur-Unterfeld VARLEN in der
Datenstruktur FLDREFMA definiert
D MyText
S
Like(FldRefMA.VarLen)
/Free
MyText = 'Dies ist eine Nachricht';
/End-Free
Source Code 12: Definition und Verwendung von mittleren alphanumerischen Texten
Referenz-Datenstruktur FLDREFLU lange Unicode Referenz-Text-Felder
In der Datenstruktur FLDREFLU werden Unicode-Referenz-Textfelder mit fixer und variabler Länge
hinterlegt.
Die Länge der Datenstruktur-Unterfelder entspricht der Länge der Datenstruktur-Unterfelder in der
Referenz-Datenstruktur FLDREFLA.
/IF NOT DEFINED(FldRefLU)
/DEFINE FldRefLU
D FldRefLU
DS
D FixLen
D VarLen
Qualified based(DummyPtr)
16350C
16350C
Varying
/ENDIF
Source Code 13: Referenz-Datenstruktur FLDREFLU
Im folgenden Beispiel wird ein Text-Feld basierend auf dem Datenstruktur-Unterfeld VARLEN in der
Datenstruktur FLDREFLU definiert und verwendet.
D MyText
S
Like(FldRefLU.VarLen)
/Free
MyText = %UCS2('Dies ist eine Nachricht');
/End-Free
Source Code 14: Definition und Verwendung von langen Unicode-Texten
Referenz-Datenstruktur FLDREFMU mittlere Unicode Referenz-Text-Felder
In der Datenstruktur FLDREFMU werden Unicode-Referenz-Textfelder mit fixer und variabler Länge
hinterlegt.
Die Länge der Datenstruktur-Unterfelder entspricht der Länge der Datenstruktur-Unterfelder in der
Referenz-Datenstruktur FLDREFMA.
/IF NOT DEFINED(FldRefMU)
B EN UT ZERHA ND BUC H 25
/DEFINE FldRefMU
D FldRefMU
DS
D FixLen
D VarLen
/ENDIF
Qualified based(DummyPtr)
4096C
4096C
Varying
Source Code 15: Referenz-Datenstruktur FLDREFMU
Im folgenden Beispiel wird ein Text-Feld basierend auf dem Datenstruktur-Unterfeld VARLEN in der
Datenstruktur FLDREFMU definiert und verwendet.
D MyText
S
Like(FldRefMU.VarLen)
/Free
MyText = %UCS2('Dies ist eine Nachricht');
/End-Free
Source Code 16: Definition und Verwendung von mittleren Unicode-Texten
Die Copy-Strecke WX_FLDREF ist in der Quellen-Datei QCPYLESRC in Bibliothek WOPIX hinterlegt.
2.4.6
WX_PROTO
Prototypen
Die Prototypen für die WOPiXX-Prozeduren sind in Teildateien mit dem gleichen Namen wie die Quelle,
in der die Prozedur codiert wurde, in der Datei QPROLESRC in der Bibliothek WOPIX hinterlegt.
Die Prototypen für Directweb-Prozeduren sind in Teildateien mit dem gleichen Namen wie die Quelle, in
der die Prozedur codiert wurde, in der Datei QPROLESRC in der Bibliothek DIRWEB hinterlegt.
In allen Teildateien, in denen Prototypen definiert werden, werden die Copy-Strecken mit den FeldReferenzen, die zur Definition der Parameter-Felder verwendet wurden, integriert. Damit ist eine zusätzliche Einbindung der Feld-Referenzen im WOPiXX-Programm nicht erforderlich.
Alle Prototypen und Referenz-Datenstrukturen sind durch Compiler-Direktiven bedingt, so dass eine
(versehentliche) Mehrfacheinbindung der gleichen Copy-Strecke bzw. Datenstruktur nicht zu Problemen
führt.
Um das Handling für WOPiXX-Programmierer zu vereinfachen, wurden alle Prototypen (incl. ReferenzDatenstrukturen) für die WOPiXX-Prozeduren in der Copy-Strecke WX_PROTO in der Dateien QPROLESRC in der Bibliothek WOPIX zusammengefasst.
Durch Einbindung der Copy-Strecke WX_PROTO werden alle WOPiXX-Prototypen eingebunden, d.h.
der Programmierer kann jede beliebige Prozedur aufrufen.
Das folgende Beispiel zeigt die Einbindung der Copy-Strecken WX_PROTO und D_FLDREF. Die Einbindung von Copy-Strecke D_FLDREF mit Anweisung /COPY ist nur in Programmen mit embedded SQL
erforderlich. Wenn das Programm embedded SQL enthält ist die Einbindung nur dann erforderlich,
wenn Hostvariablen (in embedded SQL verwendete Variablen) basierend auf den zur Verfügung gestellten Feldreferenzen definiert und eingesetzt werden.
B EN UT ZERHA ND BUC H 26
Im folgenden Beispiel werden die Copy-Strecken D_FldRef und WX_PROTO in den Source Code eingebunden.
H**** H-Bestimmungen
F**** F-Bestimmungen
D* Folg. Copy-Strecke nur bei embedded SQL
D/COPY QCPYLESRC,D_FLDREF
D/INCLUDE QCPYLESRC,WX_PROTO
Source Code 17: Einbindung der Copy-Strecken D_FLDREF und WX_PROTO
2.5
Default-HTML-Dokumente
Für Work- und Change-Programme werden Default-HTML-Dokumente zur Verfügung gestellt.


Wx_ChgDefault.html
Wx_WrkDefault.html
Default-Dokument für Change Tables (Einzel-Anzeige)
Default-Dokument für Work Tables (List-Anzeige)
Die Default-HTML-Dokumente werden beim Einrichten der Anwendung (7.1 Anwendung) in das Verzeichnis für HTML-Vorlagen übertragen.
Zur Laufzeit wird der HTML und JavaScript-Code aufbereitet. Der aufbereitete HTML- und Javascript
Code wird in die Default-Dokumente übertragen und an Stelle der Platzhalter ausgegeben.
Die Default-Dokumente können durch individuelle HTML-Dokumente mit individuellem HTML und JavaScript-Code ersetzt werden. Die individuellen HTML-Dokumente müssen jedoch die gleichen Platzhalter
wie die Default-Dokumente beinhalten.
Die Platzhalter sind durch ein führendes und folgendes Prozent-Zeichen gekennzeichnet, z.B. %ERRTXT%
B EN UT ZERHA ND BUC H 27
3.
Erstellen von WOPiXX-Programmen
Um WOPiXX-Programme erstellen zu können müssen die folgenden Voraussetzungen erfüllt sein.

H-Bestimmungen
Die Copy-Strecke WX_HSPECS kann in den H-Bestimmungen hinterlegt werden. Wird
die Copy-Strecke nicht verwendet, muss sichergestellt werden, dass das WOPiXXProgramm mit Aktivierungsgruppe *CALLER erstellt wird und das Binderverzeichnis
WXBNDDIR im Binderschritt verwendet wird.

Copy-Strecke WX_PROTO
Die Copy-Strecke WX_PROTO muss in den globalen D-Bestimmungen eingebunden
werden.
************************************************************************
* H - H E A D E R
S P E C I F I C A T I O N S
************************************************************************
* Copy-Strecke - Optional
H/INCLUDE QCPYLESRC,WX_HSPECS
***********************************************************************
* F - F I L E
S P E C I F I C A T I O N S
************************************************************************
F**** Globale Datei-Definitionen für Native I/O
************************************************************************
* D – D E F I N I T I O N
S P E C I F I C A T I O N S
************************************************************************
* PROTOTYPING
*--------------------------* Folgende Copy-Strecke abh. vom Release für embedded SQL erforderlich
D/COPY QCPYLESRC,D_FLDREF
* Copy-Strecke - Erforderlich
D/INCLUDE QPROLESRC,WX_PROTO
*
* PROCEDURE INTERFACE
*--------------------------**** Keine Parameter für WOPiXX-Programme
* GOBALE FELD-DEFINITONEN
*--------------------------D**** Globale Variablen und Datenstruktur-Definitionen
************************************************************************
* M A I N
P R O C E D U R E
************************************************************************
C**** Globale C-Bestimmungen – Hauptprogramm
C**** inklusive Subroutines (sofern erforderlich)
************************************************************************
* I N T E R N A L
P R O C E D U R E S
************************************************************************
**** Interne Prozeduren
Source Code 18 : Copy-Strecken und Grob-Aufbau von WOPiXX-Programmen

Bibliotheksliste
Zur Kompilierung müssen die Bibliotheken WOPIX und DIRWEB in der Bibliotheksliste
B EN UT ZERHA ND BUC H 28
vorhanden sein. Die Bibliothek WOPIX sollte vor der Bibliothek DIRWEB stehen und
beide Bibliotheken sollten nach der Bibliothek QTEMP stehen.

Umwandlung
WOPiXX-Programme können direkt mit dem Befehl CRTBNDRPG (bzw.
CRTSQLPGMI) umgewandelt werden, sofern nur ILE-Prozeduren von WOPiXX oder
Directweb aufgerufen werden.
Sofern aufgrund der individuellen Programmierung eine zweistufige Kompilierung erforderlich sein sollte (z.B. wenn mehrere Module gebunden werden sollen), so muss
der Programmierer dafür sorgen, dass im Binderschritt (CRTPGM) die Aktivierungsgruppe *CALLER und das Binderverzeichnis WXBNDDIR angegeben werden.
B EN UT ZERHA ND BUC H 29
4.
WOPiXX-Prozeduren
4.1
WOPiXX-Prozeduren im Überblick
Das komplette HTML-Dokument sowie der Datenaustausch zwischen RPG und HTML wird durch den
Aufruf von RPGIV-Prozeduren gesteuert.
4.1.1
Prozeduren für Work-Tables
Zur Erstellung und Verarbeitung von Work-Tables (List-Anzeigen) stehen die folgenden Prozeduren zur
Verfügung:
WorkTables
Zuordnung
Aktion
Prozeduren
Wx_GetParmChar()
Wx_GetParmArrChar()
Parameter
Wx_GetParmUC()
Wx_GetParmArrUC()
Wx_GetDBKeyInt()
Wx_GetDBKeyArrInt()
Wx_GetDBKeyDec()
Wx_GetDBKeyArrDec()
Key
Wx_GetDBKeyChar()
Get Info
Wx_GetDBKeyArrChar()
Wx_GetDBKeyUC()
Wx_GetDBKeyArrUC()
Wx_GetReseqString()
Wx_GetReseqArrInt()
Listen
Wx_GetReseqArrChar()
Wx_GetEdtListXML()
Wx_isModeEdtList
Modus
Wx_isModeReseq()
Öffnen
Wx_OpnHTMLWrk()
Wx_HdrFile()
Wx_HdrFld()
Header
Definition
Wx_HdrFldUC2()
Wx_HdrFileFld
Wx_HdrFileFldUC2()
Wx_GenFlt()
Wx_FltFile()
File/Fields Wx_FltFld()
Wx_FltFileFld()
Filter Definition
Wx_BegEnhFlt()
Wx_FltIf()
ConditionWx_FltElse()
Group
Wx_FltEndIf()
Wx_CtxMnuItm()
Work
Menü/
Wx_WrkBtn()
Definition
Table
Button
Wx_WrkBtnEdtList()
Wx_WrkBtnReseq()
Wx_WrkFile()
Wx_WrkKeyRRN()
Wx_WrkKeyFld()
Definition
Wx_WrkFld()
Wx_WrkWhere()
Wx_WrkDftOrder()
Work
SQL
Wx_WrkSQLMan()
Table
Wx_NoRcdTxt()
Wx_SetParmChar()
Wx_SetParmArrChar()
Ausgeben
Wx_SetParmUC()
Wx_SetParmArrUC()
Wx_WrtWrkTbl()
Tabelle 1: WOPiXX-Prozeduren für Work-Tables
Bezeichnung Prozedur
Einzelnen alphanumerischen Parameter-Wert empfangen
Mehrere alphanumerische Parameter-Werte empfangen
Einzelnen Unicode-Parameter-Wert empfangen
Mehrere Unicode Parameter-Werte empfangen
Einzelnen ganzzahlingen Schlüssel-Wert empfangen
Mehrere ganzzahlige Schlüssel-Werte empfangen
Einzelnen dezimalen Schlüssel-Wert empfangen
Mehrere dezimale Schlüssel-Werte empfangen
Einzelnen alphanumerischen Schlüssel-Wert empfangen
Mehrere alphanumerische Schlüssel-Werte empfangen
Einzelnen Unicode-Schlüssel-Wert empfangen
Mehrere Unicode Schlüssel-Werte empfangen
Empfangen Schlüssel-Werte in
String mit Trennzeichen
neuer Reihenfolge nach
Felgruppe mit Integer-Werten
Umsortierung/Resequenzierung
Feldgrppe mit alpha Werten
Empfangen XML-Dokument mit Änderungen aus List-Anzeige
Empfangen Änderungen in List-Anzeigen (XML-Dokument)
Empfangen Ergebnis bei Umsortierung List-Anzeige
Öffnen HTML für Work Table
Definieren Datei für Header Informationen
Definieren alphanumer. Header-Feld
Definieren Unicode Header-Feld
Definieren Datei und alphanumerisches Header-Feld
Definieren Datei und Unicode-Header-Feld
Generischen Filter Hinzufügen
Definieren Datei für Filter
Filter Feld hinzufügen
Definieren Filter Datei und Feld
Erweiterter Filter
Beginn Filter Condition Group
Else/ElseIf Filter Condition Group
Ende Filter Condition Group
Menüpunkt manuell hinzufügen
Button manuell hinzufügen
Button Änderungen in editierbarer List-Anzeige sichern
Button geänderte Reihenfoge in umsortierbarer List-Anzeige sichern
Definieren Dateien für Work Table
Definieren relative Satz-Nr. als eindeutigen Schlüssel für Work Table
Definieren eindeutige Schlüssel-Felder für Work Table
Definieren Spalte für Work Table
Where Bedingungen für Work
Default Sortierung in Work
Definieren SQL Statement für WorkTable manuell
Anzeige Anzahl
Setzen alphanumerischen Parameter-Wert
Setzen von mehreren alphanumerischen Parameter-Werten
Setzen Unicode-Parameter-Wert
Setzen von mehreren Unicode-Parameter-Werten
WorkTable ausgeben
B EN UT ZERHA ND BUC H 30
4.1.2
Prozeduren für Change Tables
Zur Erstellung und Verarbeitung von Work-Tables (List-Anzeigen) stehen die folgenden Prozeduren zur
Verfügung:
Zuordnung
Aktion
Parameter
Key
GetInfo
Modus
ChangeTables
Prozeduren
Wx_GetParmChar()
Wx_GetParmArrChar()
Wx_GetParmUC()
Wx_GetParmArrUC()
Wx_GetDBKeyInt()
Wx_GetDBKeyArrInt()
Wx_GetDBKeyDec()
Wx_GetDBKeyArrDec()
Wx_GetDBKeyChar()
Wx_GetDBKeyArrChar()
Wx_GetDBKeyUC()
Wx_GetDBKeyFldChar()
Wx_GetDBKeyFldArrChar()
Wx_GetDBKeyArrUC()
WX_isModeDisplay()
WX_isModeChange()
WX_isModeAdd()
WX_isModeCopy()
WX_isModeDelete()
WX_isModeRename()
WX_isModeProperty()
WX_isModeRefresh()
WX_isModeSave()
WX_isModeApply()
WX_isModeUpdate()
WX_isModeOutput()
WX_isModeWrite()
Wx_isMode()
WX_CallPGM()
Bezeichnung Prozedur
Einzelnen alphanumerischen Parameter-Wert empfangen
Mehrere alphanumerische Parameter-Werte empfangen
Einzelnen Unicode-Parameter-Wert empfangen
Mehrere Unicode Parameter-Werte empfangen
Einzelnen ganzzahlingen Schlüssel-Wert empfangen
Mehrere ganzzahlige Schlüssel-Werte empfangen
Einzelnen dezimalen Schlüssel-Wert empfangen
Mehrere dezimale Schlüssel-Werte empfangen
Einzelnen alphanumerischen Schlüssel-Wert empfangen
Mehrere alphanumerische Schlüssel-Werte empfangen
Einzelnen Unicode-Schlüssel-Wert empfangen
Zus,ges. Schlüssel: Feldgruppe mit Schlüssel-Werten (1 Satz)
Zus,ges. Schlüssel: Array-DS mit Schlüssel-Werten (mehr.Sätze)
Mehrere Unicode Schlüssel-Werte empfangen
Prüfen Modus = Anzeigen
Prüfen Modus = Ändern
Prüfen Modus = Hinzufügen
Prüfen Modus = Kopieren
Prüfen Modus = Löschen
Prüfen Modus = Rename
Prüfen Modus = Eigenschaften = Anzeigen
Prüfen Button Aktualisieren gedrückt / nicht verwendet in RPG
Prüfen Button Sichern gedrückt
Prüfen Button Übernehmen gedrückt
Prüfen Update = Button Sichern oder Übernehmen gedrückt
Prüfen Modus = Anzeigen oder Eigenschaften
Prüfen Modus = Hinzufügen oder Kopieren
Prüfen beliebigen Modus
Beliebiges CGI-Programm direkt aufrufen
B EN UT ZERHA ND BUC H 31
Zuordnung
Aktion
ChangeTables
Prozeduren
Öffnen
Wx_OpnHTMLChg()
Wx_HdrText()
Wx_HdrFile()
Wx_HdrFld()
Definition Header
Wx_HdrFldUC2()
Wx_HdrFileFld()
Wx_HdrFileFldUC2()
Reiter Wx_ChgNavTab()
Wx_ChgFile()
Wx_ChgFld()
Wx_ChgFileFld()
Wx_ManChgFld()
Wx_ManChgFldChar()
Wx_ManChgFldVarChar()
Wx_ManChgFldUC2()
Wx_ManChgFldVarUC2()
File/Fields
Wx_ManChgFldPack()
Wx_ManChgFldZone()
Wx_ManChgFldInt()
Definition
Wx_ManChgFldFloat()
Wx_ManChgFldDate()
ChangeTables
Wx_ManChgFldTime()
Wx_ManChgFldTimestamp()
Wx_ManChgFldRef()
Wx_ChgHelp()
Hilfe
Wx_ChgNoHelp()
Wx_HTMLTbl()
Tabellen
Wx_HTMLTblColHdg()
Wx_ChgIf()
ConditionWx_ChgElse()
Group
Wx_ChgEndIf()
Buttons Wx_ChgBtn()
Input
Wx_GetChgInput()
Wx_FldErr()
Error Handling
Wx_MultFldErr()
Wx_isChgFldErr()
Wx_SetParmChar()
Wx_SetParmArrChar()
Wx_SetParmUC()
Ausgeben
Wx_SetParmArrUC()
Wx_RtnPrv()
Wx_WrtChgTbl()
Bezeichnung Prozedur
Öffnen HTML für Change Table
Beliebigen Text in Header ausgeben
Definieren Datei für Header Informationen
Definieren alphanumer. Header-Feld
Definieren Unicode Header-Feld
Definieren Datei und alphanumerisches Header-Feld
Definieren Datei und Unicode-Header-Feld
Definieren Reiter
Datei vorgeben
Felder aus Dateien definieren
Datei und Feld zusammen definieren
Definieren Workfield (nicht in Datei) - Alle Datentypen
Definieren alphanumer. Workfield - fixe Länge (nicht in Datei)
Definieren alphanumer. Workfield - variable Länge (nicht in Datei)
Definieren Workfield in Unicode - fixe Länge (nicht in Datei)
Definieren Workfield in Unicode - variable Länge (nicht in Datei)
Definieren Workfield gepackt (nicht in Datei)
Definieren Workfield gezont (nicht in Datei)
Definieren Integer-Workfield (nicht in Datei)
Definieren Fließkomma-Workfield (nicht in Datei)
Definieren Datums-Workfield (nicht in Datei)
Definieren Zeit-Workfield (nicht in Datei)
Definieren Zeitmarken-Workfield (nicht in Datei)
Definieren Workfield basierend auf einem Referenz-Feld
Hinzufügen von Hilfe-Texten (Text oder Level2 Text aus Message-Id)
Automatisches Ermitteln von Hilfe-Texten unterbinden
Tabellen-Definition - Beschreibung, Anzahl Zeilen/Spalten
Überschrift/Definition der Tabellen Spalten
Beginn der Condition Group
Else/ElseIf der Condition Group
Ende der Condition Group
Button manuell hinzufügen
HTML auslesen
Error Handling auf Feld
Error Handling für mehrere Felder
Prüfen Fehler aufgetreten
Setzen alphanumerischen Parameter-Wert
Setzen von mehreren alphanumerischen Parameter-Werten
Setzen Unicode-Parameter-Wert
Setzen von mehreren Unicode-Parameter-Werten
Auf vorgelagertes Programm zurückgehen
Change Table ausgeben
Tabelle 2: WOPiXX-Prozeduren für Change Tables
4.2
Parameter in WOPiXX-Prozeduren

Anzahl der Parameter:
Die Anzahl der Parameter in den WOPiXX-Prozeduren wurde auf ein Minimum beschränkt

Input/Output-Parameter:
Bei den einzelnen Parametern handelt es sich fast ausschließlich um Input Only-Parameter, die mit
Schlüssel-Wort CONST definiert wurden.

Optionale Parameter:
Parameter, deren Übergabe nicht unbedingt erforderlich ist, wurden am Ende der Parameter-Liste
als optionale Parameter definiert.
Nicht übergebene optionale Parameter werden zur Laufzeit durch Default-Werte ersetzt.
B EN UT ZERHA ND BUC H 32
4.3
Aufbereitungsoptionen für WOPiXX
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
4.3.1
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
4.3.1.1 Steuerungsoptionen nur für Work-Tables
Die folgenden Steuerungsoptionen gelten nur für Worktables

NoList

EmptyList
4.3.2
Wird das Schlüssel-Wort NoList übergeben, werden beim ersten Aufruf nur die Filter
angezeigt.
Diese Auswahl ist insbesondere dann sinnvoll, wenn große Dateien durchsucht werden
sollen und vorab die Möglichkeit einer Vorauswahl bereitgestellt werden soll.
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.
Bei großen Tabellen bzw. bei komplexen SQL-Statements sollte NoList der Angabe
von EmptyList vorgezogen werden.
Vergleichsoperatoren für Filter Felder
Bei der Definition von Filter-Feldern können die folgenden Vergleichsoperatoren angegeben werden. Sofern kein Vergleichsoperator angegeben wurde, werden gleiche Werte (Operator =) selektiert.

=

<>

>

<
Es werden nur gleiche Werte selektiert

Entspricht:
Es werden nur ungleiche Werte selektiert

Entspricht:
Wh
Es werden alle Werte selektiert, die größer als der angegebene Wert sind

Entspricht:
Es werden alle Werte selektiert, die kleiner als der angegebene Wert sind

Entspricht:
B EN UT ZERHA ND BUC H 33

>=

<=

Between

Es werden alle Werte selektiert, die größer oder gleich dem angegebenen Wert sind

Entspricht:
Es werden alle Werte selektiert, die kleiner oder gleich dem angegebenen Wert sind

Entspricht:
Es werden nur Werte selektiert, die zwischen dem unteren und oberen eingegebenen
Wert liegen.
WOPiXX generiert für die Von-/Bis-Werte automatisch 2 Eingabe-Felder.

Entspricht:
Not Between Es werden nur Werte selektiert, die außerhalb des angegebenen Bereichs liegen.

Entspricht:

In(Zahl)

Not In
Es wird eine Liste von Werten für das gleiche Feld selektiert.
WOPiXX generiert eine Anzahl Eingabe-Felder, um eine Liste von Werten auswählen zu
können. Die Anzahl der zu generierenden Felder wird im Vergleichsoperator angegeben.

IN(3) Entspricht:
Es werden alle Werte selektiert, die nicht den gelisteten Werten entspricht.

Entspricht:
Where Feld Not In(
Die folgenden Vergleichsoperatoren können nur für alphanumerische oder Unicode Text-Spalten/Felder
verwendet werden.

Like

Not Like

LikeLeft



Es werden nur Texte selektiert, in denen der angegebene Text enthalten ist.

Entspricht:
Es werden nur Texte selektiert, in denen der angegebene Text nicht enthalten ist

Entspricht:
Es werden nur Texte selektiert, die mit dem angegebenen Text beginnen

Entspricht:
Not LikeLeft Es werden nur Texte selektiert, die nicht mit dem angegebenen Text beginnen

Entspricht
LikeRight
Es werden nur Texte selektiert, die mit dem angegebenen Text enden.

Entspricht:
Where Feld L
Not LikeRight
Es werden nur Texte selektiert, die nicht mit dem angegebenen Text enden.

Entspricht:
Ob die Suche case sensitive oder case insensitive erfolgen, kann durch Angabe des entsprechenden
Schlüssel-Wortes in den Optionen gesteuert werden.
Werden in dem zu suchenden Text die Sonderzeichen % (Prozent) und _ (Unterstrich) angegeben, so
Text in dem 100 und beliebige Zeichen enthalten sind, sondern in dem 100% enthalten sind gesucht.
B EN UT ZERHA ND BUC H 34
4.3.3
Aufbereitungsoptionen für Filter-Felder
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.
Bei der Definition von Filter-Feldern können die folgenden Aufbereitungsoptionen angegeben werden.

CTL(xxx)

ExecSQL(Name) oder ExecSQL(Name, NoList)
Vom Programmierer in Directweb hinterlegte SQL-Abfragen, über die die gewünschten
Werte als Combobox oder in einem Fenster aufbereitet, angezeigt und ausgewählt
werden können.
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 FilterFeld aufgerufen werden.



Center
Left
Right
Spalten-Inhalt zentrieren
Spalten-Inhalt linksbündig ausrichten
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

1

0




DateNum
Vom Programmierer in Directweb hinterlegte Selektions-Kriterien
Für Schalter (0/1)
Häkchen (eingabefähiges Feld)
Leeres (eingabefähiges) Feld
Für numerisches Datum im Format JJJJMMTT
 Aufbereitung als Datum
TimestampNum Für numerische Zeitmarken im Format JJJJMMTTHHMMSS
 Aufbereitung als Zeitmarke
TimeNum Für numerische Zeit im Format HHMMSS
 Aufbereitung als Zeit
HHMMNum Für numerische Zeit im Format HHMM
 Aufbereitung als Zeit
Für Echte Datums- und Zeit-Felder müssen keine Aufbereitungsoptionen definiert wer-
B EN UT ZERHA ND BUC H 35
den.


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

Syntax
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

Syntax
SelectList(MyFld) oder SelectList(Field=MyFld)
Bildet Combobox mit allen unterschiedlichen Feldwerten in dem Feld MYFLD in den definierten Dateien/Tabellen/Views

Syntax
SelectList(File=MyFile, MyFld) oder
SelectList(File=MyFile, Field=MyField) oder
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

Syntax
SQLList(SQLStatement;)
Wichtig: Das SQL-Select-Statement mit einem SemiColon (;) 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;)
B EN UT ZERHA ND BUC H 36
 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.

Syntax
DependList(MyFld)
Bildet die Werte in der Combobox abhängig von dem
erfassten Wert in MyFld.

Syntax
DependList(File=MyFile, MyFld, KeyA=KeyB)
Bildet die 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.
DependList(File=AdresseX,
XORT, ELAND=XLand)

ValuesList

ListNumRange Bildet eine Combobox mit allen numerischen Werten in dem angegebenen Bereich

Syntax
ListNumRange(100, 150)
Bildet eine Combobox mit allen ganzzahligen Werten
zwischen 100 und 150

Syntax
ListNumRange(100, 150, 10)
Bildet eine Combobox mit den Werten 100, 110, 120,
130, 140, 150,

ListMonth
Bildet eine Combobox aus den vorgegebenen Werten:

Syntax
ValuesList(Offen, Bestätigt, Erledigt)
ValuesList(2, 4, 8, 16, 32)
Bildet eine Combobox mit den Werten 1-12 für den Monat

Syntax
ListMonth
B EN UT ZERHA ND BUC H 37





ListMonthName
Combobox mit sprachenabhängigen Monatsnamen, sortiert nach dem numerischem
Monat (Januar=1, Dezember=12).

Rückgabe-Wert
sprachenabhängiger Monatsname

Syntax
ListMonthName
ListMonthNameNum
Combobox mit sprachenabhängigen Monatsnamen, sortiert nach dem numerischen
Monat (Januar=1, Dezember=12)

Rückgabe-Wert
numerischer Monat (Januar=1 / Dezember=12)

Syntax
ListMonthNameNum
ListDay
Bildet eine 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-Wert
sprachenabhängiger Wochentagsname

Syntax
ListDayName
ListDayNameNum
Combobox mit sprachenabhängigen Wochentagssnamen, sortiert nach dem numerischen Wochentag (Montag=1, Sonntag =7)

Rückgabe-Wert
numerischer Wochentag (Montag=1 / Sonntag=7)

Syntax
ListDayNameNum


ListHour
Bildet eine 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



DependAuto


AutoComplete Combobox
Syntax:
AutoComplete oder Autocomplete()
Bildet eine AutoComplete Combobox basierend auf
den aktuellen Werten in dem definierten Feld aus den
definierten Tabellen.
Syntax:
Autocomplete(File=MyFile, MyFld)
Bildet eine AutoComplete Combobox basierend auf
den Werten in der Spalte MyFld aus der Tabelle MyFile.
Abhängige Autocomplete Combobox
Syntax
DependAuto(MyFld)
Bildet die Werte in der AutoComplete Combobox abhängig von dem erfassten Wert in Spalte MyFld.
Syntax
AutoDepend(File=MyFile, MyFld, 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
B EN UT ZERHA ND BUC H 38
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)
4.3.4
Aufbereitungsoptionen für Spalten
Für eine Spalte 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.



Center
Left
Right
Spalten-Inhalt zentrieren
Spalten-Inhalt linksbündig ausrichten
Spalten-Inhalt rechtsbündig ausrichten

Hidden
Spalte wird nicht angezeigt

Logical
Für Schalter (0/1)

1

0




Anzeige als Häkchen
Leere Spalte
DateNum
Für numerisches Datum im Format JJJJMMTT
 Aufbereitung als Datum
TimestampNum Für numerische Zeitmarken im Format JJJJMMTTHHMMSS
 Aufbereitung als Zeitmarke
TimeNum Für numerische Zeit im Format HHMMSS
 Aufbereitung als Zeit
HHMMNum Für 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 (DWPRMCTL)

Filter(xxx)
Definition von Inline-Filter. Die folgenden Optionen (xxx) sind zulässig:
B EN UT ZERHA ND BUC H 39






Image
Text_Filter
Select_Filter
Combo_Filter
Text_Search
Numeric_Filter
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 3: Schlüssel-Wort Image - Bilder in List-Anzeigen

Exit()
Externe Funktionen für die Aufbereitung

NoSort
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.

Output
Wird nur in Verbindung mit editierbaren List-Anzeigen berücksichtigt
Sofern bei editierbaren List-Anzeigen bei der Spalten-Definition das Schlüssel-Wort
output angegeben wurde, wird die Spalte für die Eingabe gesperrt.
4.3.5
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
B EN UT ZERHA ND BUC H 40

Window / NoWindow
Das Folge-Programm wird in einem Fenster-Format ausgegeben.
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.
Die Angabe des Schlüssel-Wortes Window ist optional.

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
//Bestätigung mit Default-Message
Wx_CtxMnuItm('TSCHGAD01': 'Bestätigung Default':
'Window line confirm');
//Bestätigung mit vorgegebenem Text
Wx_CtxMnuItm('TSCHGADT2': 'Bestätigung Text':
'Window +
confirm(BHA bitte Text bestätigen)');
//Bestätigung mit Text aus Message-File
Wx_CtxMnuItm('TSCHGADT2': 'Bestätigung MsgId':
'Window icn(end.gif) +
CONFIRM(DWX0031)');
Abbildung 4: 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

RPG/SQL

JavaScript
B EN UT ZERHA ND BUC H 41
Abbildung 5: 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)
B EN UT ZERHA ND BUC H 42
Abbildung 6: Kontext-Menü-Punkte mit ShortCuts
4.3.6
Aufbereitungsoptionen für Buttons
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.
B EN UT ZERHA ND BUC H 43
Syntax: ShortCut(xxx) oder ShortCut(xxx,hidden)

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)
4.3.7
ShortCut(F6,hidden)
Aufbereitungsoptionen für Detail-Anzeigen
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


NotRequired Kann-Feld (Default-Wert)
Required
Muss-Feld


NewLine
Nächstes Feld in nächste Zeile (Default-Wert)
NoNewLine Nächstes Filter-Feld in der gleichen Zeile

Checkbox
Nur Ausgabe-Feld
Im Anzeige-Modus wird die Option automatisch von WOPiXX gesetzt.
Für Schalter (0/1)

1 oder Y

0 oder N
Häkchen (eingabefähiges Feld)
Leeres (eingabefähiges) Feld

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
Für editierbaren 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
B EN UT ZERHA ND BUC H 44
Wx_ChgFld('TXSHORT': %Addr(TXSHORT):
'Kurz-Text':
'Required TextArea(3, 50)');
Wx_ChgFld('TXLONG': %Addr(TXLONG):
'Langer Text':
'EditText(15, 30)');
Abbildung 7: Text-Bereiche

Img(IFSDatei, Breite, Höhe, Benutzer)
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.
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.
4.3.8
Aufbereitungsoptionen für Header
Für Header-Felder können die folgenden Aufbereitungsoptionen angegeben werden.

4.4
NewLine
Nächstes Feld in nächste Zeile (Default-Wert)
Standard-Bearbeitungs-Modi
Wird in Work-Programmen kein Kontext-Menü-Punkt und keine Buttons definiert, wird automatisch ein
Kontext-Menü und ein Button mit den folgenden Standard-Optionen oder Modi hinzugefügt.
B EN UT ZERHA ND BUC H 45
Die





folgenden Standard Modi gesetzt werden:
*ADD
Button
 Erfassen (eines neuen Datensatzes)
*CHANGE Kontext-Menü
 Ändern (des Datensatzes)
*COPY
Kontext-Menü
 Kopieren (des Datensatzes)
*DELETE
Kontext-Menü
 Löschen (des Datensatzes)
*PROPERTY Kontext-Menü
 Anzeigen (des Datensatzes)
Die Standard-Optionen werden an das Folge-Programm übergeben und können über WOPiXXProzeduren geprüft und ermittelt werden.
In den Folge-Programmen können die Standard-Modi, sowie alle anderen Modi, die in Kontext-Menüs
oder über Buttons gesetzt werden mit WOPiXX-Prozeduren geprüft und ermittelt werden.
In Change-Programmen werden automatisch Buttons mit den folgenden Standard-Optionen hinzugefügt:

*SAVE
Sichern

*APPLY
Übernehmen

*REFRESH Aktualisieren
Diese Standard-Modi können ebenfalls über WOPiXX-Funktionen geprüft und ermittelt werden. Die Prüfung sollte jedoch erst nach Aufruf der WOPiXX-Funktion Wx_GetChgInput() (ähnlich OpCode EXTFMT)
erfolgen.
4.5
Bedingtes Anzeigen von Ein-/Ausgabe-Feldern
Für Filter-Felder und Ein-/Ausgabe-Felder in Change Tables können Bedingungen vordefiniert werden,
unter denen die Felder angezeigt oder ausgeblendet werden.
Zur Definition der Bedingungen werden mehrere Möglichkeiten zur Verfügung gestellt:
Optionaler Parameter in WOPiXX-Prozeduren
Alle Prozeduren, durch die Filter- oder Ein-/Ausgabe-Felder definiert werden können, haben einen
optionalen Parameter, in dem die Bedingung unter der das Feld angezeigt werden soll, hinterlegt
werden kann.
Condition Group
Die Condition Group besteht aus 3 Prozeduren:
o Wx_FltIf() für Filter-Felder und Wx_ChgIf() für Ein-/Ausgabe-Felder stellen den Beginn der
Condition Group dar.
Über diese Prozeduren werden die Bedingungen festgelegt, unter denen die im Anschluss definierten Filter- oder Ein-/Ausgabe-Felder angezeigt werden sollen.
B EN UT ZERHA ND BUC H 46
o
Über die Prozeduren Wx_FltElse() für Filter-Felder und Wx_ChgElse() für Ein-/Ausgabe-Felder
können die Else-Bedingungen definiert werden.
Der Aufruf der Else-Prozeduren ist nicht zwingend erforderlich.
Werden diese Else-Prozeduren ohne Parameter/Bedingung aufgerufen, werden alle im Anschluss definierten Filter- oder Ein-/Ausgabe-Felder nur dann angezeigt, wenn die in der IfAnweisung definierten Bedingungen nicht zutreffen.
Bei diesen Else-Prozeduren kann ebenfalls eine Bedingung hinterlegt werden und somit eine
ElseIF-Anweisung generiert werden.
o
Wx_FltEndIf() für Filter-Felder und Wx_ChgEndIf() für Ein-/Ausgabe-Felder beenden die Condition Group.
Der Aufruf der EndIf-Prozeduren ist zwingend erforderlich, um die Condition-Group zu beenden.
Zu jedem Aufruf einer WOPiXX-IF-Funktion muss eine entsprechende WOPiXX-EndIf aufgerufen werden.
Stimmt die Anzahl der IF- und ENDIF-Aufrufe nicht überein, tritt zur Laufzeit ein Fehler auf.
Condition Groups können verschachtelt werden, d.h. eine If-Anweisung innerhalb einer If- oder
Else-Anweisung ist zulässig. Die Verschachtelung, sowie die Anzahl der IF- und ENDIFAnweisungen werden zur Laufzeit geprüft.

Bedingungen
Die Bedingungen können wahlweise in RPG, CL oder JavaScript-Schreibweise angegeben werden.
Der angegebene Code wird in JavaScript konvertiert und zur Laufzeit ausgeführt.

Nur Datei-Felder, die bereits in zuvor als Filter-Felder definiert wurden dürfen in den Bedingungen
verwendet werden.

Vergleichsoperatoren, wie =, >, <> etc. (RPG-Schreibweise) können ebenso angegeben werden,
wie *EQ, *GT, *NE etc. (CL-Schreibweise) oder ==, >, != (JavaScript-Schreibweise)

Logische Operatoren wie AND, OR, NOT (RPG) bzw. *AND, *OR, *NOT (CL) bzw. &&, ||, ! (JavaScript) können verwendet werden.
Klammersetzung ist erlaubt
Beispiel für bedingte Filter-Felder
Wx_FltFld('BestNr': 'FLD0025': 'LikeLeft': 'uppercase');
Wx_FltIf('Firma = 10');
Wx_FltFld('LiefBed': 'FLD0029': '=': 'uppercase');
Wx_FltIf('LiefBed *EQ ''AW''');
//1. If
//2. If
B EN UT ZERHA ND BUC H 47
Wx_FltFld('KundeNr': 'KundeNr': '=': 'uppercase');
Wx_FltEndIf();
Wx_FltElse('Firma = 15');
Wx_FltFld('AuftrArt': 'FLD0027': '=': 'uppercase');
//2. EndIf
//1. ElseIf
Wx_FltIf('%Subst(AuftrArt: 1: 1) = ''I''');
//2. If
Wx_FltFld('Status': 'FLD0026': '=':
'ValuesList(''ERF'',''OPN'',''TEL'',''END'')': '');
Wx_FltElse('AuftrArt = ''EX'' *or AuftrArt = ''EA''
//2. ElseIf
Wx_FltFld('LiefTerm': 'LieferTermin');
Wx_FltEndIf();
//2. EndIf
Wx_FltEndIf();
//1. EndIf
Source Code 19: Bedingte Filter-Felder
1. Firma
2. Bestell-Nr.
1. Firma 10
2. Bestell-Nr.
3. Lieferbedingung
1.
2.
3.
4.
Abbildung 8: Ergebnis Bedingte Filter-Felder für Firma 10
Firma 10
Bestell-Nr.
Lieferbedingung AW
Kunden-Nr.
B EN UT ZERHA ND BUC H 48
1. Firma
2. Bestell-Nr.
1.
2.
3.
4.
Firma 15
Bestell-Nr.
Auftragsart IN
Status
1.
2.
3.
4.
Firma 15
Bestell-Nr.
Auftragsart EX
Liefer-Termin
1. Firma 15
2. Bestell-Nr.
3. Auftragsart
Abbildung 9: Ergebnis Bedingte Filter-Felder für Firma 15
;
4.6
Bedienerhilfe
Für Ein-/Ausgabe-Felder können in Change-Tables Hilfe-Texte hinterlegt werden.
Die Hilfe-Texte können wahlweise direkt angegeben oder über eine Message-Id aus einer Message-File
ermittelt werden. Wird eine Message-Id angegeben, so wird für die Bedienerhilfe der Level 2 MessageText verwendet.
Wird für ein Feld weder eine Message-Id noch ein Message-Text angegeben, so wird der Level 2Message-Text aus der Message-Id der Feld-Beschreibung (sofern diese angegeben wurde) ermittelt und
als Hilfe-Text angezeigt.
Hilfe-Texte können bei allen Funktionen über mit WOPiXX Felder definiert werden (z.B. Wx_ChgFld())
über einen optionalen Parameter angegeben werden. Der Hilfe-Text kann entweder direkt als Text oder
in Form einer Message-Id übergeben werden.
Anstatt die Hilfe-Texte mit den Definitions-Funktionen anzugeben, können die Hilfe-Texte auch mit Hilfe
der Funktion Wx_ChgHelp() gesetzt werden.
B EN UT ZERHA ND BUC H 49
Sofern das automatische Ermitteln der Bedienerhilfe für einzelne oder alle Felder unterbunden werden
soll, kann die Funktion Wx_ChgNoHelp() aufgerufen werden.
4.7
Reihenfolge der Prozedur-Aufrufe

Prüfen Verarbeitungs-Modi
Für Change Tables, um die im vorgelagerten Programm (z.B. Work Table) ausgelösten Aktionen
(Kontext-Menü-Auswahl) zu ermitteln.
In Work Tables kann über Kontext-Menü-Auswahlen der Aufruf von Folge-Programmen gesteuert
werden. Wurde für einen Kontext-Menü-Punkt ein Programm angegeben wird dieses direkt aufgerufen. Wurde nur eine eindeutige Kennung übergeben, kann diese im Folge-Programm über den
Modus (bzw. über entsprechende WOPiXX-Funktionen) geprüft und entsprechende Aktionen (z.B.
Aufruf eines weiteren CGI-Programms) eingeleitet werden.

Ermitteln von Schlüssel-Werten
Für Folge-Programme (Work- und Change-Programme), die aus List-Anzeigen/Work Tables aufgerufen werden.
Der eindeutige Schlüssel (oder die relative Satz-Nr.) wird bei Kontext-Menü-Auswahl bei WorkProgrammen an das Folge-Programm übergeben. Diese Informationen sind erforderlich um z.B.
den zu ändernden oder zu löschenden Datensatz einzulesen.
Der Aufruf ist nur erforderlich, wenn diese eindeutigen Schlüssel-Werte übergeben und im FolgeProgramm verarbeitet werden.

Ermitteln von Parameter-Werten
In Work- und Change Tables können bis zu 5 Parameter-Werte an das Folge-Programm übergeben werden.
Der Aufruf ist nur erforderlich, wenn die Parameter-Werte im Folge-Programm benötigt und verarbeitet werden.

Öffnen/Zuordnen des HTML-Dokuments
Für Change und Work-Programme werden verschiedene Prozeduren vorgesehen. Basierend auf
dem Prozedur-Aufruf werden die entsprechenden folgenden Schritte gesteuert.

Definition von Header Informationen
Header-Informationen sind allgemein gültige Ausgabe-Informationen (z.B. Auftrags-Nr., Liefertermin
bei Auftrags-Positionen). Header-Informationen können sowohl für Work- als auch Change Tables
angegeben werden.

Definition der verwendeten physischen Dateien, SQL Tabellen oder Views.
Sofern Header Informationen erforderlich sind, müssen die für die Header-Informationen erforderlichen Dateien/SQL Tabellen/Views vor den Header-Informationen definiert werden.
Sowohl bei Work- als auch bei Change Tables können mehrere Tabellen definiert werden. Während
bei den Change Tables die Dateien/Tabellen/Views einzeln definiert werden können, muss bei
B EN UT ZERHA ND BUC H 50
Worktables die Verknüpfung zwischen den einzelnen Dateien/Tabellen/Views angegeben werden.
Um Probleme bei der Verknüpfung zu vermeiden wird empfohlen SQL Views zu definieren in denen
die physischen Dateien/Tabellen bereits miteinander verknüpft wurden in die ggf. WhereBedingungen integriert wurden (ähnlich Select/Omit-Anweisungen in DDS) um die Anzahl der Datensätze vorab zu selektieren.

Definition der Filter-Felder (nur bei Work Tables)
Filter-Felder werden vor der eigentlichen List-Anzeige ausgegeben und ermöglichen eine selektive
Auswahl der Daten.
Die Filter-Felder müssen in den zuvor definierten Dateien/Tabellen/Views enthalten sein.
Zur Selektion der Daten werden unterschiedliche Vergleichsoperatoren bereitgestellt.
Die Filter-Felder werden in der Reihenfolge in der sie definiert sind ausgegeben. Die Definition von
Filter-Feldern ist in Work Tables nicht zwingend erforderlich.

Definition der anzuzeigenden Spalten (bei Work Tables).
In Worktables wird zunächst die Spalte mit dem eindeutigen Schlüssel (für die Detail-Anzeige) definiert. Sofern sich der eindeutige Schlüssel aus mehreren Spalten/Feldern zusammensetzt oder sofern die Tabelle/Datei keinen eindeutigen Schlüssel hat, kann die Relative Satz-Nr. verwendet
werden.
Die anzuzeigenden Spalten müssen in den zuvor definierten Dateien/Tabellen/Views hinterlegt sein.
Der Programmierer kann diverse Aufbereitungsoptionen für die einzelnen Spalten definieren.
Die Spalten werden in der Reihenfolge in der sie definiert sind ausgegeben.
Mit Hilfe von Javascript-Funktionen können zur Laufzeit die Spalten am Bildschirm anders angeordnet werden.

Definition der anzuzeigenden/bearbeitenden Felder (in Change Tables)
Die Felder, die in den Change Tables angezeigt bzw. bearbeitet werden können aus den zuvor definierten Dateien/Tabellen/Views kommen. Es ist jedoch auch möglich Arbeits(ohne Datei-Bezug) zu definieren und zu verwalten.
Die Felder werden in der Reihenfolge in der sie definiert sind ausgegeben.

Definition der Kontext-Menüs bei Work Tables
Für Work Tables können Kontext-Menüs definiert werden, d.h. es werden Programme oder Aktionen hinterlegt, die beim Klicken auf die entsprechende Auswahl ausgeführt werden.
Der WOPiXX-Programmierer braucht lediglich das Kontext-Menü zu definieren, die Steuerung erfolgt durch Javascript-Funktionen, die zur Laufzeit ausgeführt werden.
Kontext-Menü-Auswahlen beziehen sich i.d.R. auf die ausgewählte(n) Zeile(n)/Datensatz. Für allgemeine Aktionen, können Buttons definiert werden.
B EN UT ZERHA ND BUC H 51

Definition von Buttons bei Work Tables und Change Tables
Für Work- und Change Tables können Buttons definiert werden, d.h. es werden Programme oder
Aktionen vorgegeben, die beim Klicken auf den Button ausgeführt werden.

Setzen von Parameter-Werten für das Folge-Programm
In Work- und Change Tables können bis zu 5 Parameter-Werte an das Folge-Programm übergeben werden.
Die Parameter-Werte sollten versorgt und übergeben werden, unmittelbar bevor das HTMLDokument ausgegeben werden.

Ausgabe des HTML-Dokuments bei Work Tables und Change Tables
Nachdem alle Felder definiert wurden, wird das Dokument ausgegeben.
Für Work-Programme endet die Verarbeitung mit der Ausgabe des HTML-Dokuments.
Für Change Tables endet das Programm (aufgrund der Stateless-Programmierung) ebenfalls an
dieser Stelle. WOPiXX steuert jedoch den Ablauf so, dass beim nächsten Zyklus das Programm an
dieser Stelle fortgeführt wird.

Eingabe-Prüfung und ggf. Ausgabe von Fehlermeldungen bei Change Tables
Die erfassten Daten werden an das WOPiXX-Programm zurückgegeben.
Der WOPiXX-Programmierer kann die üblichen Prüfungen codieren und ausführen.
Im Fehlerfall wird eine WOPiXX-Funktion aufgerufen, die die Fehlermeldung ausgibt.
Sofern keine Fehler festgestellt wurden. Kann der WOPiXX-Programmierer seine üblichen DateiVerarbeitungen kodieren und ausführen.
Das Change Programm endet an dieser Stelle. Die Steuerung des Rücksprungs erfolgt automatisch
durch WOPiXX.

Rücksprung auf das vorgelagerte Programm
Nach erfolgreicher Verarbeitung eines Change Tables, d.h. nach dem der zu bearbeitende Datensatz ordnungsgemäß fortgeschrieben wurde, muss auf das vorgelagerte Programm zurückgesprungen werden.

Bedingte Anzeigen
Bedingte abhängige Anzeigen können über entsprechende Prozedur-Aufrufe, die JavaScript-Code
erzeugen gesteuert werden. Der Aufruf der IF-Prozeduren muss 4.7vor (IF) und nach (ENDIF) dem
Aufruf der unter bestimmten Bedingungen anzuzeigenden Felder erfolgen.

Tabellen in Change Tables
Innerhalb von Change Tables können die Ein-/Ausgabe-Felder in Tabellen hinterlegt werden. Die
Tabellen-Definition bzw. der Aufruf der entsprechenden WOPiXX-Prozeduren erfolgt unmittelbar vor
dem ersten (Ein/Ausgabe-)Feld innerhalb der Tabelle.
B EN UT ZERHA ND BUC H 52
4.8
Physische Dateien, SQL Tabellen oder Views
Die physischen Dateien, SQL Tabellen oder SQL Views, in denen die zu verarbeitenden Daten hinterlegt
sind müssen durch den Aufruf von WOPiXX-Funktionen definiert werden.
Die Definition der Dateien/Tabellen/Views muss erfolgen bevor das erste Feld (Filter-Feld oder Spalte in
Worktables oder Ein- oder Ausgabe-Feld in Change Tables) definiert wird.
Für Header-, Filter, Work Tables und Change Tables erfolgt die Definition der physischen Dateien/Tabellen/Views über unterschiedliche Funktionen. Bei der Definition muss die vorgeschriebene Verarbeitungsreihenfolge eingehalten werden, d.h. werden Filter definiert, muss die Funktion für FilterDateien/Tabellen/Views aufgerufen werden.
Werden in einem WOPiXX-Programm unterschiedliche Darstellungsarten verwendet, z.B. Filter und ListAnzeige/Worktables, so müssen die Dateien/Tabellen/Views nur einmalig, für die Filter definiert werden.
Für die List-Anzeige werden die registrierten Filter-Dateien/Tabellen/Views herangezogen.
Anmerkung;
4.8.1
Physische Dateien/Tabellen/Views müssen innerhalb eines WOPiXXProgramms nur einmalig, bevor das erste (Header-/Filter- oder Work-)Feld
definiert wird angegeben werden.
DDS beschriebene logische Dateien
DDS beschriebene logische Dateien können angegeben und verarbeitet werden.
Aus Performance-Gründen ist die Verwendung von DDS beschriebenen logischen Dateien jedoch nicht
zu empfehlen.
Directweb und WOPiXX verwenden ausschließlich SQL. Der Query-Optimizer muss jede Abfrage, in der
DDS beschriebene logische Dateien verwendet werden neu schreiben, basierend auf den zugrunde liegenden physischen Dateien/Tabellen.
Die Analyse der DDS beschriebenen logischen Dateien, sowie das anschließende Rewriting kann nur
durch die alte/klassische Query Engine (CQE) erfolgen. Alle SQL-Statements in denen DDS beschriebene logische Dateien angegeben werden, müssen an die CQE zurückgegeben werden, was zwischen 10
und 15% Performance kosten kann. Die Vorteile der modularen und wesentlich flexibleren neuen Query
Engine (SQE = SQL Query Engine) können nicht genutzt werden.
Anmerkung:
4.8.2
Anstatt DDS beschriebene logische Dateien anzugeben, sollten entweder
die zugrunde liegenden physischen Dateien/Tabellen oder (neu erstellte)
SQL Views verwendet werden.
Dateien direkt verknüpfen oder SQL Views?
Mit WOPiXX können mehrere Dateien/Tabellen/Views in dem gleichen List-Anzeige (Work Table) oder
B EN UT ZERHA ND BUC H 53
Detail-Verarbeitung (Change Table) definiert werden.
In Detail-Verarbeitungen/Change-Tables können die Dateien/Tabellen/Views einzeln und unabhängig
voneinander definiert werden.
Für Listausgaben ist es jedoch erforderlich diese Dateien/Tabellen/Views miteinander zu verknüpfen. Die
Art der Verknüpfung (z.B. Inner Join, Left/Right Outer Join, Exception Join, Full Join) sowie die Verknüpfung über Schlüssel-Felder muss vom Programmierer vorgegeben werden, da alle Abfragen und Verknüpfungen on the fly gebildet werden müssen.
Anmerkung:
Um den individuellen WOPiXX-Source Code so einfach wie möglich zu reduzieren, wird empfohlen SQL-Views anzulegen, in denen die gewünschten Dateien/Tabellen bereits miteinander verknüpft sind, und in denen ggf.
sogar durch entsprechende Where-Bedingungen Daten von vornherein
eliminiert werden.
SQL Views sind ungeschlüsselte logische Dateien. Da SQL Views immer ungeschlüsselt sind, können
beliebig viele SQL Views angelegt werden ohne Auswirkungen auf die Performance befürchten zu müssen.
4.8.3
Datei- und Feld-Namen
Für alle Dateien, Tabellen und Views sowie für alle Felder und Spalten kann wahlweise der kurze (bis zu
10 Zeichen) System-Name oder der lange (bis 128 Zeichen) SQL Name angegeben werden.
Die Schreibweise kann in jeder beliebigen Kombination aus Groß- und Klein-Buchstaben erfolgen. Die
Datei/Tabellen/View-Namen, sowie die Spalten/Feld-Namen werden von WOPiXX in Groß-Buchstaben
konvertiert.
4.9
Datenstrukturen und Ein-/Ausgabe-Felder
Datenaustausch zwischen HTML- und dem individuellen WOPiXX-Programm findet vor allem in den
Change Tables/Detail-Programmen statt. Der Datenaustausch erfolgt über die aufgerufenen WOPiXXProzeduren
Der Programmierer ist für das Einlesen und Fortschreiben seiner Daten selbst verantwortlich, d.h. der
Programmierer

liest den Datensatz ein (native I/O oder embedded SQL)

übergibt die Daten über WOPiXX-Funktionen an das Web-Programm

erhält die erfassten/geänderten Daten über die WOPiXX-Funktionen zurück

prüft diese erfassten Daten

gibt ggf. eine Fehlermeldung über WOPiXX-Prozeduren aus

schreibt den geprüften Datensatz fort
B EN UT ZERHA ND BUC H 54
Um einen Datenaustausch von Daten mit jedem Datentypen in jeder zulässigen Länge zu ermöglichen,
müssen Pointer auf die Daten an die WOPiXX-Prozeduren übergeben werden.
WOPiXX ermitteln den Datentypen und die Länge der übergebenen Daten und konvertiert diese in ein
alphanumerisches Web-Format. Die erfassten Daten werden von WOPiXX in das Ausgangsformat zurückübersetzt.
Der RPG-Compiler konvertiert gezonte numerische Felder, die Dateien, die in den F-Bestimmungen definiert sind, sowie stand-alone gezont-numerische Variablen in gepackte numerische Felder. Werden gezonte numerische Felder jedoch in Datenstrukturen definiert, werden sie vom Compiler nicht konvertiert.
Anmerkung:
Um Probleme beim Datenaustausch zu vermeiden, müssen alle Felder oder Variablen, über die Daten mit WOPiXX ausgetauscht werden in Datenstrukturen hinterlegt werden.
4.10 Mehrsprachigkeit
Beim Aufruf von WOPiXX-Prozeduren werden auch die anzuzeigenden Texte übergeben.
Die Prozeduren sind so gesteuert, dass wahlweise eine Text oder eine Message-Id übergeben werden
kann. Die Message-File, aus der der Text ermittelt werden soll, wird abhängig von den Angaben beim
Einrichten der Anwendung (7.1 Anwendung) bestimmt.
B EN UT ZERHA ND BUC H 55
4.11 Work-Programm
Für Work-Programme stehen die folgenden WOPiXX-Prozeduren zur Verfügung
WorkTables
Zuordnung
Aktion
Prozeduren
Wx_GetParmChar()
Wx_GetParmArrChar()
Parameter
Wx_GetParmUC()
Wx_GetParmArrUC()
Wx_GetDBKeyInt()
Wx_GetDBKeyArrInt()
Get Info
Wx_GetDBKeyDec()
Wx_GetDBKeyArrDec()
Key
Wx_GetDBKeyChar()
Wx_GetDBKeyArrChar()
Wx_GetDBKeyUC()
Wx_GetDBKeyArrUC()
Öffnen
Wx_OpnHTMLWrk()
Wx_HdrFile()
Wx_HdrFld()
Header
Definition
Wx_HdrFldUC2()
Wx_HdrFileFld
Wx_HdrFileFldUC2()
Wx_GenFlt()
Wx_FltFile()
File/Fields Wx_FltFld()
Wx_FltFileFld()
Filter Definition
Wx_BegEnhFlt()
Wx_FltIf()
ConditionWx_FltElse()
Group
Wx_FltEndIf()
Wx_CtxMnuItm()
Wx_NoCtxMnuItm()
Wx_CtxMnuItmChange()
Wx_CtxMnuItmCopy()
Work
Wx_CtxMnuItmDelete()
Table
Menü
Definition
Wx_CtxMnuItmProperty()
Wx_CtxMnuItmDefault()
Wx_WrkBtn()
Wx_NoWrkBtn()
Wx_WrkBtnAdd()
Wx_WrkBtnDefault()
Wx_WrkFile()
Wx_WrkKey()
Definition
Wx_WrkFld()
Wx_WrkWhere()
Wx_WrkDftOrder()
SQL
Wx_WrkSQLMan()
Work
Wx_NoRcdTxt()
Table
Wx_SetParmChar()
Wx_SetParmArrChar()
Ausgeben
Wx_SetParmUC()
Wx_SetParmArrUC()
Wx_WrtWrkTbl()
Bezeichnung Prozedur
Einzelnen alphanumerischen Parameter-Wert empfangen
Mehrere alphanumerische Parameter-Werte empfangen
Einzelnen Unicode-Parameter-Wert empfangen
Mehrere Unicode Parameter-Werte empfangen
Einzelnen ganzzahlingen Schlüssel-Wert empfangen
Mehrere ganzzahlige Schlüssel-Werte empfangen
Einzelnen dezimalen Schlüssel-Wert empfangen
Mehrere dezimale Schlüssel-Werte empfangen
Einzelnen alphanumerischen Schlüssel-Wert empfangen
Mehrere alphanumerische Schlüssel-Werte empfangen
Einzelnen Unicode-Schlüssel-Wert empfangen
Mehrere Unicode Schlüssel-Werte empfangen
Öffnen HTML für Work Table
Definieren Datei für Header Informationen
Definieren alphanumer. Header-Feld
Definieren Unicode Header-Feld
Definieren Datei und alphanumerisches Header-Feld
Definieren Datei und Unicode-Header-Feld
Generischen Filter Hinzufügen
Definieren Datei für Filter
Filter Feld hinzufügen
Definieren Filter Datei und Feld
Erweiterter Filter
Beginn Filter Condition Group
Else/ElseIf Filter Condition Group
Ende Filter Condition Group
Menüpunkt manuell hinzufügen
Kein Standard-Kontext-Menü einblenden
Standard-Menü-Punkt Ändern/Change einbinden
Standard-Menü-Punkt Kopieren/Copy einbinden
Standard-Menü-Punkt Löschen/Delete einbinden
Standard-Menü-Punkt Eigenschaften/Anzeigen/Property einbinden
Alle Standard-Menü-Punkte einbinden
Button manuell hinzufügen
Kein Standard-Button einblenden
Standard-Button Erfassen/Hinzufügen/Add einbinden
Alle Standard-Buttons hinzufügen
Definieren Dateien für Work Table
Definieren Unique für Work Table
Definieren Spalte für Work Table
Where Bedingungen für Work
Default Sortierung in Work
Definieren SQL Statement für WorkTable manuell
Anzeige Anzahl
Setzen alphanumerischen Parameter-Wert
Setzen von mehreren alphanumerischen Parameter-Werten
Setzen Unicode-Parameter-Wert
Setzen von mehreren Unicode-Parameter-Werten
WorkTable ausgeben
Tabelle 3 : WOPiXX-Prozeduren für Work-Programme
Für ein Work-Programm sind nicht immer alle WOPiXX-Prozeduren erforderlich.
Der Aufruf der WOPiXX-Prozeduren sollte jedoch (weitgehend) in der Reihenfolge, in der die Prozeduren
aufgelistet sind erfolgen.
Die blau eingefärbten Prozeduren können sowohl in Work- als auch in Change-Tables aufgerufen werden. Die übrigen Prozeduren können nur in Verbindung mit Work-Tables verwendet werden.
B EN UT ZERHA ND BUC H 56





In einem Work-Programm müssen die folgenden Schritte abgedeckt sein:
HTML-Dokument öffnen (Prozedur Wx_OpnHTMLWrk())
Dateien/Tabellen/Views definieren (Prozeduren Wx_FltFile() oder Wx_WrkFile())
Spalte mit eindeutigem Schlüssel definieren (Prozedur Wx_WrkKey())
Spalten für List-Anzeige definieren (Prozedur Wx_WrkFld())
HTML-Dokument an Browser schicken (Prozedur Wx_WrtWrkTbl())
4.11.1 Template für Work-Programm
Ein Template für ein Work-Programm mit Copy-Strecke und den erforderlichen Prozedur-Aufrufen in der
erforderlichen Reihenfolge befindet sich in:



Bibliothek
Quellen-Datei
Member
WOPIX
QCPYLESRC
EXWRKTEMP
Dieses Template kann kopiert und für die individuellen Work-Programme modifiziert werden.
4.11.2 Wx_OpnHTMLWrk()
HTML Dokument öffnen
Im ersten Schritt der WOPiXX-Programmierung muss festgelegt werden, ob eine List-Anzeige (WorkTable) oder Detail-Anzeige erfolgen soll. Die Unterscheidung erfolgt durch den Aufruf von unterschiedlichen Prozeduren für Work- oder Change Tables.
Zum Erstellen einer Work Table wird zunächst die Prozedur WX_OpnHTMLWrk() (Open HTML
Document for Work Tables) aufgerufen.
In dieser Prozedur wird zunächst das Default-HTML-Template ermittelt und geöffnet. Anstatt des
Default-HTML-Templates zu verwenden, kann auch ein individuelles HTML-Dokument verwendet werden. In diesem Fall muss jedoch dafür gesorgt werden, dass die Platz-Halter für Work- bzw. ChangeTables, Überschriften, Error-Messages etc., die von WOPiXX/Directweb ersetzt werden, in dem individuellen Dokument integriert sind.
Der Titel, der zur Laufzeit angezeigt werden soll wird als Parameter übergeben und kann wahlweise als
Text oder als Message-Id aus der bei dem Einrichten der Anwendung angegebenen Nachrichten-Datei
übergeben werden.
Das Folge-Programm (Detail-Anzeige oder eine weitere List-Anzeige) muss angegeben werden. Bei ListProgrammen ist das Folge-Programm i.d.R. das Programm in dem die Detail-Verarbeitung erfolgen soll.
Die Programme, die bei Auswahl über das Kontext-Menü aufgerufen werden, werden bei der Definition
der Menü-Punkte angegeben.
Die Prozedur Wx_OpnHTMLWrk() darf pro Work-Programm nur einmalig aufgerufen werden.
B EN UT ZERHA ND BUC H 57
Prototype
**************************************************************************
P* Procedure name: Wx_OpnHTMLWrk
P* Purpose:
Open HTML Document for CGI Work Program
P* Returns:
P* Parameters:
ParTitle
=> Message-Id Title or Text for Title
P* Parameters:
ParCGIPGM => Program to Call
P* Parameters:
ParHTMLDoc => HTML-Document
P*
--> Not Passed or *DEFAULT passed
P*
--> Default Document
**************************************************************************
D Wx_OpnHTMLWrk...
D
PR
OpDesc
D ParTitle
Like(FldRef.MsgText)
Const
D PInCGIPGM
Like(FldRef.PGM)
Const
D PInHtmlDoc
Like(FldRef.HTMLDOC)
Const
D
Options(*NoPass)
Source Code 20: Prototype - Procedure Wx_OpnHTMLWrk - HTML Dokument für Worktables öffnen
Parameter

ParTitle
Message-Id oder Text für Titel

PInCGIPGM Folge-Programm

PInHTMLDoc HTML-Dokument
Optionaler Parameter
Muss nur angegeben werden, wenn ein anderes als das Default HTML-Dokument
verwendet werden soll
Beispiele für den Aufruf
Wx_OpnHTMLWrk('Adress-Stamm': 'EXCHGAD01');
Wx_OpnHTMLWrk('TOP0017': 'EXCHGUMS': 'MyWrkUmsatz.html');
Source Code 21: Prozedur Wx_OpnHTMLWrk - HTML Dokument für Worktables öffnen
4.11.3 Prozeduren zur Definition von Filter-Feldern
Filter-Felder können nur in Verbindung mit Work Tables definiert werden.
4.11.3.1 WX_GENFLT()
Generischer Filter
Mit der Funktion WX_GENFLT wird der generische Filter definiert.
Für den generischen Filter können bis zu 10 Spalten angegeben werden, die entweder case sensitive
oder case insensitive nach der eingegebenen Zeichen-Kombination durchsucht werden.
Pro Work Table kann maximal ein generischer Filter definiert werden.
B EN UT ZERHA ND BUC H 58
■ Generischer
Filter
Abbildung 10: Generischer Filter
Prototype
? ************************************************************************
P* Procedure name: Wx_GenFlt
P* Purpose:
Add generic Filter
P*
--> Up to 10 Fields/Columns within the same File/Table
P* Returns:
P* Parameters:
ParFile
=> File/Table
P* Parameters:
ParField1
=> Field/Column Name (in specified File)
P* Parameters:
ParOptions => Options (Table Options!)
P* Parameters:
ParField2
=> Field/Column Name (in specified File)
P* Parameters:
ParField3
=> Field/Column Name (in specified File)
P* Parameters:
ParField4
=> Field/Column Name (in specified File)
P* Parameters:
ParField5
=> Field/Column Name (in specified File)
P* Parameters:
ParField6
=> Field/Column Name (in specified File)
P* Parameters:
ParField7
=> Field/Column Name (in specified File)
P* Parameters:
ParField8
=> Field/Column Name (in specified File)
P* Parameters:
ParField9
=> Field/Column Name (in specified File)
P* Parameters:
ParField10 => Field/Column Name (in specified File)
? ************************************************************************
P Wx_GenFlt...
P
B
Export
?
? * Procedure Interface
? *---------------------------*
D Wx_GenFlt...
D
PI
OPDesc
D ParFile
Like(FldRef.NameSQL)
Const
D ParField1
Like(FldRef.NameSQL)
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParField2
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField3
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField4
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField5
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField6
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField7
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField8
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
B EN UT ZERHA ND BUC H 59
D
D
D
D
ParField9
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
ParField10
Const
Const
Source Code 22: Prototype - Prozedur Wx_GenFlt - Definiere generischen Filter
Parameter-Felder

ParFile
Physische Datei oder Tabelle oder View in der die Spalten/Felder für den generischen
Filter hinterlegt sind
Es können wahlweise die kurzen (max.10 stelligen) System-Namen oder die bis zu 128
Zeichen langen SQL Namen angegeben werden.
Der Datei-Name kann in jeder beliebigen Groß/Klein-Schreibweise angegeben werden.

ParField1

ParOptions Aufbereitungsoptionen
Optionaler Parameter

casesensitive

ParField2

ParField3
Erste Spalte/Feld, die nach der eingegebenen Buchstabenkombination durchsucht
werden soll.
Es kann wahlweise der kurze System- oder der lange SQL-Name angegeben werden.
Der Spalten/Feld-Name kann in jeder beliebigen Groß/Klein-Schreibweise angegeben
werden.
Für den generischen Filter muss mindestens eine Spalte/Feld angegeben werden.
Casesensitive Suche
Default Suche ist case insensitive
Spalte/Feld, die gescannt werden soll
Optionaler Parameter
ParField10
Analog ParField2
Beispiel für den Aufruf
Wx_GenFlt('ADRESSEX': 'NAME1F');
Wx_GenFlt('AdresseX': 'Name1F': 'casesensitive': 'Strasse': 'Ort');
Source Code 23: Aufruf Prozedur Wx_GenFlt() - Generischen Filter definieren
4.11.3.2 Wx_FltFile()
Datei für Filter definieren
Sofern kein generischer Filter erforderlich ist, jedoch weitere Filter-Felder angelegt werden sollen, müssen zunächst die Dateien/Tabellen/Views, in denen zu selektierenden Informationen hinterlegt wurden
definiert werden.
Wurde ein generischer Filter angelegt, so wurde bereits die erste Datei/Tabelle/View angelegt. Der Aufruf
der Funktion Wx_FltFile ist nur erforderlich, wenn weitere Filter aus anderen Dateien/Tabellen/Views definiert werden sollen.
B EN UT ZERHA ND BUC H 60
Über die Funktion Wx_FltFile können bis zu 10 Dateien/Tabellen/Views definiert werden. Da diese Dateien/Tabellen/Views auch zum Aufbau des Select-Statements, das die Listanzeige bildet verwendet wird,
müssen die Abhängigkeiten (Join-Informationen) zwischen den Dateien/Tabellen/Views definiert werden.
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.
Prototype
***************************************************************************
P* Procedure name: Wx_FltFile
P* Purpose:
Define Files used for Filter
P*
--> Up to 10 Files can be specified
P*
--> If more than 1 File is specified: Join Conditions are
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_FltFile
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)
B EN UT ZERHA ND BUC H 61
D
D
D
D
D
D
D
D
D
D
D
D
D
D
ParJoin7
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
ParFile8
ParJoin8
ParFile9
ParJoin9
ParFile10
ParJoin10
Const
Const
Const
Const
Const
Const
Const
Source Code 24: Prototype - Prozedur Wx_FltFile - Definiere Filter-Datei

Parameter
ParFile1

ParFile2

ParJoin2


Die Parameter ParFile3 ParFile10 sind optional und werden analog ParFile2 verwendet.
Die Parameter ParJoin3 ParJoin10 sind optional werden analog ParJoin2 verwendet.
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.
Physische Datei/Tabelle/View
Optionaler Parameter
Kurzer System- oder langer SQL Name
Verknüpfung zwischen Datei/Tabelle/View 1 und 2
Optionaler Parameter muss angegeben werden, wenn ParFile2 angegeben wurde
(auch dann wenn ein Cross Join gewünscht wird).

Beispiel:
on Key1File1 = Key1File2 +
and Key2File1 = Key2File2
Beispiel für den Aufruf
Wx_FltFile('AuftrKopfX');
Wx_FltFile('AuftrKopfX': 'AuftrPosX':
'Join AuftrPosX on AuftrKopfX.BestNr = AuftrPosX.BestNr':
'KundSt':
'Left Outer Join KundSt on KundeNr = KndNr');
Source Code 25: Beispiel Aufruf Prozedur Wx_FltFile()
4.11.3.3 Wx_FltFld()
Filter-Dateien definieren
Filter-Feld definieren
Filter-Felder können definiert werden, nach dem die Dateien/Tabellen/Views, die für die Listanzeige benötigt werden, definiert wurden.
B EN UT ZERHA ND BUC H 62
■ Filter Felder
Abbildung 11: Filter-Felder
Für die einzelnen Filter-Felder können unterschiedliche Vergleichsoperatoren angegeben werden. Wird
kein Vergleichsoperator angegeben, so wird der Unterlassungswert = (gleich) verwendet.
Bei der Definition der Filter-Felder können diverse Aufbereitungsoptionen angegeben werden.
Ebenso ist es möglich Unterlassungswerte anzugeben.
Über einen weiteren optionalen Parameter können Bedingungen definiert werden unter denen das Feld
angezeigt oder ausgeblendet werden kann.
Prototype
***************************************************************************
P* Procedure name: Wx_FltFld
P* Purpose:
Define Fields used for Filter
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParMsg
=> Message-Id or Text
P*
(=, <>, >=, <=, <, >, Like, Not Like,
P*
Not LikeLeft, LikeRight, Not LikeRight
P*
Not LikeLeft, LikeRight, Not LikeRight
P*
Not Between, Between,
Not In, In
P* Parameters:
ParOptions => Options
P* Parameters:
ParValue
=> Default Values
P* Parameters:
ParCond
=> Single field conditions
P* Parameters:
ParHelp
=> Help (Text or Message-Id
P*
--> Help = Level 2 Message Text)
? ***************************************************************************
D Wx_FltFld...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParMsg
Like(FldRef.MsgData)
Const
D ParCompare
Like(FldRef.Text15V)
Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParValues
Like(FldRefCGI.DftValue)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
B EN UT ZERHA ND BUC H 63
D
D
ParHelp
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
Const
Source Code 26: Prototype - Prozedur Wx_FltFld - Definieren Filter-Felder

Parameter
ParField

ParMsg

ParCompare Vergleichsoperator
Optionaler Parameter  Default-Wert ist =

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.3 Aufbereitungsoptionen für Filter-Felder

ParValues
Default-Werte
Optionaler Parameter
Bei Vergleichsoperator (Not) Between und (Not) In können mehrere alphanumerische
Default-Werte durch Kommata getrennt übergeben werden.

ParCond
Bedingungen unter denen das Filter-Feld angezeigt werden soll.
Wird in JavaScript konvertiert und zur Laufzeit ausgeführt
Optionaler Parameter

ParHelp
Hilfe-Text
Ein Hilfe-Text oder eine Message-Id mit Hilfe-Text kann übergeben werden. Sofern eine Message-Id übergeben wird, wird davon ausgegangen, dass der Hilfe-Text als Level 2 Text hinterlegt wurde.
Sofern bei der Message-Id, die für die Anzeige angegeben wurde ein Level 2-Text in
der Message-File hinterlegt ist, wird dieser automatisch als Hilfe-Text übernommen.
Feld/Spalten-Name des Filter-Feldes
Das Filter-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.
Beschreibung, die links neben dem Filter-Feld angezeigt wird
In dem Parameter kann entweder die Beschreibung direkt oder eine Message-Id angegeben werden.
Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für
die Anwendung hinterlegt sein.
Beispiel für den Aufruf
Wx_GenFlt('ADRESSEX':
Wx_FltFld('Ort':
Wx_FltFld('Land':
Wx_FltFld('KundeNr':
'NAME1F': '': 'NAME2F');
'FLD0005': 'LikeLeft');
'FLD0006': '=': 'enhflt CTL(Country)');
'FLD0001': '>=': 'enhflt');
Source Code 27 : Aufruf Prozedur Wx_FltFld() - Definieren Filter-Felder
B EN UT ZERHA ND BUC H 64
Abbildung 12 : Definierte Filter-Felder - Ergebnis aus Source Code 27
4.11.3.4 Wx_FltFileFld()
Filterfile und 1.Feld definieren
Sofern kein generischer Filter verwendet wird und auch nur auf eine einzige physische Datei/Tabelle/View zugegriffen wird, kann die Datei/Tabelle/View über die Funktion Wx_FltFileFld() direkt
zusammen mit dem 1. Filter-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_FltFld() übergeben werden können.
Prototype
***************************************************************************
P* Procedure name: Wx_FltFileFld
P* Purpose:
Define Fields used for Filter
P* Returns:
P* Parameters:
ParFile
=> File
P* Parameters:
ParField
=> Field
P* Parameters:
ParMsg
=> Message-Id or Text
P*
(=, <>, >=, <=, <, >, Like, Not Like,
P*
Not LikeLeft, LikeRight, Not LikeRight
P*
Not LikeLeft, LikeRight, Not LikeRight
P*
Not Between, Between,
Not In, In
P* Parameters:
ParOptions => Options
P* Parameters:
ParValue
=> Default Values
P* Parameters:
ParCond
=> Single Field Conditions
P* Parameters:
ParHelp
=> Help (Text or Message-Id
P*
--> Help = Level 2 Message Text
***************************************************************************
D Wx_FltFileFld...
D
PR
OPDesc
D ParFile
Like(FldRef.NameSQL)
Const
D ParField
Like(FldRef.NameSQL)
Const
D ParMsg
Like(FldRef.MsgData)
Const
B EN UT ZERHA ND BUC H 65
D
D
D
D
D
D
D
D
D
D
ParCompare
ParOptions
ParValues
ParCond
ParHelp
Like(FldRef.Text15V)
Options(*NoPass)
Like(FldRefCGI.Options)
Options(*NoPass)
Like(FldRefCGI.DftValue)
Options(*NoPass)
Like(FldRefCGI.Cond)
Options(*NoPass)
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
Const
Const
Const
Const
Const
Source Code 28: Prototype - Prozedur Wx_FltFileFld() - Definiere Filter-Datei und 1.Feld

Parameter
ParFile

ParField
Feld/Spalten-Name des Filter-Feldes
Das Filter-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.
Analog Parameter ParField in Funktion Wx_FltFld()

ParMsg
Beschreibung, die links neben dem Filter-Feld angezeigt wird
In dem Parameter kann entweder die Beschreibung direkt oder eine Message-Id angegeben werden.
Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für
die Anwendung hinterlegt sein.
Analog Parameter ParMsg in Funktion Wx_FltFld()

ParCompare Vergleichsoperator
Optionaler Parameter  Default-Wert ist =

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.3 Aufbereitungsoptionen für Filter-Felder
Analog Parameter ParOptions in Funktion Wx_FltFld()

ParValues
Default-Werte
Optionaler Parameter
Bei Vergleichsoperator (Not) Between und (Not) In können mehrere alphanumerische
Default-Werte durch Kommata getrennt übergeben werden.
Analog Parameter ParValues in Funktion Wx_FltFld()

ParCond
Bedingungen unter denen das Filter-Feld angezeigt werden soll.
Wird in JavaScript konvertiert und zur Laufzeit ausgeführt
Optionaler Parameter
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.
Analog Parameter ParFile1 in Funktion Wx_FltFile()
B EN UT ZERHA ND BUC H 66
Analog Parameter ParCond in Funktion Wx_FltFld()

ParHelp
Hilfe-Text
Ein Hilfe-Text oder eine Message-Id mit Hilfe-Text kann übergeben werden. Sofern eine Message-Id übergeben wird, wird davon ausgegangen, dass der Hilfe-Text als Level 2 Text hinterlegt wurde.
Sofern bei der Message-Id, die für die Anzeige angegeben wurde ein Level 2-Text in
der Message-File hinterlegt ist, wird dieser automatisch als Hilfe-Text übernommen.
Beispiel für den Aufruf
Wx_FltFileFld('TXDATEV05': 'WDUSER': 'TXD0011': '=':
'NotRequired ExecSQL(UserPrf)');
//Filter Mitarbeiter
Source Code 29: Aufruf Prozedur Wx_FltFileFld() - Definieren Filter-File und 1. Feld
4.11.3.5 Wx_BegEnhFlt()
Beginn erweiterter Filter
Durch die Angabe der Option EnhFlt bei der Filter-Feld-Definition können Filter-Felder, die im erweiterten
Filter angezeigt werden definiert werden.
Sofern mehrere Filter-Felder als erweiterte Filter-Felder definiert werden müssen, kann anstatt bei jedem
Feld die Option EnhFlt anzugeben die Funktion Wx_BegEnhFlt() aufgerufen werden.
Alle Filter-Felder, die nach Aufruf dieser Prozedur definiert werden, werden als erweiterte Filter-Felder
definiert und ausgegeben.
■ Filter
eingeblendet
■ Filter
ausgeblendet
Abbildung 13 : Erweiterte Filter
Prototype
**************************************************************************
P* Procedure name: Wx_BegEnhFlt
P* Purpose:
Begin enhanced filter
B EN UT ZERHA ND BUC H 67
P* Returns:
P* Parameters:
**************************************************************************
D Wx_BegEnhFlt...
D
PR
OPDesc
Source Code 30: Prototype
Prozedur Wx_BegEnhFlt()
Beginn erweiterter Filter
Parameter
Die Prozedur Wx_BegEnhFlt() hat weder einen Rückgabe-Wert noch Parameter.
Beispiel für den Aufruf
Wx_BegEnhFlt();
Wx_FltFld('WDDATE': 'Datum');
Wx_FltFld('WDTIME': 'Zeit');
... weitere Felder für den erweiterten Filter
Source Code 31: Aufruf Prozedur - Wx_BegEnhFlt() - Beginn erweiterter Filter
4.11.4 Bedingte Filter-Felder
Condition Group
WOPiXX stellt mehrere Funktionen zur Verfügung, mit deren Hilfe JavaScript-Code erzeugt wird, der zur
Laufzeit dafür sorgt, dass Filter-Felder nur unter bestimmten Bedingungen angezeigt werden.
Die Bedingungen unter denen die Filter-Felder angezeigt werden können auch bei den Funktionen
Wx_FltFileFld() und Wx_FltFld() über einen optionalen Parameter angegeben werden.
Um zu vermeiden, dass die gleichen Bedingungen mehrfach angegeben werden müssen, wurden Prozeduren erstellt, über die die Bedingung einmalig festgelegt wird. Alle im Anschluss definierten FilterFelder werden nur unter den in der Prozedur Wx_FltIf() angegebenen Bedingungen angezeigt.
Für Filter-Felder werden die folgenden zur Condition Group gehörenden Prozeduren zur Verfügung gestellt:

Wx_FltIf()

Wx_FltElse()

Wx_FltEndIf()
If-Anweisung = Beginn der Condition Group
(vergl. 4.11.4.1 Wx_FltIf() Beginn der Condition Group)
Else-Anweisung
(vergl. 4.11.4.2 Wx_FltElse Else-Anweisung)
EndIf-Anweisung = Ende der Condition Group
(vergl. 4.11.4.3 Wx_FltEndIf() Ende Condition Group)
Condition Groups können verschachtelt werden. Die Verschachtelung der Condition Groups sowie die
Anzahl der Aufrufe der Wx_FltIf() und Wx_FltEndIf() werden zur Laufzeit geprüft. Im Fehlerfall wird eine
Fehlermeldung ausgegeben.
Die Bedingung muss sich auf zuvor mit WOPiXX definierte Filter-Felder beziehen.
B EN UT ZERHA ND BUC H 68
Die Bedingungen können sowohl in RPG und CL als auch in Java-Script-Schreibweise angegeben werden. (vergl. Vergl. 4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern)
4.11.4.1 Wx_FltIf()
Beginn der Condition Group
Mit Hilfe der Prozedur Wx_FltIf() wird die erste Bedingung definiert. Die Bedingung wird in Java-ScriptCode übersetzt und steuert zur Laufzeit die Anzeige der Ein-/Ausgabe-Felder.
Alle Felder und Variablen, die nach dem Aufruf der Prozedur Wx_FltIf() definiert werden, werden unter
den gleichen Bedingungen angezeigt.
Wird die Prozedur Wx_FltIf() erneut, mit einer weiteren Bedingung aufgerufen, werden alle im Anschluss
definierten Filter-Felder nur dann angezeigt, wenn beide Bedingungen erfüllt sind.
Prototype
*************************************************************************
P* Procedure name: Wx_FltIf
P* Purpose:
Begin IF-Condition - Filter
P* Returns:
P* Parameters:
ParCond
=> Condition
*************************************************************************
D Wx_FltIf...
D
PR
OpDesc
D ParCond
Like(FldRefCGI.Cond) Const
Source Code 32: Prototype - Prozedur Wx_FltIf - Festlegen von Bedingungen
Parameter:

ParCond
Bedingungen
(Vergl. 4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern )
4.11.4.2 Wx_FltElse
Else-Anweisung
Über die Prozedur Wx_FltElse() kann eine ELSE-Anweisung definiert werden.
Alle Ein-/Ausgabe-Felder, die nach Ausführung der Prozedur Wx_FltElse() über WOPiXX-Funktionen definiert werden, werden zur Laufzeit unter den inversen Bedingungen der zuvor definierten IF-Anweisung
angezeigt.
Durch die Angabe von weiteren Bedingungen können Else-If-Bedingungen definiert werden.
Innerhalb der Else-Anweisungen können weitere Condition Groups definiert werden.
Prototype
*************************************************************************
P* Procedure name: Wx_FltElse
P* Purpose:
Begin Else(IF)-Condition - Filter
B EN UT ZERHA ND BUC H 69
P* Returns:
P* Parameters:
ParCond
=> Condition
*************************************************************************
D Wx_FltElse...
D
PR
OpDesc
D ParCond
Like(FldRefCGI.Cond) Const
D
Options(*NoPass)
Source Code 33: Prototype - Prozedur Wx_FltElse - Else-Bedingungen

Parameter
ParCond
Bedingungen
(Vergl. 4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern)
Optionaler Parameter
Durch Angabe von Bedingungen in der Else-Funktion wird eine ElseIf-Funktionalität erreicht.
4.11.4.3 Wx_FltEndIf()
Ende Condition Group
Der Aufruf der Wx_FltEndIf() Prozedur beendet die Condition Group.
Jede If-Anweisung muss beendet werden. Stimmen die Anzahl der Wx_FltIf() und Wx_FltEndIf()Prozedur-Aufrufe nicht überein, tritt zur Laufzeit ein Fehler auf.
Durch den Aufruf der Prozedur Wx_FltEndIf() wird die äußerste Condition Group beendet.
Zu jedem Wx_FltIf()-Prozedur-Aufruf, muss auch ein Wx_FltEndIf()-Prozedur-Aufruf ausgeführt werden.
Stimmt die Anzahl der Wx_FltIf()-Aufrufe mit der Anzahl der Wx_FltEndIf()-Aufrufe nicht überein, tritt zur
Laufzeit ein Fehler auf.
Alle Filter-Felder, die mit WOPiXX-Funktionen nach der Ausführung der Prozedur Wx_FltEndIf() definiert
werden, werden ohne Berücksichtigung der Bedingungen aus der beendeten Condition Group angezeigt.
Prototype
*************************************************************************
P* Procedure name: Wx_FltEndIf
P* Purpose:
End IF-Condition - Filter
P* Returns:
P* Parameters:
*************************************************************************
D Wx_FltEndIf...
D
PR
OpDesc
Source Code 34: Prototype - Prozedur Wx_FltEndIf - Ende der If-Anweisung

Parameter
Für die Prozedur Wx_FltEndIf sind keine Parameter erforderlich
B EN UT ZERHA ND BUC H 70
4.11.4.4 Condition Group - Beispiel für den Aufruf
Wx_FltIf('Firma = 10');
Wx_FltFld('AuftrArt': 'FLD0027': '=': 'SelectList');
Wx_FltIf('LiefBed = "AW"');
Wx_FltFld('LiefBed': 'FLD0029': '=': 'SelectList');
Wx_FltElse('LiefBed = "FH"');
Wx_FltFld('Status': 'FLD0026': '=': 'SelectList');
Wx_FltEndIf();
Wx_FltElse('Firma = 15');
Wx_FltFld('KundeNr': 'FLD0001': '=': 'SelectList');
Wx_FltIf('KundeNr < "20000"');
Wx_FltFld('BestNr': 'FLD0025': 'LikeLeft');
Wx_FltEndIf();
Wx_FltEndIf();
Source Code 35: Aufruf der Prozeduren Wx_FltIf(), Wx_FltElse(), Wx_FltEndIf() - Bedingte Filter
4.11.5 Inline-Filter
Neben den regulären Filter-Feldern können in Worktables zusätzlich Inline-Filter definiert werden.
Die Inline-Filter werden über das Schlüssel-Wort Filter(Option), das bei der Spalten-Definition angegeben wird, gesteuert. Wird ein Inline-Filter definiert kann eine der folgenden Optionen angegeben werden:





Text_Search In der entsprechenden Spalte wird dynamisch (abhängig von der Eingabe) die ein
Datensätze ausgewählt bzw. reduziert
Select_Filter Es wird eine Select-Liste mit den vorhandenen Ausprägungen bereitgestellt
Combo_Filter Es wird eine Combobox mit den vorhandenen Ausprägungen bereitgestellt. Abhängig von der Eingabe werden die Auswahlmöglichkeiten in der Combobox reduziert.
Text_Search Abhängig von der Eingabe wird innerhalb der Spalte auf das erste Vorkommen positioniert.
Numeric_Filter
B EN UT ZERHA ND BUC H 71
■ Text_filter
■ Select_filter
Abbildung 14: Inline Filter - Text_Filter / Select_Filter
Achtung:
Sofern Inline-Filter verwendet werden, wird per Default das übliche Paging
(Einlesen von Blöcken von jeweils 100 Datensätzen) ausgeschaltet, und alle Datensätze eingelesen.
Bei großen Datenmengen (mehrere 100.000 Datensätze) kann die Performance sehr darunter leiden. In diesen Fällen sollten besser reguläre FilterFelder definiert werden.
Das folgende Beispiel zeigt den Source Code zur Definition der Inline-Filterfelder im vorherigen Beispiel:
Wx_WrkFld('DCAPP':
Wx_WrkFld('DCNAM':
Wx_WrkFld('DCKEY':
Wx_WrkFld('DCTXT':
'DWB0552': 'Filter(Text_Filter)');
'WXA0002': 'Filter(Select_Filter)');
'DWB0590':'filter(Combo_Filter)');
'DWB0019': 'Filter(Text_Search)');
//Anwendung
//Kennung
//Schlüssel
//Beschreibung
Source Code 36: Beispiel für Inline Filter
Für Filter-Felder können individuelle Bedienerhilfe-Texte definiert werden.
Die Bedienerhilfe kann zum einen über einen optionalen Parameter in allen Definitions-Funktionen für
Change-Tables (z.B. Wx_FltFld() oder Wx_FltFileFld()) angegeben werden.
B EN UT ZERHA ND BUC H 72
Alternativ kann die Bedienerhilfe explizit durch den Aufruf Funktion WX_FltHelp() gesetzt oder überschrieben werden.
Dabei kann wahlweise direkt ein Hilfe-Text oder eine Message-Id übergeben werden. Wird eine Message-Id übergeben wird der Level 2-Message-Text dieser Message-Id ermittelt und als Hilfe-Text angezeigt.
Wurde weder ein Message-Text noch eine Message-Id angegeben, so wird, sofern eine Feldbeschreibung als Message-Id angegeben wurde der Level 2 Message-Text ermittelt und als Bedienerhilfe ausgegeben. Dieser Prozess erfolgt automatisch, ohne Angabe eines Schlüssel-Wortes.
Soll diese Automatik unterbunden werden, bzw. kein Hilfe-Text erwünscht sein, so kann in dem optionalen Parameter für die Bedienerhilfe der Sonderwert *NONE übergegeben werden. Das Hinzufügen der
Bedienerhilfe kann ebenfalls durch den Aufruf der Funktion Wx_FltNoHelp() entweder für ein einzelnes
Feld oder alle Felder unterbunden werden.
Sofern ein Hilfe-Text zu einem (Eingabe)-Feld vorhanden ist, wird ein Fragezeichen-Icon angezeigt. Bei
der Mouse Over-Aktion wird der hinterlegte Hilfe-Text angezeigt.
= Hilfetexte
vorhanden
■ Hilfetext für
Kunden-Nr
Abbildung 15: Bedienerhilfe bei Filter-Feldern
4.11.5.1 WX_FltHelp
Bedienerhilfe zu Filter hinzufügen
Mit Hilfe der Funktion Wx_FltHelp können in Work-Programmen Hilfe-Texte zu Filter-Feldern zugewiesen
werden.
Prototyp
***************************************************************************
P* Procedure name: Wx_FltHelp
P* Purpose:
Add individual help to a filter field
P*
If a Message-Id is passed the 2nd Level Message Text will
P*
will be used as help text
B EN UT ZERHA ND BUC H 73
P*
If a Message Text is passed this text will be used
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParMsg
=> Help text or message id
P* Parameters:
ParMsgTxt
=> Variable Message Text (Optional if a m
***************************************************************************
D Wx_FltHelp...
D
PR
OpDesc
D
ParField
Like(FldRef.NameSQL)
Const
D
Options(*Trim)
D
ParMsg
Like(FldRefCGI.Help)
Const
D
ParMsgTxt
Like(FldRef.MsgText)
Const
D
Options(*NoPass: *Trim)
Source Code 37: Prototype - Procedure Wx_FltHelp
Parameter

ParField
Bedienerhilfe für Filter hinzufügen
Eindeutige Kennung des Filter-Feldes

ParMsg

ParMsgTxt Variable Message-Texte
Sofern eine Message-Id übergeben wurde, können zusätzlich Variable Message-Texte
(die die Platzhalter in dem Message-Text ersetzen angegeben werden)
Bedienerhilfe-Text oder Message-Id der Bedienerhilfe
Bedienerhilfe wird aus Level 2 Message-Text der Message-Id ermittelt
Beispiele für den Aufruf
Wx_FltHelp('Land': 'Internationales Länder-Kennzeichen');
Wx_FltHelp('KundeNr': 'MSG1234');
Wx_FltHelp('ARTNR':
'MSG7111': MyFld1 + ' ' + MyFld2);
Source Code 38: Aufruf Prozedur Wx_FltHelp()
4.11.5.2 Wx_FltNoHelp
Bedienerhilfe für Filter hinzufügen
Bedienerhilfe für Filter unterbinden
Mit der Funktion Wx_FltNoHelp() kann die automatische Ermittlung der Bedienerhilfe für einzelne FilterFelder oder alle Filter-Felder unterbunden werden.
Prototyp
***************************************************************************
P* Procedure name: Wx_FltNoHelp
P* Purpose:
Prevents from adding automatically help texts to filter
P* Returns:
P* Parameters:
ParField
=> Field
(Optional)
P*
Not Passed or Special Value *ALL -->
P
No help text for all fields
***************************************************************************
D Wx_FltNoHelp...
D
PR
OpDesc
D
ParField
Like(FldRef.NameSQL)
Const
B EN UT ZERHA ND BUC H 74
D
Options(*NoPass: *Trim)
Source Code 39: Prototype Procedure Wx_ChgNoHelp - Automatische Ermittlung der Bedienerhilfe unterbinden

Parameter
ParField
Eindeutige Kennung des Filter-Feldes
(Optional)
Nicht übergeben oder Sonderwert *NONE  Bedienerhilfe wird für alle Felder unterbunden
Beispiele für den Aufruf
Wx_FltNoHelp('ARTNR');
Wx_FltNoHelp();
Source Code 40: Aufruf Procedure Wx_FltNoHelp - Automatische Ermittlung der Bedienerhilfe für Filter unterbinden
4.11.6 Prozeduren für Kontext-Menü und Buttons
Sofern für Worktables kein Kontext-Menü und keine Buttons definiert werden, wird automatisch ein
Default-Kontext-Menü und ein Default-Button (Erfassen) generiert.
Das Default-Kontext-Menü enthält die folgenden Menü-Punkte:




Ändern
Kopieren
Löschen
Eigenschaften (= Anzeigen)
Die Verarbeitung der Standard-Kontext-Menü-Punkte bzw. des Standard-Buttons erfolgt in dem FolgeProgramm, das beim Öffnen des HTML-Dokuments über Funktion Wx_OpnHTMLWrk() festgelegt wurde.
Bei individuellen Kontext-Menü-Punkten oder individuellen Buttons kann das auszuführende Programm
direkt angegeben werden. Zur Laufzeit wird geprüft, ob es sich bei der eindeutigen Kennung um ein
Programm in der aktuellen Bibliotheksliste handelt. Ist das Programm in der Bibliotheksliste vorhanden,
wird es direkt aufgerufen. Konnte kein Programm gefunden werden, wird das gleiche Programm aufgerufen, das auch für die Standard-Menü-Punkte aufgerufen wird. Die eindeutige Kennung muss in diesem
Programm geprüft werden, um entsprechende Aktionen ausführen zu können.
Soll kein Kontext-Menü generiert werden, muss entweder die Prozedur Wx_NoCtxMnuItm() oder die
Prozedur Wx_CtxMnuItm() explizit mit dem Parameter-Sonderwert *NONE aufgerufen werden.
Soll der Standard-Button nicht generiert werden, so muss entweder die Prozedur Wx_NoWrkBtn() oder
die Prozedur Wx_WrkBtn() mit dem Parameter-Sonderwert *NONE explizit aufgerufen werden.
B EN UT ZERHA ND BUC H 75
Werden nicht alle Default-Menü-Punkte gewünscht, so muss entweder die Prozedur für die gewünschte
Aktion (z.B. Wx_CtxMnuItmChange() oder Wx_CtxMnuItmDelete()) oder die Prozedur Wx_CtxMnuItm()
jeweils mit der gewünschten Aktion (z.B. *CHANGE) im ersten Parameter aufgerufen werden.
Sofern die Standard-Kontext-Menü-Punkte sowie individuelle Kontext-Menü-Punkte erwünscht sind,
müssen die Prozeduren für die gewünschten Standard-Kontext-Menü-Punkte aufgerufen werden.
Wenn alle Standard-Kontext-Menü-Punkte integriert werden sollen, genügt der Aufruf der Prozedur
Wx_CtxMnuItmDefault() oder der Aufruf der Prozedur Wx_CtxMnuItm() mit dem Sonderwert *DEFAULT
oder *DFT im ersten Parameter.
Die Funktion Wx_WrkBtn() muss für jeden individuellen Button aufgerufen werden.
Sofern der Standard-Button für Hinzufügen eingefügt werden soll, kann entweder dir Prozedur
Wx_WrkBtnAdd() oder die Funktion Wx_WrkBtnAdd() mit dem Sonderwert *ADD als erster Parameter
aufgerufen werden.
4.11.6.1 Wx_NoCtxMnuItm()
Ohne Standard-Kontext-Menü
Die Standard-Kontext-Menü-Auswahlen (Ändern, Hinzufügen, Löschen, Anzeigen/Properties) werden
automatisch generiert.
Sofern diese Standard-Kontext-Menü-Auswahlen nicht eingebunden werden sollen, kann dies durch
den Aufruf der Prozedur Wx_NoCtxMnuItm() unterbunden werden.
Prototype
***************************************************************************
P* Procedure name: Wx_NoCtxMnuItm
P* Purpose:
Define no context menu items (--> not even default items)
P* Returns:
***************************************************************************
D Wx_NoCtxMnuItm...
D
PR
3U 0
OpDesc
Source Code 41: Prototype - Funktion Wx_NoCtxMnuItm()
Parameter

Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
Beispiele für den Aufruf
Wx_NoCtxMnuItm();
Source Code 42: Aufruf Funktion Wx_NoCtxMnuItm()
Standard-Menü nicht einbinden
B EN UT ZERHA ND BUC H 76
4.11.6.2 Wx_CtxMnuItmChange()
Menü-Punkt Ändern
Sofern individuelle Kontext-Menü-Punkte eingebunden werden, wird das Standard-Kontext-Menü nicht
eingebunden.
In diesem Fall müssen die benötigten Standard-Menü-Punkte durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_CtxMnuItm() mit dem Sonderwert des gewünschten Standard-KontextMenü-Punktes im ersten Parameter aufgerufen werden.
Durch den Aufruf der Prozedur Wx_CtxMnuItmChange() wird der Standard-Kontext-Menü-Punkt Änderung/Change eingebunden.
Prototype
***************************************************************************
P* Procedure name: Wx_CtxMnuItmChange
P* Purpose:
Define Context Menu Item Change
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_CtxMnuItmChange...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 43: Prototype - Funktion Wx_CtxMnuItmChange()


Standard--Menü-Punkt Änderung einbinden
Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Beispiele für den Aufruf
Wx_CtxMnuItmChange();
Wx_CtxMnuItmChange(line);
Source Code 44: Aufruf Funktion Wx_CtxMnuItmChange()
Standard-Menü-Punkt Änderung einbinden
B EN UT ZERHA ND BUC H 77
4.11.6.3 Wx_CtxMnuItmCopy()
Menü-Punkt Kopieren
Sofern individuelle Kontext-Menü-Punkte eingebunden werden, wird das Standard-Kontext-Menü nicht
eingebunden.
In diesem Fall müssen die benötigten Standard-Menü-Punkte durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_CtxMnuItm() mit dem Sonderwert des gewünschten Standard-KontextMenü-Punktes im ersten Parameter aufgerufen werden.
Durch den Aufruf der Prozedur Wx_CtxMnuItmCopy() wird der Standard-Kontext-Menü-Punkt Kopieren
eingebunden.
Prototype
***************************************************************************
P* Procedure name: Wx_CtxMnuItmCopy
P* Purpose:
Define Context Menu Item Copy
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_CtxMnuItmCopy...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 45: Prototype - Funktion Wx_CtxMnuItmCopy()
Standard-Menü-Punkt Kopieren einbinden
Parameter

Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden

ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Beispiele für den Aufruf
Wx_CtxMnuItmCopy();
Wx_CtxMnuItmCopy(line);
Source Code 46: Aufruf Funktion Wx_CtxMnuItmCopy()
Standard-Menü-Punkt Kopieren einbinden
B EN UT ZERHA ND BUC H 78
4.11.6.4 Wx_CtxMnuItmDelete()
Menü-Punkt Löschen
Sofern individuelle Kontext-Menü-Punkte eingebunden werden, wird das Standard-Kontext-Menü nicht
eingebunden.
In diesem Fall müssen die benötigten Standard-Menü-Punkte durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_CtxMnuItm() mit dem Sonderwert des gewünschten Standard-KontextMenü-Punktes im ersten Parameter aufgerufen werden.
Durch den Aufruf der Prozedur Wx_CtxMnuItmDelete() wird der Standard-Kontext-Menü-Punkt Löschen
eingebunden.
Prototype
***************************************************************************
P* Procedure name: Wx_CtxMnuItmDelete
P* Purpose:
Define Context Menu Item Delete
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_CtxMnuItmDelete...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 47: Prototype - Funktion Wx_CtxMnuItmDelete()
Standard-Menü-Punkt Löschen einbinden
Parameter

Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden

ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Beispiele für den Aufruf
Wx_CtxMnuItmDelete();
Wx_CtxMnuItmCDeleteline);
Source Code 48: Aufruf Funktion Wx_CtxMnuItmDelete()
Standard-Menü-Punkt Löschen einbinden
B EN UT ZERHA ND BUC H 79
4.11.6.5 Wx_CtxMnuItmProperty()
gen/Eigenschaften
Menü-Punkt
Anzei-
Sofern individuelle Kontext-Menü-Punkte eingebunden werden, wird das Standard-Kontext-Menü nicht
eingebunden.
In diesem Fall müssen die benötigten Standard-Menü-Punkte durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_CtxMnuItm() mit dem Sonderwert des gewünschten Standard-KontextMenü-Punktes im ersten Parameter aufgerufen werden.
Durch den Aufruf der Prozedur Wx_CtxMnuItmProperty() wird der Standard-Kontext-Menü-Punkt Anzeigen/Eigenschaften eingebunden.
Prototype
***************************************************************************
P* Procedure name: Wx_CtxMnuItmProperty
P* Purpose:
Define Context Menu Item Property
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_CtxMnuItmProperty...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 49: Prototype - Funktion Wx_CtxMnuItmProperty()
Standard-Menü-Punkt Eigenschaften
Parameter

Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden

ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Beispiele für den Aufruf
Wx_CtxMnuItmProperty();
Wx_CtxMnuItmProperty(line);
Source Code 50: Aufruf Funktion Wx_CtxMnuItmProperty()
Standard-Menü-Punkt Eigenschaften einbinden
B EN UT ZERHA ND BUC H 80
4.11.6.6 Wx_CtxMnuItmDefault()
Standard-Kontext-Menü
Sofern individuelle Kontext-Menü-Punkte eingebunden werden, wird das Standard-Kontext-Menü nicht
eingebunden.
In diesem Fall müssen die benötigten Standard-Menü-Punkte durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_CtxMnuItm() mit dem Sonderwert des gewünschten Standard-KontextMenü-Punktes im ersten Parameter aufgerufen werden.
Sollen alle Standard-Kontext-Menü-Punkte eingebunden werden, können durch den einmaligen Aufruf
der Funktion Wx_CtxMnuItmDefault alle Standard-Kontext-Menü-Punkte eingebunden werden.
Prototype
***************************************************************************
P* Procedure name: Wx_CtxMnuItmDefault
P* Purpose:
Define Context Menu Item Default
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_CtxMnuItmDefault...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 51: Prototype - Funktion Wx_CtxMnuItmDefault()


Alle Standard-Menü-Punkte einbinden
Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Sofern Optionen angegeben wurden, werden diese für alle Standard-Kontext-MenüPunkte übernommen.
Beispiele für den Aufruf
Wx_CtxMnuItmDefault();
Wx_CtxMnuItmDefault(line);
Source Code 52: Aufruf Funktion Wx_CtxMnuItmDefault()
Alle Standard-Menü-Punkte einbinden
B EN UT ZERHA ND BUC H 81
4.11.6.7 Wx_CtxMnuItm() Kontextmenüpunkt definieren
Für die Bearbeitung von einzelnen Zeilen in den Worktables können über die Funktion Wx_CtxMnuItm()
Kontext-Menü-Punkte definiert werden.
Zur Definition der Standard-Menü-Punkte wird die Prozedur Wx_CtxMnuItm() jeweils nur mit einem Parameter aufgerufen, in die gewünschte Option (*CHANGE, *COPY, *DELETE oder *PROPERTY) angegeben wird.
Bei der Definition eines individuellen Kontext-Menü-Punktes wird im ersten Parameter eine eindeutige
Kennung übergeben.
Bei dieser eindeutigen Kennung kann es sich auch um einen Programm-Namen handeln. Wurde ein
Programm angegeben, wird dieses zur Laufzeit direkt aufgerufen. Anderenfalls wird das Programm, das
in der Prozedur Wx_OpnHTMLWrk() hinterlegt wurde aufgerufen.
Bei einem individuellen Kontext-Menü-Punkt muss der Text, der in dem Kontext-Menü erscheinen soll
angegeben werden. Der Text kann entweder direkt angegeben oder als Message-Id hinterlegt werden.
Die Funktion Wx_CtxMnuItm() muss für jeden (individuellen) Kontext-Menü-Punkt aufgerufen werden.
Die Kontext-Menü-Punkte werden in der gleichen Reihenfolge angeordnet, in der die Kontext-MenüPunkte (durch Aufruf der Funktion Wx_CtxMnuItm()) definiert wurden.
Prototype
***************************************************************************
P* Procedure name: Wx_CtxMnuItm
P* Purpose:
Define Fields used for Work Table
P* Returns:
P* Parameters:
ParMnuItm
=> Menu Item --> Several Default *ITEMs
P*
(such as *CHANGE) allowed
P*
Default Options: *ADD, *CHANGE, *COPY,
P*
*DELETE, *PROPERTY
P*
*DFT/*DEFAULT = all previously listed
P* Parameters:
ParMsg
=> Message-Id or Item Text
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_CtxMnuItm...
D
PR
3U 0
OpDesc
D ParMnuItm
Like(FldRef.MnuItm)
Const
D ParMsg
Like(FldRef.MsgData) Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 53: Prototype - Funktion Wx_CtxMnuItm
B EN UT ZERHA ND BUC H 82




Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
ParMnuItm Eindeutige Kontext-Menü-Kennung
Standard-Kontext-Menü-Punkte:

*CHANGE
Kontext-Menü-Punkt Änderung

*COPY
Kontext-Menü-Punkt Kopieren

*DELETE
Kontext-Menü-Punkt Delete

*PROPERTY
Kontext-Menü-Punkt Eigenschaften/Anzeigen

*DEFAULT/*DFT
Alle Standard-Kontext-Menü-Punkte

*NONE
Keine Standard-Kontext-Menü-Punkte
einbinden
Sonstige Kontext-Menü-Punkte:

Programm-Name
Sofern es sich zur Laufzeit um ein Programm
in der Bibliotheksliste handelt, wird dieses Programm
aufgerufen

Eindeutige Kennung
Sofern zur Laufzeit kein Programm mit der
eindeutigen Kennung vorhanden ist, wird das Programm das in Prozedur Wx_OpnHTMLWrk() vorgegeben wurde aufgerufen.
Die eindeutige Kennung kann in dem aufgerufenen
Programm über Funktion Wx_isMode geprüft werden.
ParMsg
Text für Kontext-Menü-Punkt
Optionaler Parameter
 Nur erforderlich bei individuellen Kontext-Menü-Punkten
Wahlweise kann ein Text oder eine Message-Id (aus der der Anwendung zugeordneten Message-File) angegeben werden.
ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Beispiele für den Aufruf
Wx_CtxMnuItm('*CHANGE');
Wx_CtxMnuItm('*PROPERTY');
Wx_CtxMnuItm('KXCHGKOEM': 'KXD0086': 'Window line');
Wx_CtxMnuItm('KXCHGKOTX': 'KXD0016': 'Window');
Wx_CtxMnuItm('KXWRKKOPR': 'KXD0031': 'Window line');
Wx_CtxMnuItm('KXWRKKOTN': 'KXD0026': 'Window');
Wx_CtxMnuItm('KXWRKKOSP': 'KXD0032': 'Window');
Wx_CtxMnuItm('FAKTALL' : 'Faktura erstellen':
'Window line');
Wx_CtxMnuItm('KXWRKMAIL2': 'Gesendete e-mails':
'Window line');
Wx_CtxMnuItm('KXKNGRCSV': 'KXD0094': 'Window line');
Wx_CtxMnuItm('KXANWCSV' : 'KXD0114': 'Window');
Source Code 54: Aufruf Funktion Wx_CtxMnuItm() - Definieren Kontext-Menü-Punkt
Das Ergebnis dieser Kontext-Menü-Definition wird im folgenden Screenshot gezeigt.
B EN UT ZERHA ND BUC H 83
Abbildung 16: Erstellen Kontext-Menü durch Aufruf der Funktion Wx_CtxMnuItm()
4.11.6.8 Wx_NoWrkBtn()
Ohne Standard-Buttons
Der Standard-Button Hinzufügen wird automatisch generiert.
Sofern dieser Standard-Button nicht eingebunden werden soll, kann dies durch den Aufruf der Prozedur
Wx_NoWrkBtn() unterbunden werden..
Prototype
***************************************************************************
P* Procedure name: Wx_NoWrkBtn
P* Purpose:
Define no Buttons (--> not even default buttons)
P* Returns:
***************************************************************************
D Wx_NoWrkBtn...
D
PR
3U 0
OpDesc
Source Code 55: Prototype - Funktion Wx_NoWrkBtn()
B EN UT ZERHA ND BUC H 84

Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
Beispiele für den Aufruf
Wx_NoWrkBtn();
Source Code 56: Aufruf Funktion Wx_NoWrkBtn()
Standard-Button nicht einbinden
4.11.6.9 Wx_WrkBtnAdd()
Button Hinzufügen/Erfassen
Sofern individuelle Buttons eingebunden werden, werden die Standard-Buttons nicht eingebunden.
In diesem Fall müssen die benötigten Standard-Buttons durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_WrkBtn() mit dem Sonderwert des gewünschten Standard-Buttons im ersten Parameter aufgerufen werden.
Durch den Aufruf der Prozedur Wx_WrkBtnAdd() wird der Standard-Button Hinzufügen/Erfassen eingebunden.
Prototype
***************************************************************************
P* Procedure name: Wx_WrkBtnAdd
P* Purpose:
Define Button Add
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParMsg
=> Message Text or Message Id
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_WrkBtnAdd...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMsg
Like(FldRef.MsgText)
Const
D
Options(*NoPass: *Trim)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 57: Prototype - Funktion Wx_WrkBtnAdd()


Button Hinzufügen/Erfassen
Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
B EN UT ZERHA ND BUC H 85

ParMsg
Optionaler Parameter
Button-Text oder Message-Id für vom Default abweichenden Button-Text
Optionaler Parameter
Beispiele für den Aufruf
Wx_WrkBtnAdd();
Wx_WrkBtnAdd(line);
Wx_WrkBtnAdd('': 'Neuer Auftrag');
Wx_WrkBtnAdd('': 'MSG4711');
Source Code 58: Aufruf Funktion Wx_WrkBtnAdd()
4.11.6.10
Standard-Button Erfassen/Hinzufügen einbinden
Wx_WrkBtnDefault()
Standard-Buttons
Sofern individuelle Buttons eingebunden werden, werden keine Standard-Buttons eingebunden.
In diesem Fall müssen die benötigten Standard-Buttons durch Aufruf der entsprechenden Prozedur oder der Prozedur Wx_WrkBtn() mit dem Sonderwert des gewünschten Standard-Buttons im ersten Parameter aufgerufen werden.
Sollen alle Standard-Buttons eingebunden werden, können durch den einmaligen Aufruf der Funktion
Wx_WrkBtnDefault alle Standard-Buttons eingebunden werden.
Prototype
***************************************************************************
P* Procedure name: Wx_WrkBtnDefault
P* Purpose:
Define Button Default
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_WrkBtnDefault...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 59: Prototype - Funktion Wx_WrkBtnDefault()
Alle Standard-Buttons einbinden
Parameter

Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden
B EN UT ZERHA ND BUC H 86

ParOptions Optionen (vergl. 4.3.5 Aufbereitungsoptionen Kontext-Menü-Punkte424)
Optionaler Parameter
Sofern Optionen angegeben werden, werden die Optionen für alle Standard-Buttons
übernommen.
Beispiele für den Aufruf
Wx_WrkBtnDefault();
Wx_WrkBtnDefault(line);
Source Code 60: Aufruf Funktion Wx_WrkBtnDefault()
4.11.6.11
Alle Standard-Buttons einbinden
Wx_WrkBtn() Button definieren
Über die Funktion Wx_WrkBtn() können Buttons definiert werden, durch die Folge-Programme aktiviert
werden können.
Wird die Funktion Wx_WrkBtn() nicht aufgerufen wird automatisch der Button Erfassen für das Hinzufügen von neuen Datensätzen generiert.
Soll dieser Button nicht generiert werden, muss die Funktion Wx_WrkBtn() mit dem Sonderwert *NONE
im ersten Parameter aufgerufen werden.
Für individuelle Buttons wird im ersten Parameter eine eindeutige Kennung übergeben. Bei dieser eindeutigen Kennung kann es sich auch um einen Programm-Namen handeln. Wurde ein Programm angegeben, wird dieses zur Laufzeit direkt aufgerufen. Anderenfalls wird das Programm, das in der
Prozedur Wx_OpnHTMLWrk() hinterlegt wurde aufgerufen.
Weiterhin muss bei individuellen Buttons der Text (wahlweise auch als Message-Id) angegeben werden.
Die Funktion Wx_WrkBtn() muss für jeden (individuellen) Button aufgerufen werden.
Die Buttons werden in der gleichen Reihenfolge angeordnet, in der die Buttons definiert wurden (durch
Aufruf der Funktion Wx_WrkBtn()) definiert wurden.
Prototype
***************************************************************************
P* Procedure name: Wx_WrkBtn
P* Purpose:
Define Fields used for Work Table
P* Returns:
P* Parameters:
ParButton
=> Button --> Several Default *ITEMs
P*
(such as *ADD
P*
Default Options: *ADD
P*
*DFT/*DEFAULT --> all previously listed
P* Parameters:
ParMsg
=> Message-Id or Item Text
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
B EN UT ZERHA ND BUC H 87
D Wx_WrkBtn...
D
D ParButton
D ParMsg
D
D ParOptions
D
D ParTblOptions
D
D ParMnuObj
D
D ParMnuId
D
PR
3U 0
OpDesc
Like(FldRef.MnuItm)
Const
Like(FldRef.MsgData)
Const
Options(*NoPass)
Like(FldRefCGI.Options) Const
Options(*NoPass)
Like(FldRefCGI.Options) Const
Options(*NoPass)
Like(FldRef.MnuObj)
Const
Options(*NoPass)
Like(FldRef.MnuObj)
Const
Options(*NoPass)
Source Code 61: Prototype - Prozedur Wx_WrkBtn() - Definieren Button für Work Table
Parameter

Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden

ParButton
Eindeutige Kennung
Standard-Buttons:

*ADD

*DEFAULT/*DFT

*NONE
Sonstige Buttons:

Programm-Name



Eindeutige Kennung
Button Erfassen/Hinzufügen
Alle Standard-Buttons
Kein Standard-Button einbinden
Sofern es sich zur Laufzeit um ein Programm
in der Bibliotheksliste handelt, wird dieses Programm
aufgerufen
Sofern zur Laufzeit kein Programm mit der
eindeutigen Kennung vorhanden ist, wird das Programm das in Prozedur Wx_OpnHTMLWrk() vorgegeben wurde aufgerufen.
Die eindeutige Kennung kann in dem aufgerufenen
Programm über Funktion Wx_isMode geprüft werden.
ParMsg
Text für Button
Optionaler Parameter
 Nur erforderlich bei individuellen Buttons
Wahlweise kann ein Text oder eine Message-Id (aus der der Anwendung zugeordneten Message-File) angegeben werden
.
ParOptions Optionen
Optionaler Parameter
Beispiel für den Aufruf
Wx_WrkBtn('SELFIL' :
Wx_WrkBtn('ACTALL' :
Wx_WrkBtn('ENDALL' :
Wx_WrkBtn('DtaQ'
:
WX_WrkBtn('DeregFil':
'WEB0058': 'Window');
'WEB0087': 'Window');
'Trigger beenden': 'Window');
'WEB0059': 'Window');
'WEB0060': 'Window');
B EN UT ZERHA ND BUC H 88
Source Code 62: Aufruf Prozedur Wx_WrkBtn() - Button definieren
Dieses Beispiel definiert die Buttons in dem folgenden Screenshot.
Abbildung 17: Definition von Buttons in Work-Programmen
4.11.6.12 Wx_WrkBtnReseq- Resequenzierung
Die Reihenfolge der Datensätze innerhalb von List-Anzeigen kann mittels Drag und Drop geändert werden.
Voraussetzung ist, dass ein Resequenzierungs-Button mit Hilfe der Funktion Wx_WrkBtnReseq() definiert wurde.
Prototype
***************************************************************************
P* Procedure name: Wx_WrkBtnReseq
P* Purpose:
Define Button for Resequencing
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParMsg
=> Message Text or Message Id
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_WrkBtnReseq...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass: *Trim)
D ParMsg
Like(FldRef.MsgText)
Const
D
Options(*NoPass: *Trim)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 63: Prototype - Prozedur Wx_WrkBtnReseq() - Definieren Button für Resequenzierung
B EN UT ZERHA ND BUC H 89

Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden

ParOptions Optionen
Optionaler Parameter
Vergl. 4.3.6 Aufbereitungsoptionen für Buttons

ParMsg
Message-Id oder Text für vom Default abweichenden Button-Text
Optionaler Parameter
Wahlweise kann ein Text oder eine Message-Id (aus der der Anwendung zugeordneten Message-File) angegeben werden
Beispiel für den Aufruf
Wx_WrkBtnReseq();
Wx_WrkBtnReseq('confirm(Wollen Sie die Änderungen wirklich speichern) ');
Wx_WrkBtnReseq('': 'BTN4111');
Source Code 64: Aufruf Prozedur Wx_WrkBtnReseq()
Button für Resequenzierung definieren
4.11.6.13 Wx_WrkBtnEdtList
Editierbare Worktables
Es ist möglich Datensätze innerhalb von Worktables direkt zu ändern.
Voraussetzung ist, dass ein entsprechender
Wx_WrkBtnEdtList() definiert wurde.
Änderungs-Button
mit
Hilfe
der
Funktion
Prototype
***************************************************************************
P* Procedure name: Wx_WrkBtnEdtList
P* Purpose:
Define Button for Editable Lists
P* Returns:
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParMsg
=> Message Text or Message Id
P* Parameters:
ParTblOptions => Options
P* Parameters:
ParMnuObj
=> Menu Object
P* Parameters:
ParMnuId
=> Menu Id
***************************************************************************
D Wx_WrkBtnEdtList...
D
PR
3U 0
OpDesc
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass: *Trim)
D ParMsg
Like(FldRef.MsgText)
Const
D
Options(*NoPass: *Trim)
D ParTblOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParMnuObj
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
D ParMnuId
Like(FldRef.MnuObj)
Const
D
Options(*NoPass)
Source Code 65: Prototype - Prozedur Wx_WrkBtnReseq() - Definieren Button für Resequenzierung
B EN UT ZERHA ND BUC H 90

Parameter
Rückgabe-Wert Nr. der Worktables ( aktuell immer 1)
Kann von WOPiXX-Programmen ignoriert werden

ParOptions Optionen
Optionaler Parameter
Vergl. 4.3.6 Aufbereitungsoptionen für Buttons

ParMsg
Message-Id oder Text für vom Default abweichenden Button-Text
Optionaler Parameter
Wahlweise kann ein Text oder eine Message-Id (aus der der Anwendung zugeordneten Message-File) angegeben werden
Beispiel für den Aufruf
Wx_WrkBtnEdtList();
Wx_WrkBtnEdtList('confirm(Wollen Sie die Änderungen wirklich speichern) ');
Wx_WrkBtnEdtList('': 'BTN2222');
Source Code 66: Aufruf Prozedur Wx_WrkBtnEdtList()
Button für editierbare Worktables definieren
4.11.7 Prozeduren zur Erstellung der Work Tables
Work Tables sind List-Anzeigen, die auf einem SQL-Select-Statement beruhen.
Das SQL-Statement wird per Default automatisch - basierend auf den definierten Dateien/Tabellen/Views (Prozedur-Aufrufe Wx_GenFlt(), Wx_FltFile(), Wx_FltFileFld(), Wx_WrkFile()) und Felder/Spalten (Prozedur-Aufrufe Wx_WrkKey(), Wx_WrkFld()) - generiert. Es ist jedoch auch möglich das
SQL-Select-Statement direkt vorzugeben (Prozedur-Aufruf Wx_WrkSQLMan()).
Zu dem SQL-Statement (unabhängig davon ob automatisch generiert oder direkt vorgegeben) können
zusätzliche Where-Bedingungen (Prozedur-Aufruf Wx_WrkWhere()) hinzugefügt werden.
Ebenso ist es möglich eine Default-Sortierung (Prozedur-Aufruf Wx_DftOrder()) vorzugeben.
Zusätzlich zu der List-Anzeige ist es möglich Kontext-Menüs (Prozedur-Aufruf Wx_CtxMnuItm) und Buttons (Prozedur-Aufruf Wx_WrkBtn) zum Aufruf von Folge-Programmen festzulegen
4.11.7.1 Wx_WrkFile()
Datei für Work Table definieren
Sofern in dem List-Programm keine Filter-Felder benötigt werden, müssen die verwendeten Dateien/Tabellen/Views über die Funktion Wx_WrkFile() definiert werden.
Sofern die Dateien/Tabellen/Views bereits für die Filter-Felder definiert wurden, ist eine neuerliche Definition der Tabellen nicht mehr erforderlich.
B EN UT ZERHA ND BUC H 91
Über die Funktion Wx_WrkFile können bis zu 10 Dateien/Tabellen/Views definiert werden. Da diese Dateien/Tabellen/Views zum Aufbau des Select-Statements, das die Listanzeige bildet verwendet wird,
müssen die Abhängigkeiten (Join-Informationen) zwischen den Dateien/Tabellen/Views definiert werden.
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.
Prototype
**************************************************************************
P* Procedure name: Wx_WrkFile
P* Purpose:
Define Files used for Work Tables
P*
--> Up to 10 Files can be specified
P*
--> If more than 1 File is specified: Join Conditions ar
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_WrkFile...
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
B EN UT ZERHA ND BUC H 92
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
ParJoin7
ParFile8
ParJoin8
ParFile9
ParJoin9
ParFile10
ParJoin10
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Const
Const
Const
Const
Const
Const
Const
Source Code 67: Prototype - Procedure Wx_WrkFile() - Definieren Dateien für Work Tables

Parameter
ParFile1
Analog zu Prozedur Wx_FltFile() Datei für Filter definieren
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.

ParFile2

ParJoin2
Physische Datei/Tabelle/View
Optionaler Parameter
Kurzer System- oder langer SQL Name
Verknüpfung zwischen Datei/Tabelle/View 1 und 2
Optionaler Parameter muss angegeben werden, wenn ParFile2 angegeben wurde
(auch dann wenn ein Cross Join gewünscht wird).

Beispiel:
+
on Key1File1 = Key1File2 +
and Key2File1 = Key2File2


Die Parameter ParFile3 ParFile10 sind optional und werden analog ParFile2 verwendet.
Die Parameter ParJoin3 ParJoin10 sind optional werden analog ParJoin2 verwendet.
Beispiel für den Aufruf
Wx_WrkFile('AuftrKopfX');
Wx_WrkFile('AuftrKopfX': 'AuftrPosX':
'Join AuftrPosX on AuftrKopfX.BestNr = AuftrPosX.BestNr':
'KundSt':
'Left Outer Join KundSt on KundeNr = KndNr');
Wx_WrkFile('DWEMLADR': 'KXKOEMV05':
'Join KXKOEMV05 on EMEMAIL = EASEML':
'KXMAILV02':
' Left Outer Join KXMAILV02 on
EAMID
and EATYP
'WITITV01':
' Left outer Join WITITV01 on
KGMAND
and KGTINR
Source Code 68: Beispiel Aufruf Prozedur Wx_WrkFile()
= ESEAMID +
= ESRCVTYP':
= VLMAND +
= VLTINR');
Dateien für Work Tables definieren:
B EN UT ZERHA ND BUC H 93
4.11.7.2 Prozeduren zur Definition von Schlüsseln
Es werden 2 Möglichkeiten zur Definition von Schlüssel-Begriffen, die an das Folge-Programm übergeben werden vorgesehen.

Relative Satz-Nr.: Sofern der Zugriff über die relative Satz-Nr. erfolgt, wird der eindeutige Schlüssel
über die Funktion Wx_WrkKeyRRN definiert.

Schlüssel-Felder/Spalten: Bei Zugriff über Schlüssel-Felder, werden diese über die Funktion
Wx_WrkKeyFld() definiert.
Die Schlüssel innerhalb der Work-File vor allen anderen Spalten definiert werden, d.h. unmittelbar nach
der Definition der Dateien/Tabellen/Views bzw. dem Öffnen der Work-Table
Anmerkung:
Die Funktion Wx_WrkKeyRRN darf pro Worktable nur ein einziges Mal aufgerufen werden.
Es kann pro Worktable entweder nur eine relative Satz-Nr. oder ein oder
mehrere Schlüssel-Felder angegeben werden.
4.11.7.2.1 Wx_WrkKeyRRN()
Schüssel = Relative Satz-Nr.
Über die Funktion Wx_WrkKeyRRN() wird der eindeutige Schlüssel für den Zugriff in dem FolgeProgramm als relative Satz-Nr. der Datei definiert und ermittelt.
Über diese Funktion wird der eindeutige Schlüssel, der zum Zugriff auf den Datensatz in der DetailAnzeige/Change Table erforderlich hinterlegt.
Die Prozedur Wx_WrkRRN() darf nur einmalig pro Work Table aufgerufen werden.
Anmerkung:
Schlüssel müssen innerhalb der Work Table vor allen anderen Spalten definiert werden.
Prototype
*********************************************************************************
P* Procedure name: Wx_WrkKeyRRN
P* Purpose:
Save Key Information for Work Files - Key is relative record no
P*
for table/file
P* Returns:
P* Parameters:
ParKey
=> Table
P* Parameters:
ParOptions => Options
(Optional)
**********************************************************************************
D Wx_WrkKeyRRN...
D
PR
OpDesc
D
ParKey
Like(FldRef.NamesQL) Const
D
ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
B EN UT ZERHA ND BUC H 94
Source Code 69: Prototype - Prozedur Wx_WrkKeyRRN() - Definieren relative Satz-Nr. als Schlüssel
Parameter

ParKey

ParOption
Datei/Tabelle für Zugriff über relative Satz-Nr.
Wahlweise kann der kurze System-Name oder der lange SQL-Name für die Datei/Tabelle/View angegeben werden.
Optionen
Optionaler Parameter
z.Z. sind noch keine Schlüssel-Worte festgelegt.
Beispiel für den Aufruf
Wx_WrkFile('AuftrKopfX');
Wx_WrkKeyRRN('AuftrKopfX');
Source Code 70: Aufruf Prozedur Wx_WrkKeyRRN
4.11.7.2.2 Wx_WrkKeyFld()
Definieren relative Satz-Nr. als Schlüssel
Definieren Schlüssel-Felder
Über die Funktion Wx_WrkKeyFld() können Schlüssel-Felder für den eindeutigen Zugriff im nächsten
Programm definiert werden.
Über die Funktion können gleichzeitig bis zu 10 Schlüssel-Felder definiert werden.
Wird die Funktion mehrfach aufgerufen, so werden die Schlüssel-Felder am Ende der bereits definierten
Schlüssel-Felder hinzugefügt.
Insgesamt können bis zu 100 Schlüssel-Felder definiert werden. Die Schlüssel-Felder müssen alle in der
gleichen Datei/Tabelle/View definiert sein.
Anmerkung:
Schlüssel müssen innerhalb der Work Table vor allen anderen Spalten definiert werden.
Prototype
*******************************************************************************
P* Procedure name: Wx_WrkKeyFld
P* Purpose:
Save Key Information for Work Files - Key is a compound key
P*
consisting of 1 to 10 key fields
P*
Key fields must be located within the same table/file
P* Returns:
P* Parameters:
ParKey01
=> Name Key field 01
P* Parameters:
ParOptions => Options
(Optional)
P* Parameters:
ParKey02
=> Name Key field 02 (Optional)
P* Parameters:
ParKey03
=> Name Key field 03 (Optional)
P* Parameters:
ParKey04
=> Name Key field 04 (Optional)
P* Parameters:
ParKey05
=> Name Key field 05 (Optional)
P* Parameters:
ParKey06
=> Name Key field 06 (Optional)
P* Parameters:
ParKey07
=> Name Key field 07 (Optional)
P* Parameters:
ParKey08
=> Name Key field 08 (Optional)
B EN UT ZERHA ND BUC H 95
P* Parameters:
ParKey09
=> Name Key field 09 (Optional)
P* Parameters:
ParKey10
=> Name Key field 10 (Optional)
********************************************************************************
D Wx_WrkKeyFld...
D
PR
OpDesc
D
ParKey01
Like(FldRef.NamesQL) Const
D
ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D
ParKey02
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey03
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey04
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey05
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey06
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey07
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey08
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey09
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
D
ParKey10
Like(FldRef.NamesQL) Const
D
Options(*NoPass)
Source Code 71: Prototype - Prozedur Wx_WrkKeyFld() - Definieren Schlüssel-Felder

Parameter
ParKey01

ParOption
Optionen
Optionaler Parameter
z.Z. sind noch keine Schlüssel-Worte festgelegt.

ParKey02
ParKey02: Weitere Schlüssel-Felder
Wahlweise kann der kurze System-Name oder der lange SQL-Name für die Spalten
angegeben werden.
Name des ersten Schlüssel-Feldes
Wahlweise kann der kurze System-Name oder der lange SQL-Name für die Spalte angegeben werden.
Beispiel für den Aufruf
Wx_WrkKeyFld('FLDName1');
Wx_WrkKeyFld('FLDName2': '');
Wx_WrkKeyFld('FLDName3': '': 'FldName4':
'FLDName5':
'FldName6');
Source Code 72: Aufruf Prozedur Wx_WrkKeyFld()
Definieren Schlüssel-Felder
4.11.7.3 Wx_WrkFld() Feld/Spalte definieren
Alle Spalten, mit Ausnahme der ersten Spalte, d.h. der Spalte mit dem eindeutigen Schlüssel (oder der
relativen Satz-Nr.) müssen über diese Prozedur definiert werden.
B EN UT ZERHA ND BUC H 96
Die Definition ist auch dann erforderlich, wenn das SQL-Statement direkt vorgegeben wurde.
Prototype
***********************************************************************
P* Procedure name: Wx_WrkFld
P* Purpose:
Define Fields used for Work Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
***********************************************************************
D Wx_WrkFld...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParMsg
Like(FldRef.MsgData)
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
Source Code 73: Prototype
Prozedur Wx_WrkFld()
Definieren Spalten in Work Table

Parameter
ParField

ParMsg
Spalten-Überschrift
Die Spalten-Überschrift kann wahlweise als Text oder als Message-Id (für Mehrsprachigkeit) angegeben werden.
Wird eine Message-Id übergeben so muss diese in der für die Anwendung definierten
Message-File vorhanden sein.

ParOption
Aufbereitungsoptionen (vergl. 4.3.4 Aufbereitungsoptionen für Spalten)
Optionaler Parameter
Feld/Spalten-Name
Das Feld/Spalte muss in einer zuvor definierten Datei/Tabelle/View vorhanden sein.
Es kann wahlweise der kurze System- oder der lange SQL-Name angegeben werden.
Der Feldname kann in jeder beliebigen Groß/Klein-Schreibweise angegeben werden.
Beispiele für den Aufruf
Wx_WrkKey('ADRESSEX': *On);
Wx_WrkFld('KundeNr': 'FLD0001');
Wx_WrkFld('Name1F': 'FLD0002');
Wx_WrkFld('Name2F': 'Telefon');
Wx_WrkFld('Strasse': 'FLD0003');
Wx_WrkFld('Land':
'Land':
' center CTL(Country)');
Source Code 74: Aufruf Prozedur Wx_WrkFld - Definieren Spalte in Work Table
Das Ergebnis dieser Spalten-Definition über Prozedur Wx_WrkFld() wird im folgenden Screenshot gezeigt
B EN UT ZERHA ND BUC H 97
Abbildung 18: Worktable - Spalten-Definition - Ergebnis aus Source Code 40
Anmerkung:
Die Aufbereitung in Spalte Telefon wird nicht über ein Schlüssel-Wort in der
Option gesteuert, sondern wird automatisch durch das zugrundeliegende
Framework gesteuert.
4.11.7.4 Wx_WrkWhere() Where-Bedingungen
Allen SQL-Abfragen, die automatisch, basierend auf den vorgegebenen Dateien/Tabellen/Views generiert werden, können WHERE-Bedingungen, die die Anzahl der auszugebenden Datensätze/Zeilen reduzieren, hinzugefügt werden.
Die Syntax der hinzuzufügenden WHERE-Bedingungen muss der gültigen SQL-Syntax entsprechen und
kann alles beinhalten, was in SQL Where-Bedingungen zulässig ist, z.B. logische Operatoren, Klammern, Prädikate, skalare Funktionen.
Die Felder/Spalten, die in den WHERE-Bedingungen angegeben werden, müssen in den vordefinierten
Dateien/Tabellen/Views vorhanden sein. Die Felder/Spalten müssen jedoch nicht zwingend als Spalten
für die Worktables definiert werden.
Innerhalb des gleichen Work-Programms kann die Prozedur Wx_WrkWhere mehrfach, mit unterschiedlichen Bedingungen angegeben werden. Die Where-Bedingungen werden von WOPiXX zu einer einzigen
WHERE-Bedingung zusammengefasst. Der Programmierer muss jedoch dafür sorgen, die WhereBedingungen korrekt verknüpft werden können, z.B. die folgenden WHERE-Bedingungen müssen mit
einem logischen Operator (AND oder OR) beginnen.
Prototype
**************************************************************************
P* Procedure name: Wx_WrkWhere
P* Purpose:
Define Where clause for Work Tables
P* Returns:
P* Parameters:
ParString
=> Where Condition for the SQL Statement
**************************************************************************
D Wx_WrkWhere...
D
PR
OpDesc
B EN UT ZERHA ND BUC H 98
D
ParString
Like(FldRefLA.VarLen) Const
Source Code 75 : Prototype - Prozedur - Wx_WrkWhere - Where-Bedingungen hinzufügen

Parameter
ParWhere
Komplett aufbereitete Where-Bedingung in SQL Syntax
Beispiele für den Aufruf
Wx_WrkWhere('
LiefMge < BestMge +
and LiefTerm <= Current_Date – 3 Days');
Wx_WrkWhere('and AuftrArt = ''EX'');
Source Code 76: Aufruf Prozedur Wx_WrkWhere - Where-Bedingungen hinzufügen
4.11.7.5 Wx_WrkDftOrder() Default-Sortierung (Order By)
Sofern eine bestimmte Anfangssortierung der Daten erforderlich ist, kann diese mit Hilfe der Prozedur
Wx_DftOrder() vorgegeben werden.
Über die Funktion Wx_DftOrder() können bis zu 10 Sortier-Spalten/Felder nach denen in auf- oder absteigender Reihenfolge sortiert werden soll, vorgegeben werden.
Die Sortierreihenfolge, sofern erwünscht kann im Parameter-Feld durch ein Blank von dem Spalten/Feld-Namen getrennt angegeben werden. Sofern keine Sortierreihenfolge angegeben wird, wird aufsteigend sortiert. Die Sortierreihenfolge kann entweder als ASC (aufsteigend) oder DESC (absteigend)
angegeben werden. Sortier-Spalten/Felder können in jeder beliebigen Kombination aus Groß- und
Kleinschreibung angegeben werden.
Die Funktion Wx_DftOrder() kann pro Work Table nur einmalig angegeben werden.
Prototype
*************************************************************************
P* Procedure name: Wx_WrkDftOrder
P* Purpose:
Save Order By clause for Work Files
P* Returns:
P* Parameters:
ParCol01 => Field/Column to Sort
P* Parameters:
--> Desc or Asc can be added to the Column Name
P* Parameters:
separated by a Blank
P* Parameters:
ParCol02 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol03 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol04 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol05 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol06 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol07 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol08 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol09 => Field/Column to Sort
(Optional)
P* Parameters:
ParCol10 => Field/Column to Sort
(Optional)
*************************************************************************
D Wx_WrkDftOrder...
D
PR
OpDesc
D
ParCol01
Like(FldRef.NameSQL) Const
D
ParCol02
Like(FldRef.NameSQL) Const
D
Options(*NoPass)
B EN UT ZERHA ND BUC H 99
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
ParCol03
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
ParCol04
ParCol05
ParCol06
ParCol07
ParCol08
ParCol09
ParCol10
Const
Const
Const
Const
Const
Const
Const
Const
Source Code 77: Prototype - Procedure - Wx_WrkDftOrder - Default Sortierung
Parameter

ParCol1

ParCol2
Sortier-Spalte/Feld
Durch die zusätzliche Angabe von ASC oder DESC kann festgelegt werden, ob die
Sortierung auf- oder absteigend erfolgen soll.
ParCol10
Sortier-Spalte/Feld
Optionale Parameter
Sortierreihenfolge kann analog ParCol1 angegeben werden.
Beispiel für den Aufruf
Wx_WrkDftOrder('Land': 'PLZ': 'KundeNr');
Wx_WrkDftOrder('KundeNr ASC', 'Umsatz Desc');
Source Code 78: Aufruf Prozedur Wx_WrkDftOrder - Default Sortierung
4.11.7.6 Wx_WrkSQLMan() SQL Select-Statement
Per Default wird das SQL-Select-Statement für die List-Ausgabe basierend auf den definierten Dateien/Tabellen/Views, den definierten Filter-Feldern und den für die List-Anzeige vorgegebenen Spalten dynamisch aufbereitet.
Es ist jedoch auch möglich das SQL-Select-Statement direkt durch Aufruf der Prozedur
Wx_WrkSQLMan() im Programm vorzugeben. Wurde diese Prozedur aufgerufen, wird das vorgegebene
Select-Statement verwendet, d.h. es erfolgt keine Aufbereitung basierend auf den definierten Dateien/Tabellen/Views.
Das SQL-Select-Statement kann alles beinhalten, was in einem SELECT-Statement zulässig ist, inklusive Group-By und Having-Anweisungen, Full-Selects (Union, Except, Intersect), verschachtelten SubSelects, Common-Table-Expressions (CTE), User Defined Functions (UDF) und User Defined TableFunctions (UDTF).
B EN UT ZERHA ND BUC H 100
Auch wenn das SQL-Select-Statement über Prozedur Wx_WrkSQLMan() vorgegeben wird, müssen die
verwendeten Dateien/Tabellen/Views definiert werden, d.h. es muss eine der folgenden Prozeduren
Wx_GenFlt(), Wx_FltFile(), Wx_FltFileFld() oder Wx_WrkFile() aufgerufen werden. Ebenso müssen die
auszugebenen Spalten über die Prozeduren Wx_WrkKey() und Wx_WrkFld() definiert werden. Die Definition der Spalten wird benötigt, Überschriften und Aufbereitungsoptionen vorzugeben. Die Definition der
Dateien/Tabellen/Views ist erforderlich um die Datentypen für die einzelnen Spalten ermitteln und basierend auf den Datentypen automatisch Aufbereitungsoptionen (z.B. bei Datums-Feldern) hinzuzufügen..
Wird das SQL-Select-Statement direkt vorgegeben, muss darauf geachtet werden, dass die erste Spalte entweder das eindeutige Schlüssel-Feld oder die relative Satz-Nr. aus einer der definierten und verknüpften Dateien/Tabellen/Views enthalten muss. Die folgenden Felder/Spalten müssen in der
Reihenfolge den Spalten, die über die Prozedur Wx_WrkFld() definiert wurden entsprechen.
Die Funktion Wx_WrkSQLMan() darf innerhalb einer Work-Table nur einmal aufgerufen werden.
Prototype
**************************************************************************
P* Procedure name: Wx_WrkSQLMan
P* Purpose:
Save SQL Command for Work Files
P* Returns:
P* Parameters:
ParString
=> SQL Command
**************************************************************************
D Wx_WrkSQLMan...
D
PR
OpDesc
D
ParString
Like(FldRefLA.VarLen) Const
Source Code 79: Prototype
Parameter

ParString
Wx_WrkSQLMan()
SQL Select-Statement vorgeben
Vollständiges SQL Select-Statement
Beispiele für den Aufruf
Wx_WrkSQLMan('Select AKID, BestNr, k.KundeNr, KundeName +
From
AuftrKopfX k join AdresseX a
+
on k.KundeNr = a.KundeNr
+
Where LiefTerm = Current_Date');
Wx_WrkSQLMan('Select RRN(a), a.* From AuftrKopfx a');
Source Code 80: Aufruf Prozedur Wx_WrkSQLMan() - SQL Select-Statement vorgeben
4.11.8 Prozeduren zur Ausgabe von Worktables
Nachdem alle Informationen für die Work Table definiert wurden, muss der HTML-Code generiert und
das Ergebnis an den Browser geschickt werden.
Vor der Ausgabe der Work-Tables können noch Parameter-Werte (z.Z. maximal 5) die im FolgeProgramm gesetzt werden können, angegeben werden.
B EN UT ZERHA ND BUC H 101
Das Setzen der Parameter-Werte ist für Work- und Change-Tables identisch und wird deshalb separat
in Kapitel 4.13 Ermitteln und Setzen von Parameter-Werten abgehandelt.
4.11.8.1 Wx_NoRcdTxt() - Anzahl Datensätze ausblenden
Per Default wird bei Work Tables die Gesamt-Anzahl der Datensätze ermittelt und angezeigt.
Durch Aufruf der Prozedur Wx_NoRcdTxt() kann die Anzeige ausgeblendet werden.
Anmerkung:
z.Z. gibt es keinen Performance-Unterschied, ob die Anzahl der Datensätze angezeigt werden oder nicht. Um die Anzahl der Datensätze zu ermitteln, muss die komplette SQL-Abfrage ausgeführt werden.
Es ist jedoch geplant, dass, sofern die Anzahl der Datensätze ausgeblendet wird, immer nur die nächsten (z.Z.) 100 Daten-Sätze eingelesen.
Wx_NoRcdTxt()
aufgerufen
Abbildung 19: Ergebnis Aufruf Wx_NoRcdTxt() - Anzahl Datensätze ausblenden
Prototype
*******************************************************************************
P* Procedure name: Wx_NoRcdTxt
P* Purpose:
Set No Record Text
P* Returns:
P* Parameters:
********************************************************************************
D Wx_NoRcdTxt...
B EN UT ZERHA ND BUC H 102
D
PR
OpDesc
Source Code 81: Prototype - Prozedur Wx_NoRcdTxt/( ) - Anzahl Datensätzen ausblenden

Parameter
Weder Parameter noch Rückgabe-Wert
Beispiel für den Aufruf
Wx_NoRcdTxt();
Source Code 82: Aufruf Prozedur Wx_NoRcdTxt() - Anzahl Datensätze ausblenden
4.11.8.2 Wx_RcdTxt
Beliebiger Satz-Text
Per Default wird bei Work Tables die Gesamt-Anzahl der Datensätze ermittelt und angezeigt.
Wahlweise kann eine Message-Id oder ein fixer Text übergeben werden.
■ Beliebiger Satz-Text
Abbildung 20: Funktion Wx_RcdTxt: Beliebiger Satz-Text
Prototype
***************************************************************************
P* Procedure name: Wx_RcdTxt
P* Purpose:
Set Text for (Aggregated returned records)
P* Returns:
P* Parameters:
ParMsgTxt
=> Message Text or Message-Id
***************************************************************************
D Wx_RcdTxt...
D
PR
OpDesc
D ParMsgTxt
Like(FldRef.MsgData) Const
Source Code 83: Prototype - Prozedur Wx_RcdTxt - Satz-Text vorgeben

Parameter
ParMsgTxt Message-Id oder Message-Text als Ersatz für den Standard-Text
B EN UT ZERHA ND BUC H 103
Beispiel für den Aufruf
Wx_RcdTxt('MNU0014');
Wx_RcdTxt('Aufträge');
Source Code 84: Aufruf Prozedur Wx_RcdTxt()
Beliebiger Satz-Text
4.11.8.3 Wx_WrtWrkTbl()
Worktable ausgeben
Nachdem alle Informationen für die Work Table definiert wurden, muss durch Aufruf der Prozedur
Wx_WrtWrkTbl() der HTML-Code generiert und das Ergebnis an den Browser geschickt werden.
Beim Aufruf der Funktion kann ein Fehler-Text, der im Folge-Programm ausgegeben wird und bis zu 5
Parameter-Werte, die ebenfalls vom Folge-Programm verwendet werden können übergeben werden.
Die Prozedur Wx_WrtWrkTbl() kann pro Worktable nur einmalig aufgerufen werden. Mit Aufruf der Prozedur Wx_WrtWrkTbl() wird das Work-Programm automatisch beendet.
Prototype
*************************************************************************
P* Procedure name: Wx_WrtWrkTbl
P* Purpose:
Write Work Table
P* Returns:
P* Parameters:
ParErrMsg
=> Error Message-Id or Text (optional)
P* Parameters:
ParParm1
=> Parameter Value 1
(optional)
P* Parameters:
ParParm2
=> Parameter Value 2
(optional)
P* Parameters:
ParParm3
=> Parameter Value 3
(optional)
P* Parameters:
ParParm4
=> Parameter Value 4
(optional)
P* Parameters:
ParParm5
=> Parameter Value 5
(optional)
P* Parameters:
ParHandle
=> Handle
(optional)
*************************************************************************
D Wx_WrtWrkTbl...
D
PR
OpDesc
D PErrMsg
Like(FldRef.MsgData) Const
D
Options(*NoPass)
D ParParm1
Like(FldRef.TextVar) Const
D
Options(*NoPass)
D ParParm2
Like(FldRef.TextVar) Const
D
Options(*NoPass)
D ParParm3
Like(FldRef.TextVar) Const
D
Options(*NoPass)
D ParParm4
Like(FldRef.TextVar) Const
D
Options(*NoPass)
D ParParm5
Like(FldRef.TextVar) Const
D
Options(*NoPass)
D PInHandle
3U 0 Options(*NoPass)
Const
Source Code 85: Prototype - Wx_WrtWrkTbl() - Work Table ausgeben

Parameter
ParErrMsg
Fehler-Text oder Message-Id
Optionaler-Parameter
Der Fehler-Text kann entweder direkt oder als Message-Id angegeben werden.
B EN UT ZERHA ND BUC H 104

ParParm1
ParParm5
Parameter-Wert
Optionale Parameter
Es können bis zu 5 alphanumerische Parameter-Werte übergeben werden. Diese Parameter-Werte können in dem Folge-Programm verwendet werden.
Anstatt die gewünschten Parameter-Werte über die Funktion Wx_WrtWrkTbl() zu setzen, ist es auch möglich die Werte über durch Aufruf einer der Funktionen
Wx_SetParmXXXX zu setzen (vergl. 4.13 Ermitteln und Setzen von Parameter-Werten).
Beispiel für den Aufruf
Wx_WrtWrkTbl();
Wx_WrtWrkTbl(PGMSDS.MsgTxt);
Wx_WrtWrkTbl('': GblJahr: GblArtikelNr);
Source Code 86: Aufruf Prozedur Wx_WrtWrkTbl() - Work Table ausgeben
4.12 Ermitteln von Schlüssel-Werten
In Worktables 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.
Die eindeutigen Schlüssel-Werte können mit den folgenden WOPiXX-Funktionen ermittelt werden:


Wx_GetDBKeyInt Ermitteln eines einzelnen ganzzahligen Schlüssel-Wertes
Wx_GetDBKeyArrInt
Ermitteln einer Gruppe von ganzzahligen Schlüssel-Werten


Wx_GetDBKeyDec
Wx_GetDBKeyArrDec
Ermitteln eines einzelnen numerischen Schlüssel-Wertes
Ermitteln einer Gruppe von numerischen Schlüssel-Werten


Wx_GetDBKeyChar
Wx_GetDBKeyArrChar
Ermitteln eines einzelnen alphanumerischen Schlüssel-Wertes
Ermitteln einer Gruppe von alphanumerischen Schlüssel-Werten


Wx_GetDBKeyUC
Wx_GetDBKeyArrUC
Ermitteln eines einzelnen Unicode-Schlüssel-Wertes
Ermitteln einer Gruppe von Unicode-Schlüssel-Werten
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.
B EN UT ZERHA ND BUC H 105
4.12.1 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 87: Funktion Wx_GetDBKeyInt() - Ermitteln ganzzahligen Schlüssel-Wert


Parameter
Rückgabe-Wert Relative 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 88: Funktion Wx_GetDBKeyInt() - Ermitteln ganzzahligen Schlüssel-Wert
4.12.2 Wx_GetDBKeyArrInt()
Schlüssel-Werte
Gruppe
von
ganzzahligen
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.
B EN UT ZERHA ND BUC H 106
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 89: 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

POutNbrRows Anzahl 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 90: Funktion Wx_GetDBKeyInt() - Ermitteln Gruppe von ganzzahligen Schlüssel-Werten
4.12.3 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.
B EN UT ZERHA ND BUC H 107
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 91: Funktion Wx_GetDBKeyDec() - Ermitteln numerischen Schlüssel-Wert
Parameter

Rückgabe-Wert Relative 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 92: Funktion Wx_GetDBKeyDec() - Ermitteln numerischen Schlüssel-Wert
4.12.4 Wx_GetDBKeyArrDec()
Schlüssel-Werten
Gruppe
von
dezimalen
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)
B EN UT ZERHA ND BUC H 108
D
POutNbrRows
Source Code 93: Funktion Wx_GetDBKeyArrDec()


10U 0 Options(*NoPass)
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 94: Funktion Wx_GetDBKeyDec() - Ermitteln Gruppe von dezimalen Schlüssel-Werten
4.12.5 Wx_GetDBKeyChar()
Alphanum. Schlüssel-Wert
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
B EN UT ZERHA ND BUC H 109
Source Code 95: Funktion Wx_GetDBKeyChar() - Ermitteln alphanumerischen Schlüssel-Wert


Parameter
Rückgabe-Wert Relative 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 96: Funktion Wx_GetDBKeyChar() - Ermitteln alphanumerischen Schlüssel-Wert
4.12.6 Wx_GetDBKeyArrChar()
Schlüssel-Werten
Gruppe von alphanumerischen
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 97: 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
B EN UT ZERHA ND BUC H 110
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 98: Funktion Wx_GetDBKeyArrChar() - Ermitteln Gruppe von alphanumerischen Schlüssel-Werten
4.12.7 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 99: Funktion Wx_GetDBKeyUC() - Ermitteln Unicode-Schlüssel-Wert


Parameter
Rückgabe-Wert Relative Satz-Nr. oder eindeutige Id als Unicode-Wert
Keine Parameter erforderlich!
Beispiel für den Aufruf
D MyDBKey
S
Like(FldRef.UCVar)
*----------------------------------------------------------------------------/Free
B EN UT ZERHA ND BUC H 111
MyDBKey = Wx_GetDBKeyChar();
/End-Free
Source Code 100: Funktion Wx_GetDBKeyUC() - Ermitteln Unicode-Schlüssel-Wert
4.12.8 Wx_GetDBKeyArrUC()
Schlüssel-Werten
Gruppe
von
Unicode-
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 101: 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;
B EN UT ZERHA ND BUC H 112
Chain ArrDBKey(Index)MyFileF;
If %Found(MyFileF)
//Verarbeitung
EndIf;
EndFor;
EndIf;
/End-Free
Source Code 102: Funktion Wx_GetDBKeyUC() - Ermitteln Gruppe von Unicode-Schlüssel-Werten
4.12.9 Wx_GetDBKeyFldChar()
Zusammengesetzte Schlüssel
Mit der Funktion Wx_GetDBKeyFld() können 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üsselSpalten in dem vorgelagerten Work-Programm (über Funktion Wx_WrkCompKey) angegeben wurden.
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.
Prototype
***************************************************************************
P* Procedure name: Wx_GetDBKeyFldChar
P* Purpose:
Get Single Character File/Table Key from Session Information
P* Returns:
Character File/Table Key
P*
Key Fields are returned as character array elements
P* Parameters:
POutNbrKeys => Number of Elements (= Keys) --> Optional
***************************************************************************
D Wx_GetDBKeyFldChar...
D
PR
Like(FldRef.TextVar) OpDesc
D
Dim(RefElemCGI)
D POutNbrKeys
10U 0 Options(*NoPass)
Source Code 103: Funktion Wx_GetDBKeyFldChar()


Ermitteln zusammengesetzten Schlüssel (Werte)
Parameter
Rückgabe-Wert Feldgruppe mit bis zu 100 alphanumerischen
Elementen/Schlüssel-Werten.
POutNbrKeys Anzahl Schlüssel-Felder
Optionaler Parameter
Beispiel für den Aufruf
B EN UT ZERHA ND BUC H 113
D MyKeyArr
S
Like(FldRef.TextVar)
D
Dim(RefElemCGI)
D NbrKeys
S
10U 0
*----------------------------------------------------------------------------/Free
//1. Ermitteln zusammenges. Schlüssel – Anz- Schlüssel-Felder nicht ausgegeben
MyKeyArr = Wx_GetDBKeyFldChar();
//2. Ermitteln zusammengesetzten Schlüssel – Anzahl Schl.-Felder ausgegeben
MyKeyArr = Wx_GetDBKeyFldChar(NbrKeys);
Chain (MyKeyArr(1): %Dec(MyKeyArr(2): 11: 2): Date(MyKeyArr(3))
MyFileF;
If %Found(MyFileP)
//Verarbeitung
EndIf;
/End-Free
Source Code 104: Funktion Wx_GetComDBKeyChar() - Ermitteln zusammengesetzte Schlüssel (Werte)
4.12.10 Wx_GetDBKeyFldArrChar()
zusammengesetzten Schlüsseln
Gruppe
von
Mit der Funktion Wx_GetDBKeyFldArrChar() 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)
B EN UT ZERHA ND BUC H 114
D
D
POutNbrRows
POutNbrKeys
Source Code 105: Funktion Wx_GetDBKeyArrUC()



10U 0 Options(*NoPass)
10U 0 Options(*NoPass)
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üsselWerte 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
Optionaler Parameter
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_GetDCompBKeyArrChar();
//2. Ermitteln Array Datenstruktur der ausgewählten Sätze
// Anzahl Zeilen ausgegeben
ArrDSDBKey = Wx_GetDCompBKeyArrChar(NbrRows);
//3. Ermitteln Array Datenstruktur der ausgewählten Sätze
//
Anzahl Zeilen und Anzahl Schlüssel-Werte ausgegeben
ArrDSDBKey = Wx_GetDCompBKeyArrChar(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;
/End-Free
Source Code 106: Funktion Wx_GetDBKeyUC() - Ermitteln Gruppe von Unicode-Schlüssel-Werten
4.13 Ermitteln und Setzen von Parameter-Werten
CGI-Programme werden vom Browser aufgerufen und haben keine Parameter(-Liste). Mit WOPiXX können jedoch bis zu 5 alphanumerische allgemeine (Parameter-)Werte gesetzt und an das FolgeProgramm übergeben werden.
B EN UT ZERHA ND BUC H 115
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.
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 WOPiXXProzeduren.
4.13.1 Allgemeine Parameter




Prozeduren zum Setzen der Parameter-Werte
Wx_SetParmChar
Setzen einzelnen alphanumerischen Parameter-Wert
Wx_SetParmArrChar
Setzen von mehreren alphanumerischen Parameter-Werten
Wx_SetParmUC Setzen von einzelnen Unicode-Parameter-Werten
Wx_SetParmArrUC
Setzen von mehreren Unicode-Parameter-Werten
Prozeduren zum Empfangen der Parameter-Werte

Wx_GetParmChar
Einzelnen alphanumerischen Parameter-Wert empfangen

Wx_GetParmArrChar
Mehrere alphanumerischen Parameter-Werte empfangen
B EN UT ZERHA ND BUC H 116


Wx_GetParmUC Einzelnen Unicode-Parameter-Wert empfangen
Wx_GetParmArrUC
Mehrere Unicode-Parameter-Werte empfangen
4.13.1.1 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.
Prototype
***************************************************************************
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
Source Code 107 : Prototype - Prozedur Wx_SetParmChar() - Alphanumerischen Parameter-Wert setzen


Parameter
ParNo
ParValue
Parameter-Position z.Z. 1 5 zulässig
Alphanumerischer Parameter-Wert
Numerische Werte oder Datums- und Zeit-Werte müssen mit Hilfe der Built-InFunktion %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));
Source Code 108: Aufruf Prozedur Wx_SetParmChar() - Alphanumerischen Parameter-Wert setzen
4.13.1.2 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.
B EN UT ZERHA ND BUC H 117
Prototype
***************************************************************************
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)
Source Code 109 : Prototype - Prozedur Wx_SetParmArrChar() - Alphanumerische 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-InFunktion %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
D MyArrParm
S
Like(FldRef.TextVar)
D
Dim(RefElemParm)
*-------------------------------------------------------------------------------/Free
MyArrParm(1) = ArtikelBez;
MyArrParm(2) = %Char(Umsatz * MWST));
Wx_SetParmArrChar(MyArrParm));
/End-Free
Source Code 110: Aufruf Prozedur Wx_SetParmArrChar() - Alphanumerische Parameter-Werte setzen
4.13.1.3 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
B EN UT ZERHA ND BUC H 118
D
D
ParNo
ParValue
3U 0
Like(FldRefCGIUC.DftValue)
Source Code 111 : Prototype - Prozedur Wx_SetParmUC()


Parameter
ParNo
ParValue
Const
Const
Unicode-Parameter-Wert setzen
Parameter-Position z.Z. 1 5 zulässig
Unicode-Parameter-Wert
Numerische Werte oder Datums- und Zeit-Werte müssen mit Hilfe der Built-InFunktionen %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 112: Aufruf Prozedur Wx_SetParmUC()
Unicode-Parameter-Wert setzen
4.13.1.4 Wx_SetParmArrUC()
meter
Setzen mehrere Unicode- Para-
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 113 : 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-InFunktionen %UCS2() und %CHAR() in Unicode-Werte konvertiert werden.
B EN UT ZERHA ND BUC H 119
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 114: Aufruf Prozedur Wx_SetParmUC()
Unicode-Parameter-Werte setzen
4.13.1.5 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 ParameterWert 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 115 : 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 116: Aufruf Prozedur Wx_GetParmChar() - Alphanumerischen Parameter-Wert ermitteln
B EN UT ZERHA ND BUC H 120
4.13.1.6 Wx_GetParmArrChar()
rische Parameter
Ermitteln mehrere alphanume-
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 117 : 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 118: Aufruf Prozedur Wx_GetParmArrChar() - Alphanumerische Parameter-Werte ermitteln
4.13.1.7 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:
B EN UT ZERHA ND BUC H 121
***************************************************************************
D Wx_GetParmUC...
D
PR
Like(FldRef.UCVar)
OpDesc
D
ParNo
3U 0 Const
Source Code 119 : 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 120: Aufruf Prozedur Wx_GetParmUC()
Unicode-Parameter-Wert ermitteln
4.13.1.8 Wx_GetParmArrUC()
Parameter-Werte
Ermitteln mehrere Unicode-
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 121 : 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
B EN UT ZERHA ND BUC H 122
MyArrParm = Wx_GetParmArrUC();
/End-Free
Source Code 122: Aufruf Prozedur Wx_GetParmArrUC()
Unicode-Parameter-Werte ermitteln
4.13.2 Benannte Parameter
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.







Prozeduren zum Setzen der benannten Parameter-Werte
Wx_SetNamedParm
Setzen eines benannten alphanumerischen Parameters
Wx_SetNamedParmUC Setzen eines benannten Unicode Parameters
Wx_SetNamedParmDec Setzen eines benannten numerischen Parameters mit Dezimal-Positionen
Wx_SetNamedParmInt Setzen eines benannten ganzzahligen Parmeters
Wx_SetNamedParmDate Setzen eines benannten Datums-Parameters
Wx_SetNamedParmTime Setzen eines benannten Zeit-Parmeters
Wx_SetNamedParmTimestamp
Setzen eines benannten Zeitmarken-Parameters







Prozeduren zum Empfangen der benannten Parameter-Werte
Wx_GetNamedParmUC Unicode-Wert eines benannten Parameters empfangen
Wx_GetNamedParm
Alphanumerischen Wert eines benannten Parameters empfangen
Wx_GetNamedParmDec Numerischen Wert mit Dezimal-Positionen empfangen
Wx_GetNamedParmInt Ganzzahligen numerischen Wert eines benannten Parameters empfangen
Wx_GetNamedParmDate Datumswert eines benannten Parameters empfangen
Wx_GetNamedParmTime Zeitwert eines benannten Parameters empfangen
Wx_GetNamedParmTimestamp
Zeitmarken-Wert eines benannten Paramters empfangen
4.13.2.1 Wx_SetNamedParm()
rameter
Setzen alphanumerischen Pa-
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
B EN UT ZERHA ND BUC H 123
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 123 : Prototype - Prozedur Wx_SetNamedParmC() - Alphanumerischen Parameter-Wert setzen
Parameter

ParName

ParValue
Paramter Name
Alphanumerischer Parameter-Wert
Beispiel für den Aufruf
Wx_SetNamedParm('My1ArtNr' : ArtNr);
Wx_SetNamedParm('MyKndName': KundeName));
Source Code 124: Aufruf Prozedur Wx_SetNamedParm - Alphanumerischen Parameter-Wert setzen
4.13.2.2 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 125 : Prototype - Prozedur Wx_SetNamedParmUC()
Unicode-Parameter-Wert setzen
B EN UT ZERHA ND BUC H 124


Parameter
ParName
ParValue
Parameter-Name
Unicode-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 126: Aufruf Prozedur Wx_SetNamedParmUC()
Unicode-Parameter-Wert setzen
4.13.2.3 Wx_SetNamedParmDec() Setzen numerischen Parameter mit Dezimal-Positionen
Benannte numerische Parameter-Werte
Wx_SetNamedParmDec() gesetzt werden.
mit
Dezimal-Positionen
können
über
die
Prozedur
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 127 : Prototype - Prozedur Wx_SetNamedParmUC()
Parameter

ParName

ParValue
Unicode-Parameter-Wert setzen
Parameter-Name
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 128: Aufruf Prozedur Wx_SetNamedParmDec()
numeriischenParameter-Wert mit Dezimal-Stellen setzen
B EN UT ZERHA ND BUC H 125
4.13.2.4 Wx_SetNamedParmInt()
schen Parameter
Setzen ganzzahligen numeri-
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 129 : Prototype - Prozedur Wx_SetNamedParmInt()


Parameter
ParName
ParValue
ganzzahligen Parameter-Wert setzen
Parameter-Name
Ganzzahliger numerischer Wert
Beispiel für den Aufruf
Wx_SetNamedParmInt('MyAnzAnw':
AnzAnwesend);
Wx_SetNamedParmInt('MyAnzTeilN' : AnzTeiln);
Wx_SetNamedParmInt('MyAnzSonst' : AnzAnwesend - AnzTeiln);
Source Code 130: Aufruf Prozedur Wx_SetNamedParmInt()
Ganzzahligen Parameter-Wert setzen
4.13.2.5 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
**********************************************************************************
B EN UT ZERHA ND BUC H 126
// 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 131 : Prototype - Prozedur Wx_SetNamedParmIDate()


Parameter
ParName
ParValue
Datums-Parameter-Wert setzen
Parameter-Name
Datums-Wert
Beispiel für den Aufruf
Wx_SetNamedParmDate('MyBestDat':
Wx_SetNamedParmDate('MyMHD'
:
Wx_SetNamedParmDate('MyHVD'
:
AKBESTDAT);
%Date() + %Days(30));
MHD - %(Days(5));
Source Code 132: Aufruf Prozedur Wx_SetNamedParmDate()
Datums-Parameter-Wert setzen
4.13.2.6 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 133 : Prototype - Prozedur Wx_SetNamedParmITime()


Parameter
ParName
ParValue
Parameter-Name
Zeit-Wert
Zeit-Parameter-Wert setzen
B EN UT ZERHA ND BUC H 127
Beispiel für den Aufruf
Wx_SetNamedParmTime('MyStrTim':
Wx_SetNamedParmTime('MySchichtBeg':
Wx_SetNamedParmTime('MyPause'
:
StartZeit);
T’06.00.00’);
SchichtBeg + %Hours(3));
Source Code 134: Aufruf Prozedur Wx_SetNamedParmTimestamp()
Zeitmarken-Parameter-Wert setzen
4.13.2.7 Wx_SetNamedParmTimestamp()
Parameter
Setzen Zeitmarken-
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 135 : Prototype - Prozedur Wx_SetNamedParmITimestamp()
Parameter

ParName

ParValue
Zeitmarken-Parameter-Wert setzen
Parameter-Name
Zeitmarken-Wert
Beispiel für den Aufruf
Wx_SetNamedParmInt('MyStart':
Wx_SetNamedParmInt('MySchichtBeg':
Wx_SetNamedParmInt('MyPause'
:
%Timestamp);
%Date() + T’06.00.00’);
SchichtBeg + %Hours(3));
Source Code 136: Aufruf Prozedur Wx_SetNamedParmZeit()
Zeit-Parameter-Wert setzen
B EN UT ZERHA ND BUC H 128
4.13.2.8 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 137 : 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 138: Aufruf Prozedur Wx_GetNamedParm() - Alphanumerischen Parameter-Wert ermitteln
4.13.2.9 Wx_GetNamedParmUC()
meter-Wert in Unicode
Ermitteln benannten Para-
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
B EN UT ZERHA ND BUC H 129
//
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 139 : 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
LocStreet
LocCity
= Wx_GetNamedParmUC('MyKndName');
= Wx_GetNamedParmUC('MyAddress');
= Wx_GetNamedParmUC('MyCity');
Source Code 140: Aufruf Prozedur Wx_GetNamedParmUC() - Parameter-Wert in Unicode ermitteln
4.13.2.10
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 141 : Prototype - Prozedur Wx_GetNamedParmDec()
benannten Parameter ermitteln


numerischen Parameter-Wert mit Dezimal-Positionen für
Parameter
Rückgabe-Wert Numerischen Parameter-Wert mit Dezimal-Positionen
ParName
Name unter dem der Parameter-Wert gespeichert wurde
B EN UT ZERHA ND BUC H 130
Beispiel für den Aufruf
LocStkPreis
LocGesamt
LocMWST
= Wx_GetNamedParmDec('MyPreis');
= Wx_GetNamedParmDec('MyTotal');
= Wx_GetNamedParmDec('MyMwst');
Source Code 142: Aufruf Prozedur Wx_GetNamedParmDec()
teln
numerischen benannten Parameter mit Dezmal-Positionen ermit-
4.13.2.11
Wx_GetNamedParmInt()
ganzzahligen Parameter-Wert
Ermitteln benannten
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 143 : 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 144: Aufruf Prozedur Wx_GetNamedParmInt()
ganzzahligen benannten Parameter-Wert ermitteln
B EN UT ZERHA ND BUC H 131
4.13.2.12
Wx_GetNamedParmDate()
Datums-Parameter-Wert
Ermitteln benannten
Einzelne Datums-Parameter-Werte für benannte
Wx_GetNamedParmDate() ermittelt werden.
können
Parameter
über
die
Prozedur
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 145 : 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
LocMHD
LocHVD
= Wx_GetNamedParmDate('MyBestDat');
= Wx_GetNamedParmDate('MyMHD');
= Wx_GetNamedParmDate('MyHVD');
Source Code 146: Aufruf Prozedur Wx_GetNamedParmDate()
benannten Datums-Parameter-Wert ermitteln
4.13.2.13
Wx_GetNamedParmTime()
Zeit-Parameter-Wert
Einzelne
Zeit-Parameter-Werte
für benannte
Wx_GetNamedParmTime() ermittelt werden.
Parameter
Ermitteln benannten
können
über
die
Prozedur
Der Name des benannten Parameters muss übergeben werden. Der Name kann in beliebiger
Groß/Kleinschreibung übergeben werden.
Prototype
****************************************************************************
B EN UT ZERHA ND BUC H 132
// 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 147 : 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 148: Aufruf Prozedur Wx_GetNamedParmDate()
benannten Zeit-Parameter-Wert ermitteln
4.13.2.14
Wx_GetNamedParmTimestamp()
nannten Zeitmarken-Parameter-Wert
Ermitteln be-
Einzelne Zeitmarken-Parameter-Werte für
Wx_GetNamedParmTime() ermittelt werden.
über
benannte
Parameter
können
die
Prozedur
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 149 : Prototype - Prozedur Wx_GetNamedParmITime()

Parameter
Rückgabe-Wert Zeitmarken-Parameter-Wert
benannten Zeitmarken-Parameter-Wert ermitteln
B EN UT ZERHA ND BUC H 133

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 150: Aufruf Prozedur Wx_GetNamedParmDate()
benannten Zeitmarken-Parameter-Wert ermitteln
4.14 Ermitteln/Prüfen Modi
Bearbeitungs-Modi werden z.B. in Kontext-Menüs oder Buttons festgelegt. Diese Modi werden an das
Folge-Programm übergeben und können dort geprüft und ermittelt werden.
Abhängig von dem übergebenen Modus können im Folge-Programm unterschiedliche Aktionen initiiert
werden.
Die






Prüfung der Standard-Modi kann über die folgenden Funktionen erfolgen:
Wx_isModeAdd() Prüfen Modus Hinzufügen
Wx_isModeChange()
Prüfen Modus Ändern
Wx_isModeCopy ()
Prüfen Modus Kopieren
Wx_isModeDelete()
Prüfen Modus Löschen
Wx_isModeProperty()
Prüfen Modus Anzeigen
Wx_isModeWrite Prüfen() Modus Kopieren oder Hinzufügen
Beliebige Modi, die in der Kontext-Menü- und Button-Definition festgelegt werden, können über die folgende Funktion geprüft werden:

Wx_isMode()
Prüfen beliebigen Modus
Werden in Work-Programmen die Sondertsprechenden Button an das Work-Programm zurückgegeben, d.h. das Work-Programm wird erneut
aufgerufen.
Um festzustellen, ob das Work-Programm zu ersten Mal aufgerufen wird, oder ob ein ausgegebenes
Ergebnis verarbeitet werden kann, können spezielle Modi über die folgenden Funktionen geprüft werden:

Wx_isModeReseq()

Wx_isModeEdtList()
Der Umsortieren Button wurde in einer Worktable angeklickt
String oder Feldgruppe mit den Schlüssel-Werten in der neuen
Reihenfolge kann empfangen werden.
Der Änderung Sichern-Button wurde in einer editierbare Worktable
angeklickt
Ein XML-Dokument mit den Änderungen kann empfangen werden
B EN UT ZERHA ND BUC H 134
In Change-Programmen nach Klick auf einen der definierten Buttons ebenfalls der Modus abgefragt
werden. Die Prüfung sollte erst nach Ausführung der Funktion Wx_GetChgInp (ähnl. OpCode EXFMT)
erfolgen.
Zur Prüfung und Ermittlung der Standard-Modi können die folgenden Funktionen verwendet werden:

Wx_isModeSave()Prüfen Modus Sichern

Wx_isModeApply()
Prüfen Modus Übernehmen

Wx_isModeUpdate()
Prüfen Modus Sicher oder Übernehmen
Alle Prüf-Funktionen entweder den Wert *ON oder *OFF zurück, je nachdem, ob der aktuelle Modus
dem zu prüfenden Modus entspricht.
Die Funktionen können innerhalb des individuellen CGI-Programmes mehrfach aufgerufen werden. Der
Modus wird von WOPiXX einmalig ermittelt und beim nächsten Aufruf zurückgegeben.
Alle Prüf-Funktionen haben einen optionalen Parameter. Wird der Parameter mit dem Wert *ON übergeben, wird der Modus erneut ermittelt, unabhängig davon ob er bereits geprüft war oder nicht.
4.14.1 Wx_isModeAdd()
Modus Hinzufügen
Über die Funktion Wx_isModeAdd() kann geprüft werden, ob der aktuelle Modus Hinzufügen ist.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeAdd
P* Purpose:
Check Current Mode --> Return True if Action is ADD
P* Returns:
True/*ON = Action is ADD / False/*Off any other Action
P* Parameters:
ParRtv => Retr. Mode in either way (even if already stored)
***************************************************************************
D Wx_isModeAdd...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 151: Prototype - Funktion Wx_isModeAdd() - Prüfen Modus Hinzufügen
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Wx_isModeAdd() or Land = *Blanks;
//Default-Wert für Land Setzen
EndIf;
B EN UT ZERHA ND BUC H 135
If Wx_isModeAdd(*ON) = *On;
//Default-Werte setzen
EndIf;
If MyKey <> *Zeros and Not Wx_isModeAdd()
//Einlesen Datensatz;
EndIf;
/End-Free
Source Code 152: Aufruf - Funktion Wx_isModeAdd() - Prüfen Modus Hinzufügen
4.14.2 Wx_isModeChange()
Modus Ändern
Über die Funktion Wx_isModeChange() kann geprüft werden, ob der aktuelle Modus Ändern ist.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeChange
P* Purpose:
Check Current Mode --> Return True if Action is CHANGE
P* Returns:
True/*ON = Action is CHANGE / False/*Off any other Action
P* Parameters:
ParRtv => Retr. Mode in either way (even if already stored)
***************************************************************************
D Wx_isModeChange...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 153: Prototype - Funktion Wx_isModeChange() - Prüfen Modus Ändern
Parameter

Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter
Beispiele für den Aufruf
/Free
If Wx_isModeChange() and LiefTerm >= %Date();
//Änderungsmodus
EndIf;
If Wx_isModeChange(*ON) = *On;
//Änderungsmodus
EndIf;
If MyKey = *Zeros or Not Wx_isModeChange()
//Nicht Änderungsmodus
EndIf;
/End-Free
Source Code 154: Aufruf - Funktion Wx_isModeChange() - Prüfen Modus Ändern
B EN UT ZERHA ND BUC H 136
4.14.3 Wx_isModeCopy()
Modus Kopieren
Über die Funktion Wx_isModeCopy() kann geprüft werden, ob der aktuelle Modus Kopieren ist.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeCopy
P* Purpose:
Check Current Mode --> Return True if Action is COPY
P* Returns:
True/*ON = Action is COPY / False/*Off any other Action
P* Parameters:
ParRtv => Retrieve Mode in either way (even if already s
***************************************************************************
D Wx_isModeCopy...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 155: Prototype - Funktion Wx_isModeCopy() - Prüfen Modus Kopieren
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Wx_isModeCopy();
//Initialisieren
EndIf;
If Wx_isModeCopy(*ON) = *On;
//Initialisieren
EndIf;
If MyKey = *Zeros or Not Wx_isModeCopy()
//Einlesen Datensatz
EndIf;
/End-Free
Source Code 156: Aufruf - Funktion Wx_isModeCopy() - Prüfen Modus Kopieren
4.14.4 Wx_isModeDelete()
Modus Löschen
Über die Funktion Wx_isModeDelete() kann geprüft werden, ob der aktuelle Modus Löschen ist.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeDelete
P* Purpose:
Check Current Mode --> Return True if Action is DELETE
P* Returns:
True/*ON = Action is DELETE / False/*Off any other Action
P* Parameters:
ParRtv => Retrieve Mode in either way (even if already s
***************************************************************************
D Wx_isModeDelete...
B EN UT ZERHA ND BUC H 137
D
D
PR
ParRtv
N
N
Options(*NoPass)
OpDesc
Const
Source Code 157: Prototype - Funktion Wx_isModeDelete() - Prüfen Modus Löschen
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Wx_isModeDelete();
ArrKeyVal = Wx_GetDBKeyArrInt();
For Index = 1 To %Elem(ArrKeyVal);
If ArrKeyVal(Index) > *Zeros;
Delete(E) ArrKeyVal(Index) AdresseF1;
EndIf;
EndFor;
Wx_RtnPrv();
EndIf;
/End-Free
Source Code 158: Aufruf - Funktion Wx_isModeDelete() - Prüfen Modus Löschen
4.14.5 Wx_isModeProperty()
Modus Anzeigen
Über die Funktion Wx_isModeProperty() kann geprüft werden, ob der aktuelle Modus Anzeigen ist.
Prototype
***************************************************************************
P* Procedure name: WX_IsModeProperty
P* Purpose:
Check Current Mode --> Return True if Action is PROPERTY
P* Returns:
True/*ON = Action is PROPERTY / False/*Off any other Action
P* Parameters:
ParRtv => Retrieve Mode in either way (even if already stored
***************************************************************************
D WX_IsModeProperty...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 159: Prototype - Funktion Wx_isModeProperty() - Prüfen Modus Anzeigen
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
B EN UT ZERHA ND BUC H 138
If Wx_isModeProperty();
//Anzeigen
EndIf;
If Wx_isModeProperty(*ON) = *On;
//Anzeigen
EndIf;
If Not Wx_isModeProperty()
//Nicht Anzeigen
EndIf;
/End-Free
Source Code 160: Aufruf - Funktion Wx_isModeProperty() - Prüfen Modus Anzeigen
4.14.6 Wx_isModeWrite()
Modus Hinzufügen oder Kopieren
Über die Funktion Wx_isModeWrite() kann geprüft werden, ob der aktuelle Modus entweder Kopieren
oder Hinzufügen ist.
Dieser Modus kann geprüft werden, um festzustellen, ob ein neuer Datensatz geschrieben oder ein vorhandener Datensatz gesetzt werden kann.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeWrite
P* Purpose:
Check Current Mode --> Return True if Action is either COPY or
P*
Write
P* Returns:
True/*ON = For Additional Input Checking / False/*Off
P* Parameters:
ParRtv => Retr. Mode in either way (even if already stored)
***************************************************************************
D Wx_isModeWrite...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 161: Prototype - Funktion Wx_isModeWrite() - Prüfen Modus Hinzufügen oder Kopieren
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen oder Kopieren
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Wx_isModeWrite();
//Initialisieren
EndIf;
If Wx_isModeWrite(*ON) = *On;
//Initialisieren
EndIf;
B EN UT ZERHA ND BUC H 139
If Not Wx_isModeWrite()
//Weder Kopieren noch Hinzufügen
EndIf;
/End-Free
Source Code 162: Aufruf - Funktion Wx_isModeWrite() - Prüfen Modus Hinzufügen oder Kopieren
4.14.7 Wx_isModeSave()
Modus Sichern
Über die Funktion Wx_isModeSave() kann geprüft werden, ob der aktuelle Modus Sichern ist.
Der Modus sollte erst nach Ausführung der Funktion Wx_GetChgInput() (ähnl. OpCode EXFMT) geprüft
werden.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeSave
P* Purpose:
Check Current Mode --> Return True if Action is SAVE
P* Returns:
True/*ON = Action is Save / False/*Off any other Action
P* Parameters:
ParRtv => Retr. Mode in either way (even if already stored)
***************************************************************************
D Wx_isModeSave...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 163: Prototype - Funktion Wx_isModeSave() - Prüfen Modus Sichern
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Wx_isModeSave();
//Fortschreiben Datensatz
EndIf;
If Wx_isModeSave(*ON) = *On;
//Fortschreiben Datensatz
EndIf;
If Not Wx_isModeSave()
//Nicht Modus Sichern
EndIf;
/End-Free
Source Code 164: Aufruf - Funktion Wx_isModeSave() - Prüfen Modus Sichern
B EN UT ZERHA ND BUC H 140
4.14.8 Wx_isModeApply()
Modus Übernehmen
Über die Funktion Wx_isModeApply() kann geprüft werden, ob der aktuelle Modus Übernehmen ist.
Der Modus sollte erst nach Ausführung der Funktion Wx_GetChgInput() (ähnl. OpCode EXFMT) geprüft
werden.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeApply
P* Purpose:
Check Current Mode --> Return True if Action is APPLY
P* Returns:
True/*ON = Action is APPLY / False/*Off any other Action
P* Parameters:
ParRtv => Retr.Mode in either way (even if already stored)
***************************************************************************
D Wx_isModeApply...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 165: Prototype - Funktion Wx_isModeApply() - Prüfen Modus Übernehmen
Parameter
Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Wx_isModeApply();
//Fortschreiben Datensatz
EndIf;
If Wx_isModeApply(*ON) = *On;
//Fortschreiben Datensatz
EndIf;
If Not Wx_isModeApply()
//Nicht Modus Übernehmen
EndIf;
/End-Free
Source Code 166: Aufruf - Funktion Wx_isModeApply() - Prüfen Modus Übernehmen
4.14.9 Wx_isModeUpdate()
Modus Sichern oder Übernehmen
Über die Funktion Wx_isModeUpdate() kann geprüft werden, ob der aktuelle Modus Sichern oder Übernehmen ist.
Der Modus sollte erst nach Ausführung der Funktion Wx_GetChgInput() (ähnl. OpCode EXFMT) geprüft
werden.
B EN UT ZERHA ND BUC H 141
Prototype
***************************************************************************
P* Procedure name: Wx_isModeUpdate
P* Purpose:
Check Current Mode --> Return True if Action is either APPLY
P*
or SAVE
P* Returns:
True/*ON = Record must be written or updates / False/*Off
P* Parameters:
ParRtv => Retrieve Mode in either way (even if already stored
***************************************************************************
D Wx_isModeUpdate...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 167: Prototype - Funktion Wx_isModeUpdate() - Prüfen Modus Sichern oder Übernehmen
Parameter

Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter
Beispiele für den Aufruf
/Free
If Wx_isModeUpdate();
//Fortschreiben Datensatz
EndIf;
If Wx_isModeUpdate(*ON) = *On;
//Fortschreiben Datensatz
EndIf;
If Not Wx_isModeUpdate()
//Weder Modus Sichern noch Modus übernehmen
EndIf;
/End-Free
Source Code 168: Aufruf - Funktion Wx_isModeApply() - Prüfen Modus Übernehmen
4.14.10 Wx_isModeOutput()
Eigenschaften
Modus
Anzeigen
oder
Über die Funktion Wx_isModeOutput() kann geprüft werden, ob der aktuelle Modus Anzeigen oder Eigenschaften ist.
Der Modus sollte erst nach Ausführung der Funktion Wx_GetChgInput() (ähnl. OpCode EXFMT) geprüft
werden.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeOutput
P* Purpose:
Check Current Mode --> Return True if Action is either DISPLAY
P*
or PROPERTY
P* Returns:
True/*ON = Fields must be set to output / False/*Off
P* Parameters:
ParRtv => Retr. Mode in either way (even if already stored)
B EN UT ZERHA ND BUC H 142
***************************************************************************
D Wx_isModeOutput...
D
PR
N
OpDesc
D ParRtv
N
Options(*NoPass)
Const
Source Code 169: Prototype - Funktion Wx_isModeOutput() - Prüfen Modus Anzeigen oder Eigenschaften
Parameter
Rückgabe-Wert *ON = Modus Anzeigen oder Eigenschaften
*OFF = Anderer Modus

ParRtv
*ON = Modus erneut prüfen/ermitteln
Optionaler Parameter

Beispiele für den Aufruf
/Free
If Not Wx_isModeOutput();
//Datensatz fortschreiben
EndIf;
If Wx_isModeOutput(*ON) = *Off;
//Datensatz fortschreiben
EndIf;
If Wx_isModeOutput()
//Modus Anzeigen oder Eigenschaften
EndIf;
/End-Free
Source Code 170: Aufruf - Funktion Wx_isModeApply() - Prüfen Modus Übernehmen
4.14.11 Wx_isMode()
Prüfen beliebigen Modus
Über die Funktion Wx_isMode() kann geprüft werden, ob der aktuelle Modus dem vorgegebenen Modus
entspricht.
Der Modus kann in jeder beliebigen Kombination aus Groß- und Kleinbuchstaben übergeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_isMode
P* Purpose:
Check Mode, if the current mode is equal to the passed mode
P* Returns:
True/*ON = Current Mode = Passed Mode / False/*Off
P* Parameters:
ParRtv => Retrieve Mode in either way (even if already stored)
***************************************************************************
D Wx_isMode...
D
PR
N
OpDesc
D ParMode
Like(FldRef.ModeChar) Const
D ParRtv
N
Options(*NoPass)
Const
Source Code 171: Prototype - Funktion Wx_isMode() - Prüfen beliebigen Modus
Parameter
B EN UT ZERHA ND BUC H 143



Rückgabe-Wert *ON = Modus Hinzufügen
*OFF = Anderer Modus
ParMode
Modus
Case insensitive
ParRtv
*ON = Modus erneut prüfen/ermitteln
Beispiele für den Aufruf
/Free
Select;
When Wx_isMode('SALESITM');
Wx_CallPGM('EXWRKUM03');
When Wx_isMode('SalesCustItm': *ON);
Wx_CallPGM('EXWRKUM04': Wx_GetDBKeyChar());
EndSL;
/End-Free
Source Code 172: Aufruf - Funktion Wx_isMode() - Prüfen beliebigen Modus
4.14.12 Wx_isModeReseq()
Resequenzierung
Über die Funktion Wx_isModeReseq(), kann geprüft werden, ob in einer Listanzeige in der die Umsortierung der Datensätze erlaubt ist, der entsprechende Button (Default = Umsortierung) angeklickt wurde.
Sofern die Funktion Wx_isModeReseq() *ON zurückbringt, können die Schlüssel-Werte in der neuen
Reihenfolge wahlweise in einem String mit Trennzeichen, einer Feldgruppe mit ganzzahligen Elemente
oder einer Feldgruppe mit alphanumerischen Elementen ausgegeben werden. Basierend auf den ausgegebenen Werten kann der Programmierer seine Datensätze basierend auf der neuen Sortierung fortschreiben.
Prototype
***************************************************************************
P* Procedure name: Wx_isModeReseq
P* Purpose:
Check Special Mode for Resequencing
P* Returns:
True/*ON = Data for Resequencing/ False/*Off no Data Available
P* Parameters:
ParReload
= Retrieve URL values even if already populated)
***************************************************************************
D Wx_isModeReseq...
D
PR
N
OpDesc
D
ParReload
N
Options(*NoPass)
Const
Source Code 173: Prototype - Funktion Wx_isModeReseq() - Prüfen Resequenzierung-Button geklickt
Parameter

Rückgabe-Wert *ON = Modus Resequenzierung (Button geklickt)
*OFF = Anderer Modus
*ON = Ergebnis aus Umsortierung liegt vor
Beispiele für den Aufruf
/Free
B EN UT ZERHA ND BUC H 144
If Wx_isModeReseq();
//Ergebnis aus Resequenzierung
Monitor;
GblArrInt = Wx_GetReseqArrInt();
On-Error;
GblString = Wx_GetReseqString();
EndMon;
//Empfangen Schlüssel in Feldgruppe
//Empfangen Schlüssel als String
//Datensätze in neuer Reihenfolge fortscheiben;
EndIf;
//Quell-Code für Worktable
/End-Free
Source Code 174: Aufruf - Funktion Wx_isModeReseq() - Prüfen Resequenzierung-Button geklickt
4.14.13 Wx_isModeEdtList()
Editierbare Worktable
Über die Funktion Wx_isModeEdtList(), kann geprüft werden, ob in einer editierbaren Listanzeige, der
entsprechende Button (Default = Änderungen speichern) angeklickt wurde.
Sofern die Funktion Wx_isModeEdtList() *ON zurückbringt, können geänderten Daten in Form eines
XML-Dokuments empfangen werden. Basierend auf den im XML-Dokument ausgegebenen Änderungen
kann der Programmierer die Änderungen fortschreiben.
Prototype
**************************************************************************
P* Procedure name: Wx_isModeEdtList
P* Purpose:
Check Special Mode for editable Worktables
P* Returns:
True/*ON = Data for editable Worktables / False/*Off
P* Parameters:
ParReload
= Retrieve URL values even if already retrieved
*------------------------------------------------------------------------* Attention:
Currently restricted to 16350 characters
**************************************************************************
D Wx_isModeEdtList...
D
PR
N
OpDesc
D
ParReload
N
Options(*NoPass)
Const
/EndIf
Source Code 175: Prototype - Funktion Wx_isModeEdtList() - Prüfen Button Sichern Änderung in Worktable geklickt

Parameter
Rückgabe-Wert *ON = Modus Sichern Änderung in Worktable (Button geklickt)
*OFF = Anderer Modus
*ON = XML-Dokument mit geänderten Daten liegt vor
Beispiele für den Aufruf
/Free
If Wx_isModeEdtList();
GblXMLDocument = Wx_GetEdtListXML();
//Work Table geändert
//XML-Dokument empfangen
B EN UT ZERHA ND BUC H 145
XML-Into Rows %XML(GblXMLDocument:
//Einlesen XML-Dokument
'allowmissing=yes allowextra=yes case=any');//in DS
//Fortschreiben der Datensätze
EndIf;
//Quell-Code für Worktable
/End-Free
Source Code 176: Aufruf - Funktion Wx_isModeEdtList() - Prüfen Button Sichern Änderung in Worktable geklickt
4.15 Umsortierung von Datensätzen in einer List-Anzeige
Die Reihenfolge der Datensätze innerhalb von List-Anzeigen kann mittels Drag und Drop geändert werden.
Voraussetzung ist, dass ein Resequenzierung-Button mit Hilfe der Funktion Wx_WrkBtnReseq() definiert
wurde. Beim ersten Aufruf wird der Button ausgegraut angezeigt.
Sobald sich die Reihenfolge der Datensätze geändert wird, kann der Button angeklickt werden.
Beim Klick auf den Button werden die Schlüssel-Werte in der neuen Reihenfolge ausgegeben. Dabei ist
zu beachten, dass immer die Schlüssel-Werte ALLER Datensätzen in der List-Anzeige ausgegeben
werden.
Sofern die Liste nicht mehr als 256 Datensätze beinhaltet, können die Schlüssel-Werte im Verarbeitungsprogramm mit Hilfe der folgenden WOPiXX-Funktionen direkt in eine alphanumerische oder numerische Feldgruppe (mit 256 Elementen) ausgegeben werden.

Wx_GetReseqArrInt()

Wx_GetReseqArrChar()

Wx_GetReseqArrUC()
Ausgabe der Schlüssel-Werte in eine Feldgruppe mit 256 Elementen
und ganzzahligem Datentypen (20U 0)
Ausgabe der Schlüssel-Werte in eine Feldgruppe mit 256 Elementen
und alphanumerischem Datentypen mit variabler Länge (256A varying)
Ausgabe der Schlüssel-Werte in eine Feldgruppe mit 256 Elementen
und Unicode Datentypen mit variabler Länge (256C varying)
Sollten in der List-Anzeige mehr als 256 Datensätze enthalten sein, können die Schlüssel-Werte als alphanumerischer String ausgegeben werden. Innerhalb des Strings sind die Schlüssel-Werte durch
Hash-Zeichen (#) voneinander getrennt. Der Programmierer muss dann die Schlüssel-Werte selber aus
dem String ermitteln. Auch hierbei gibt es Restriktionen: Aktuell kann der String nur maximal 16350 Zeichen lang sein.
Der String mit den umsortierten Schlüssel-Werten kann über die folgenden Funktionen ermittelt werden:


Wx_GetReseqString()
Alphanumerischer String mit den entsprechenden Schlüssel-Werte
Wx_GetReseqStringUC() Unicode String mit den entsprechenden Schlüssel-Werten
Anmerkung:
Wird eine Resequenzierung erlaubt, werden ALLE Datensätze in die Listanzeige eingelesen. Das übliche Paging, bei dem jeweils Blöcke von 100
B EN UT ZERHA ND BUC H 146
Datensätzen eingelesen und ausgegeben werden ist an dieser Stelle abgeklemmt.
Es werden immer alle Schlüssel-Werte in der neuen Reihenfolge ausgegeben. Sollen die Schlüssel in Feldgruppen ausgegeben werden, darf die
List-Anzeige nicht mehr als 256 Zeilen beinhalten.
Werden die Schlüssel-Werte in einem String empfangen, kann dieser
String maximal 16.350 Zeichen fassen.
Im Gegensatz zu den üblichen Buttons wird die Steuerung nicht an das vordefiniert Change-Programm
übergeben, sondern kommt in das gleiche Programm zurück.
In dem Workprogramm muss mit Hilfe der Funktion Wx_isModeReseq() festgestellt werden, ob Schlüssel-Werte in der neuen Reihenfolge vorhanden sind, die empfangen werden können. Nach der Verarbeitung der Schlüssel-Werte darf das Programm nicht verlassen werden, sondern muss erneut für die
Anzeige durchlaufen werden.
4.15.1 Wx_GetReseqArrInt()
neuer Reihenfolge
Numerische Schlüssel-Werte in
Sofern Daten aus einer Resequenzierungsoperation ( Prüfung über Funktion Wx_isModeReseq()) zurückgegeben wurden, können mit Hilfe der Funktion Wx_GetReseqArrInt() bis zu 256 (aktuelle Begrenzung) numerische Schlüssel-Werte in eine Feldgruppe ausgegeben werden.
Enthält die Liste mehr als 256 Datensätze, bricht die Funktion ab. Der Fehler kann über eine MonitorGroup abgefangen werden.
Prototype
***************************************************************************
P* Procedure name: Wx_GetReseqArrInt
P* Purpose:
Get Array Integer Key Values in an array ordered in the
P*
modified sequence
P*
= Will only work for Relative Record No or Integer Key Values
P*
= No Decimal Positions will be returned
P* Returns:
Array Big Integer Key Values
P* Parameters:
POutElem
=> Number of Elements
(Optional)
P* Parameters:
ParReload
=> True=Reload URL
(Optional)
P*
(independent if already filled or not)
P* Parameters:
ParRmvDft
=> Remove Default Values from Return String
P*
Not Passed or True --> Remove Default Value
//------------------------------------------------------------------------P* Attention:
A maximum of RefElemParms (Currently 256) key values
***********************************************************************
D Wx_GetReseqArrInt...
D
PR
20U 0 Dim(RefElemParms)
OpDesc
D POutElem
10U 0 Options(*NoPass)
D ParReload
N
Options(*NoPass)
Const
D ParRmvDft
N
Options(*NoPass)
Const
Source Code 177: Prototype - Funktion Wx_GetReseqArrInt()
Numerische Schlüssel-Werte in neuer Reihenfolge
B EN UT ZERHA ND BUC H 147


Parameter
Rückgabe-Wert Ganzzahlige Feldgruppe (20U 0) mit 256 Elementen
Für numerische Schlüssel-Werte in der neuen Reihenfolge
POutElem
Optionaler Ausgabe-Parameter
Anzahl der gefüllten Elemente in der Feldgruppe
Beispiele für den Aufruf
D GblArrInt
D GblNbrElem
D GblIndex
/Free
S
S
S
10I 0 Dim(RefElemParms)
10U 0
10I 0
If Wx_isModeReseq();
Monitor;
GblArrInt = Wx_GetReseqArrInt(GblNbrElem);
If GblNbrElem > *Zeros;
For GblIndex = 1 to GblNbrElem;
EndFor;
EndIf;
On-Error;
GblString = Wx_GetReseqString();
EndMon;
EndIf;
/End-Free
Source Code 178: Aufruf - Funktion Wx_GetReseqArrInt()
Numerische Schlüssel-Werte in neuer Reihenfolge
4.15.2 Wx_GetReseqArrChar()
alphanumerische SchlüsselWerte in neuer Reihenfolge
Sofern Daten aus einer Resequenzierungsoperation ( Prüfung über Funktion Wx_isModeReseq()) zurückgegeben wurden, können mit Hilfe der Funktion Wx_GetReseqArrChar() bis zu 256 (aktuelle Begrenzung) alphanumerische Schlüssel-Werte in eine Feldgruppe ausgegeben werden.
Enthält die Liste mehr als 256 Datensätze, bricht die Funktion ab. Der Fehler kann über eine MonitorGroup abgefangen werden.
Bei zusammengesetzten Schlüsseln, wird je ein String mit allen Schlüssel-Werten für den entsprechenden Datensatz in ein Feldgruppen-Element ausgegeben. Die einzelnen Schlüssel-Werte sind durch das
Sonderzeichen Pipe (|) voneinander getrennt. Mit Hilfe der Funktion Wx_SplitStringArr() (4.20.1
Wx_SplitStringArr() String in Feldgruppe splitten)oder einer eigenen Funktion kann der zusammengesetzte Schlüssel-Wert in eine Feldgruppe aufgesplittet werden.
Prototype
***************************************************************************
P* Procedure name: Wx_GetReseqArrChar
B EN UT ZERHA ND BUC H 148
P* Purpose:
Get Array Character Key Values in an array ordered in the
P*
modified sequence
P* Returns:
Array Character Key Values
P* Parameters:
POutElem
=> Number of Elements
(Optional)
P* Parameters:
ParReload
=> True=Reload URL
(Optional)
P*
(independent if already filled or not)
P* Parameters:
ParRmvDft
=> Remove Default Values from Return String
P*
Not Passed or True --> Remove Default Values
//------------------------------------------------------------------------P* Attention:
A maximum of RefElemParms (Currently 256) key values
***************************************************************************
D Wx_GetReseqArrChar...
D
PR
Like(FldRef.TextVar)
OpDesc
D
Dim(RefElemParms)
D POutElem
10U 0 Options(*NoPass)
D ParReload
N
Options(*NoPass)
Const
D ParRmvDft
N
Options(*NoPass)
Const
Source Code 179: Prototype - Funktion Wx_GetReseqArrChar()


alphanumerische Schlüssel-Werte in neuer Reihenfolge
Parameter
Rückgabe-Wert Alphanumerische Feldgruppe (256A varying) mit 256 Elementen
Für alphanumerische Schlüssel-Werte in der neuen Reihenfolge
POutElem
Optionaler Ausgabe-Parameter
Anzahl der gefüllten Elemente in der Feldgruppe
Beispiele für den Aufruf
D GblString
S
16350A
Varying
D GblArrChar
S
256A
Varying Dim(RefElemParms)
D GblNbrElem
S
10U 0
D GblIndex
S
3U 0
*-------------------------------------------------------------------------------/Free
If Wx_isModeReseq();
Monitor;
GblArrChar = Wx_GetReseqArrChar(GblNbrElem);
If GblNbrElem > *Zeros;
For GblIndex = 1 to GblNbrElem;
EndFor;
EndIf;
On-Error;
GblString = Wx_GetReseqString();
EndMon;
EndIf;
/End-Free
Source Code 180: Aufruf
Funktion Wx_GetReseqArrChar()
alphanumerische Schlüssel-Werte in neuer Reihenfolge
B EN UT ZERHA ND BUC H 149
4.15.3 Wx_GetReseqArrUC()
neuer Reihenfolge
Unicode-Schlüssel-Werte
in
Sofern Daten aus einer Resequenzierungsoperation ( Prüfung über Funktion Wx_isModeReseq()) zurückgegeben wurden, können mit Hilfe der Funktion Wx_GetReseqArrUC() bis zu 256 (aktuelle Begrenzung) Double-Byte-Unicode-Schlüssel-Werte (RPG-Datentyp C) in eine Feldgruppe ausgegeben
werden.
Enthält die Liste mehr als 256 Datensätze, bricht die Funktion ab. Der Fehler kann über eine MonitorGroup abgefangen werden.
Bei zusammengesetzten Schlüsseln, wird je ein String mit allen Schlüssel-Werten für den entsprechenden Datensatz in ein Feldgruppen-Element ausgegeben. Die einzelnen Schlüssel-Werte sind durch das
Sonderzeichen Pipe (|) voneinander getrennt. Mit Hilfe der Funktion Wx_SplitStringArrUC2() (4.20.2
Wx_SplitStringArrUC2() Unicode-Test in Feldgruppe splitten )oder einer eigenen Funktion kann der zusammengesetzte Schlüssel-Wert aufgesplittet werden.
Prototype
***************************************************************************
P* Procedure name: Wx_GetReseqArrUC
P* Purpose:
Get Array Unicode Key Values in an array ordered in the m
P* Returns:
Array Unicode Key Values
P* Parameters:
POutElem
=> Number of Elements
(Optional)
P* Parameters:
ParReload
=> True=Reload URL
(Optional)
P*
(independent if already filled or not)
P* Parameters:
ParRmvDft
=> Remove Default Values from Return String
P*
Not Passed or True --> Remove Default Value
//------------------------------------------------------------------------P* Attention:
A maximum of RefElemParms (Currently 256) key values can
***************************************************************************
D Wx_GetReseqArrUC...
D
PR
Like(FldRef.UCVAR)
OpDesc
D
Dim(RefElemParms)
D POutElem
10U 0 Options(*NoPass)
D ParReload
N
Options(*NoPass)
Const
D ParRmvDft
N
Options(*NoPass)
Const
Source Code 181: Prototype - Funktion Wx_GetReseqArrUC2r()
Unicode-Schlüssel-Werte in neuer Reihenfolge
Parameter

Rückgabe-Wert Double-Byte-Unicode-Feldgruppe (256C varying) mit 256 Elementen
Für Double-Byte-Unicode-Schlüssel-Werte in der neuen Reihenfolge

POutElem
Optionaler Ausgabe-Parameter
Anzahl der gefüllten Elemente in der Feldgruppe
Beispiele für den Aufruf
D
D
D
D
GblString
GblArrUC2
GblNbrElem
GblIndex
S
S
S
S
Like(FldRefLU.VarLen)
Like(FldRef.UCVar) Dim(RefElemParms)
10U 0
3U 0
B EN UT ZERHA ND BUC H 150
*-------------------------------------------------------------------------------/Free
If Wx_isModeReseq();
Monitor;
GblArrUC2 = Wx_GetReseqArrUC2(GblNbrElem);
If GblNbrElem > *Zeros;
For GblIndex = 1 to GblNbrElem;
EndFor;
EndIf;
On-Error;
GblString = Wx_GetReseqStringUC2();
EndMon;
EndIf;
/End-Free
Source Code 182: Aufruf
Funktion Wx_GetReseqArrUC()
Unicode-Schlüssel-Werte in neuer Reihenfolge
4.15.4 Wx_GetReseqString()
neuer Reihenfolge
AlphaString mit Schlüsseln in
Sofern Daten aus einer Resequenzierungsoperation ( Prüfung über Funktion Wx_isModeReseq()) zurückgegeben wurden, können mit Hilfe der Funktion Wx_GetReseqString() alle Schlüssel-Werte, die
durch ein Hash-Zeichen (#) getrennt wurden, in einem einzigen String ausgegeben werden.
Dies ist erforderlich, sofern die zu sortierende Liste mehr als 256 Zeilen enthält und damit nicht mehr
über eine der Funktionen Wx_GetReseqArrInt(), Wx_GetReseqArrChar oder Wx_GetReseqArrUC() direkt
in eine Feldgruppe ausgegeben werden kann.
Der Ausgabe-String kann aktuell nur maximal 16350 Zeichen beinhalten. Werden mehr Informationen
ausgegeben, so werden diese abgeschnitten.
Der Programmierer muss die Schlüssel-Information basierend auf dem Trennzeichen (#) aufsplitten und
verarbeiten.
Prototype
***************************************************************************
P* Procedure name: Wx_GetReseqString
P* Purpose:
Get All Occurences for resequencing in a single string
P*
= Keys are separated by a #
P*
= Programmer has to split the values by himself
P* Returns:
Character String
P* Parameters:
***************************************************************************
D Wx_GetReseqString...
D
PR
Like(FldRefLA.VarLen)
OpDesc
Source Code 183: Prototype - Funktion Wx_GetReseqString()
String mit Schlüssel-Werten in neuer Reihenfolge
B EN UT ZERHA ND BUC H 151

Parameter
Rückgabe-Wert alphanumerischer String mit allen, durch Hash-Zeichen (#) getrennte SchlüsselWerten in der neuen Reihenfolge
Beispiele für den Aufruf
D GblString
S
Like(FldRefLA.VarLen)
*------------------------------------------------------------------------------/Free
If Wx_isModeReseq();
GblString = Wx_GetReseqString();
EndIf;
/End-Free
Source Code 184: Aufruf
Funktion Wx_GetReseqString() String mit Schlüssel-Werten in neuer Reihenfolge
4.15.5 Wx_GetReseqStringUC()
in neuer Reihenfolge
Unicode-String mit Schlüsseln
Sofern Daten aus einer Resequenzierungsoperation ( Prüfung über Funktion Wx_isModeReseq()) zurückgegeben wurden, können mit Hilfe der Funktion Wx_GetReseqStringUC() alle Schlüssel-Werte, die
durch ein Hash-Zeichen (#) getrennt wurden in einem einzigen Double-Byte-Unicode-String (RPGDatentyp C) ausgegeben werden.
Dies ist erforderlich, sofern die zu sortierende Liste mehr als 256 Zeilen enthält und damit nicht mehr
über eine der Funktionen Wx_GetReseqArrInt(), Wx_GetReseqArrChar oder Wx_GetReseqArrUC() direkt
in eine Feldgruppe ausgegeben werden kann.
Der Ausgabe-String kann aktuell nur maximal 16350 (Unicode) Zeichen beinhalten. Werden mehr Informationen ausgegeben, so werden diese abgeschnitten.
Der Programmierer muss die Schlüssel-Information basierend auf dem Trennzeichen (#) aufsplitten und
verarbeiten.
Prototype
***************************************************************************
P* Procedure name: Wx_GetReseqStringUC
P* Purpose:
Get All Occurences for resequencing in a single unicode s
P*
= Keys are separated by a #
P*
= Programmer has to split the values by himself
P* Returns:
Unicode String
P* Parameters:
***************************************************************************
D Wx_GetReseqStringUC...
D
PR
Like(FldRefLU.VarLen)
OpDesc
Source Code 185: Prototype - Funktion Wx_GetReseqStringUC()
Unicode-String mit Schlüssel-Werten in neuer Reihenfolge
B EN UT ZERHA ND BUC H 152

Parameter
Rückgabe-Wert Double-Byte-Unicode-String mit allen, durch Hash-Zeichen (#) getrennte Schlüssel-Werten in der neuen Reihenfolge
Beispiele für den Aufruf
D GblString
S
Like(FldRefLU.VarLen)
*-----------------------------------------------------------------------------/Free
If Wx_isModeReseq();
GblString = Wx_GetReseqStringUC();
EndIf;
/End-Free
Source Code 186: Aufruf
Funktion Wx_GetReseqStringUC() Unicode-String mit Schlüssel-Werten in neuer Reihenfolge
4.16 Editierbare List-Anzeigen
Um Listanzeigen/Work-Tables editieren zu können, muss ein spezieller Änderungsbutton mit Hilfe der
Funktion Wx_WrkBtnEdtList() definiert werden.
Wurde dieser Button definiert können die Inhalte der Worktable geändert/überschrieben werden.
Bei Klick auf den Button wird ein XML-Dokument, in dem alle Spalten-Werte für die geänderten Zeilen
ausgegeben werden. Das XML-Dokument kann maximal 16350 Zeichen fassen.
Das XML-Dokument kann mit der folgenden Funktion in eine Variable ausgegeben werden.

Wx_GetEdtListXML()
Ausgabe des XML-Dokuments mit den geänderten Werten
In eine alphanumerische Variable
Einzelne Spalten können durch Angabe des Schlüssel-Wortes Output bei Aufruf der Prozedur
Wx_WrtFld)( zur Änderung gesperrt werden.
Die editierbaren und gesperrten Spalten werden farblich unterschiedlich dargestellt.
B EN UT ZERHA ND BUC H 153
■ Editierbare Spalten
■ Aktuelle Zeile
■ Nicht editierbare Spalten
■ Aktuell zu ändernder
Spalten-Wert
4.16.1 XML-Dokument für editierbare Worktables - Aufbau
Das XML-Dokument in dem die geänderten Werte ausgegeben werden hat den folgenden Aufbau:




Root-Element
Zeilen-Element
<rows> in Kleinbuchstaben
<row> in Kleinbuchstaben
Die Spalten-Elemente sind jeweils unterhalb des Zeilen-Elements angeordnet
Spalten-Element für Schlüssel-Werte
<ID> in Großbuchstaben
Spalten-Elemente Die Element-Namen entsprechen den Feld-Namen, die in der Funktion
Wx_WrkFld() angegeben wurden.
Die Spalten-Element-Namen werden in Groß-Buchstaben ausgeben.
<?xml version="1.0"?>
<rows>
<row>
<ID>111</ID>
<SPALTE1>Wert Spalte 1</SPALTE1>
<SPALTE2>Wert Spalte 2</SPALTE2>
... weitere Spalten
</row>
<row>
<ID>111</ID>
<SPALTE1>Wert Spalte 1</SPALTE1>
... weitere Spalten
</row>
... weitere Zeilen
</rows>
Source Code 187: Aufbau XML-Dokument für editierbare Listen
Das folgende Schaubild zeigt ein XML-Dokument, das nach der Änderung in der Worktable ausgegeben
wurde. Außerdem wird der RPG-Code mit dem die Spalten in der Worktable definiert wurden angezeigt.
B EN UT ZERHA ND BUC H 154
■ XML-Dokument
■ RPG Source Code
//Definieren Schlüssel-Felder
Wx_WrkKeyRRN('XXPRMCTL');
//Definieren Spalten
Wx_WrkFld('DCAPP' : 'DWB0552');
Wx_WrkFld('DCNAM' : 'WXA0002');
Wx_WrkFld('DCKEY' : 'DWB0590');
Wx_WrkFld('DCTXT' : 'DWB0019');
Wx_WrkFld('NEWSEQ': 'Sort');
■ Element-Namen (in Groß-Buchstaben)
entsprechen dem in Funktion Wx_WrkFld()
definierten Namen
Abbildung 21: XML-Dokument für editierbare Worktables
4.16.2 Wx_GetEdtListXML()
Empfangen alphanumerisches
XML-Dokument mit geänderten Werten
Sofern Daten aus Änderungen aus editierbaren Worktables ( Prüfung über Funktion
Wx_isModeEdtList()) zurückgegeben wurden, kann mit Hilfe der Funktion Wx_GetEdtListXML() ein XMLDokument, das alle Änderungen enthält in eine alphanumerische Variable ausgegeben werden.
Das XML-Dokument kann aktuell nur maximal 16350 Zeichen beinhalten. Werden mehr Informationen
ausgegeben, so werden diese abgeschnitten und das XML-Dokument ist unvollständig.
Der Programmierer muss das empfangene XML-Dokument z.B. mit den RPG-OpCodes XML-INTO oder
XML-SAX in eine Datenstruktur ausgeben und anschließend die Daten verarbeiten.
Prototype
***************************************************************************
P* Procedure name: Wx_GetEdtListXML
P* Purpose:
Get All changed information as well formed XML document
P*
= Unique Key is returned as attribute id in the row element
P*
= column names as defined when creating the worktable are
P*
for the modified values
P* Returns:
Well formed XML document with the modified data
P* Parameters:
*-------------------------------------------------------------------------* Attention:
Currently restricted to 16350 characters
***************************************************************************
D Wx_GetEdtListXML...
D
PR
Like(FldRefLA.VarLen)
OpDesc
Source Code 188: Prototype - Funktion Wx_GetEdtListXML()
Empfangen XML-Dokument mit geänderten Werten
B EN UT ZERHA ND BUC H 155

Parameter
Rückgabe-Wert Text-String mit XML-Dokument
Beispiele für den Aufruf
D GblXMLDoc
D RefDSRow
D
Id
D
DCAPP
D
DCNAM
D
NEWSEQ
D
DCTXT
D
DCKEY
S
Like(FldRefLA.VarLen)
DS
Qualified Based(DummyPtr)
10I 0
10A
10A
5P 0
30A
20A
D Rows
DS
Qualified Inz
D Row
LikeDS(RefDSRow) Dim(100)
-----------------------------------------------------------------------------/Free
If Wx_isModeEdtList();
GblXMLDoc = Wx_GetEdtListXML();
XML-INTO Rows %XML(GblXMLDoc: 'allowmissing=yes allowextra=yes +
case=any');
EndIf;
/End-Free
Source Code 189: Aufruf
Funktion Wx_GetEdtListXML()
4.16.3 RPG-Code
Empfangen XML-Dokument mit geänderten Werten
Empfangen/Verarbeiten XML-Dokument
Das folgende Schaubild zeigt das XML-Dokument, die RPG-Datenstrukturen und die Verarbeitung des
XML-Dokuments mit dem RPG OpCode XML-INTO.
Die Id, sowie die Spalten/Elemente müssen zunächst in einer Referenz-Datenstruktur hinterlegt werden.
Die Spalten/Element und Datenstruktur-Unterfeld-Namen müssen identisch sein.
Da Spalten/Element-Namen und Datenstruktur- bzw. Datenstruktur-Unterfeld-Namen für die Verarbeitung des XML-Dokuments identisch sein müssen, muss die empfangende Datenstruktur rows heißen.
Diese Datenstruktur benötigt ein für jede Zeile ein Datenstruktur-Unterfeld mit dem Namen row und dem
Aufbau Referenz-Datenstruktur. Die Definition des Unterfeldes row erfolgt mit Hilfe des Schlüssel-Wortes
LIKEDS und maximale Anzahl der empfangenden Datensätze wird über das Schlüssel-Wort DIM festgelegt.
Da die Element-Namen z.T. in Groß-Buchstaben und z.T. in keinen Buchstaben ausgegeben werden,
muss die Option case=any in der Funktion %XML angegeben werden.
Da außerdem nicht immer die maximale Anzahl an Datensätzen empfangen wird und die Datenstruktur
außerdem noch andere Datenstruktur-Unterfelder enthalten könnte, müssen die Optionen allowmissing=yes und allowextra=yes angegeben werden.
B EN UT ZERHA ND BUC H 156
D RefDSRow
D
D
Id
D
DCAPP
D
DCNAM
D
NEWSEQ
D
DCTXT
D
DCKEY
DS
D Rows
D Row
D
DS
D XMLString
S
Qualified
Based(DummyPtr)
10I 0
10A
10A
5P 0
30A
20A
Qualified Inz
LikeDS(RefDSRow)
Dim(100)
16350A
Varying
XMLString = Wx_GetEdtListXML();
XML-INTO Rows
%XML(XMLString: 'allowmissing=yes +
allowextra=yes +
case=any');
Abbildung 22: Empfangen/Verarbeiten XML-Dokument nach Änderung in editierbaren Worktables
4.17 Direkter Aufruf von CGI-Programmen
CGI-Programme können nicht über die RPG-OpCodes CALL oder CALLP aufgerufen werden. Um den
Aufruf von CGI-Programmen aus anderen CGI-Programmen zu erleichtern wurden Prozeduren eingeführt, die den OpCodes nachempfunden wurden.
Der direkte Aufruf von CGI-Programmen ist z.B. in Change-Programmen erforderlich, sofern der Modus
eine eindeutige Kennung ist, jedoch keinem Programm-Namen entspricht.
Ebenso könnte sein, dass unter einer bestimmten Bedingung (Auftrags-Kopf wurde zwar ausgewählt,
jedoch zwischenzeitlich vom Kollegen gelöscht) ein anderes CGI-Programm (z.B. Erfassung AuftragsDaten) ausgeführt werden soll.
Der direkte Aufruf von CGI-Programmen erfolgt über Prozedur Wx_CallPGM().
Achtung:
4.17.1
Da aus einem CGI-Programm ein anderes CGI-Programm aufgerufen wird,
und ein CGI-Programm nach der Ausgabe an den Browser beendet wird,
wird auch das rufende Programm beendet.
Wx_CallPGM()
Direkter Aufruf CGI-Programm
Die Prozedur Wx_CallPGM() generiert die URL, die für den Aufruf erforderlich ist und initiiert den Aufruf.
B EN UT ZERHA ND BUC H 157
An die Prozedur Wx_CallPGM wird der Name des aufzurufenden Programms übergeben. Weiterhin
können bis zu 5 Parameter-Werte übergeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_CallPGM
P* Purpose:
Call Next CGI Program with Single Parameters
P* Returns:
URL
P* Parameters:
ParPGM
=> Program
P* Parameters:
ParParm1
=> Parameter 1
(Optional)
P* Parameters:
ParParm2
=> Parameter 2
(Optional)
P* Parameters:
ParParm3
=> Parameter 3
(Optional)
P* Parameters:
ParParm4
=> Parameter 4
(Optional)
P* Parameters:
ParParm5
=> Parameter 5
(Optional)
***************************************************************************
D Wx_CallPGM...
D
PR
OpDesc
D
ParPGM
Like(FldRef.PGM)
Const
D
ParParm1
Like(FldRef.TextVAR) Const
D
Options(*NoPass)
D
ParParm2
Like(FldRef.TextVAR) Const
D
Options(*NoPass)
D
ParParm3
Like(FldRef.TextVAR) Const
D
Options(*NoPass)
D
ParParm4
Like(FldRef.TextVAR) Const
D
Options(*NoPass)
D
ParParm5
Like(FldRef.TextVAR) Const
D
Options(*NoPass)
D
ParMode
Like(FldRef.ModeChar) Const
D
Options(*NoPass)
Source Code 190: Prototype Prozedur Wx_CallPGM - Direkter Aufruf CGI Programm
Parameter

ParPGM

Name des aufzurufenden Programms
Bibliothek kann nicht angegeben werden.
ParParam1 - ParParam5 Alphanumerischer Parameter-Wert
Optionaler Parameter
Es können bis zu 5 alphanumerische Parameter-Werte übergeben werden. Diese Parameter-Werte können in dem Folge-Programm verwendet werden.
Anstatt die gewünschten Parameter-Werte über die Funktion Wx_CallPGM() zu setzen,
ist es auch möglich die Werte über durch Aufruf einer der Funktionen
Wx_SetParmXXXX zu setzen (vergl. 4.13 Ermitteln und Setzen von Parameter-Werten)
Beispiele für den Aufruf
If GblKGID = *Zeros;
Wx_CallPGM('KXWRKNGR');
ElseIf Wx_isMode('TEILN');
Wx_CallPGM('KXWRKKOTN': %Char(GblKGID));
ElseIf Wx_isMode('UMSATZ');
Wx_CallPGM('KXUMSATZ': %Char(GblJAHR), GblDs.KundeNr, Wx_GetParmChar(3));
EndIf;
B EN UT ZERHA ND BUC H 158
Source Code 191: Aufruf Prozedur - Wx_CallPGM - Direkter Aufruf CGI Programm
B EN UT ZERHA ND BUC H 159
4.18 Change Programm
Für Change Programme stehen die folgenden WOPiXX-Prozeduren zur Verfügung:
Zuordnung
Aktion
ChangeTables
Prozeduren
Wx_GetParmChar()
Wx_GetParmArrChar()
Parameter
Wx_GetParmUC()
Wx_GetParmArrUC()
Wx_GetDBKeyInt()
Wx_GetDBKeyArrInt()
Wx_GetDBKeyDec()
Wx_GetDBKeyArrDec()
Key
Wx_GetDBKeyChar()
Wx_GetDBKeyArrChar()
Wx_GetDBKeyUC()
Wx_GetDBKeyArrUC()
WX_isModeDisplay()
GetInfo
WX_isModeChange()
WX_isModeAdd()
WX_isModeCopy()
WX_isModeDelete()
WX_isModeRename()
WX_isModeProperty()
Modus
WX_isModeRefresh()
WX_isModeSave()
WX_isModeApply()
WX_isModeUpdate()
WX_isModeOutput()
WX_isModeWrite()
Wx_isMode()
WX_CallPGM()
Öffnen
Wx_OpnHTMLChg()
Wx_HdrText()
Wx_HdrFile()
Definition Header
Wx_HdrFld()
Wx_HdrFileFld()
Reiter Wx_ChgNavTab()
Wx_ChgFile()
Wx_ChgFld()
Wx_ChgFileFld()
Wx_ManChgFld()
Wx_ManChgFldChar()
Wx_ManChgFldVarChar()
Wx_ManChgFldUC2()
Wx_ManChgFldVarUC2()
File/Fields
Wx_ManChgFldPack()
Definition
Wx_ManChgFldZone()
Wx_ManChgFldInt()
ChangeTables
Wx_ManChgFldFloat()
Wx_ManChgFldDate()
Wx_ManChgFldTime()
Wx_ManChgFldTimestamp()
Wx_ManChgFldRef()
Wx_ChgIf()
ConditionWx_ChgElse()
Group
Wx_ChgEndIf()
Input
Wx_GetChgInput()
Wx_FldErr()
Error Handling
Wx_MultFldErr()
Wx_isChgFldErr()
Wx_SetParmChar()
Wx_SetParmArrChar()
Wx_SetParmUC()
Ausgeben
Wx_SetParmArrUC()
Wx_RtnPrv()
Wx_WrtChgTbl()
Tabelle 4: WOPiXX-Prozeduren für Change-Programme
Bezeichnung Prozedur
Einzelnen alphanumerischen Parameter-Wert empfangen
Mehrere alphanumerische Parameter-Werte empfangen
Einzelnen Unicode-Parameter-Wert empfangen
Mehrere Unicode Parameter-Werte empfangen
Einzelnen ganzzahlingen Schlüssel-Wert empfangen
Mehrere ganzzahlige Schlüssel-Werte empfangen
Einzelnen dezimalen Schlüssel-Wert empfangen
Mehrere dezimale Schlüssel-Werte empfangen
Einzelnen alphanumerischen Schlüssel-Wert empfangen
Mehrere alphanumerische Schlüssel-Werte empfangen
Einzelnen Unicode-Schlüssel-Wert empfangen
Mehrere Unicode Schlüssel-Werte empfangen
Prüfen Modus = Anzeigen
Prüfen Modus = Ändern
Prüfen Modus = Hinzufügen
Prüfen Modus = Kopieren
Prüfen Modus = Löschen
Prüfen Modus = Rename
Prüfen Modus = Eigenschaften = Anzeigen
Prüfen Button Aktualisieren gedrückt / Nicht verwendet in RPG
Prüfen Button Sichern gedrückt
Prüfen Button Übernehmen gedrückt
Prüfen Update = Button Sichern oder Übernehmen gedrückt
Prüfen Modus = Anzeigen oder Property
Prüfen Modus = Hinzufügen oder Kopieren
Prüfen beliebigen Modus
Beliebiges CGI-Programm direkt aufrufen
Öffnen HTML für Change Table
Beliebigen Text in Header ausgeben
Definieren Datei für Header Informationen
Definieren alphanumer. Header-Feld
Definieren Datei und alphanumerisches Header-Feld
Definieren Reiter
Datei vorgeben
Felder aus Dateien definieren
Datei und Feld zusammen definieren
Definieren Workfield (nicht in Datei) - Alle Datentypen
Definieren alphanumer. Workfield - fixe Länge (nicht in Datei)
Definieren alphanumer. Workfield - variable Länge (nicht in Datei)
Definieren Workfield in Unicode - fixe Länge (nicht in Datei)
Definieren Workfield in Unicode - variable Länge (nicht in Datei)
Definieren Workfield gepackt (nicht in Datei)
Definieren Workfield gezont (nicht in Datei)
Definieren Integer-Workfield (nicht in Datei)
Definieren Fließkomma-Workfield (nicht in Datei)
Definieren Datums-Workfield (nicht in Datei)
Definieren Zeit-Workfield (nicht in Datei)
Definieren Zeitmarken-Workfield (nicht in Datei)
Definieren Workfield basierend auf einem Referenz-Feld
Beginn der Condition Group
Else/ElseIf der Condition Group
Ende der Condition Group
HTML auslesen
Error Handling auf Feld
Error Handling für mehrere Felder
Prüfen Fehler aufgetreten
Setzen alphanumerischen Parameter-Wert
Setzen von mehreren alphanumerischen Parameter-Werten
Setzen Unicode-Parameter-Wert
Setzen von mehreren Unicode-Parameter-Werten
Auf vorgelagertes Programm zurückgehen
Change Table ausgeben
B EN UT ZERHA ND BUC H 160
Für ein Change-Programm sind nicht immer alle WOPiXX-Prozeduren erforderlich.
Der Aufruf der WOPiXX-Prozeduren sollte jedoch (weitgehend) in der Reihenfolge, in der die Prozeduren
aufgelistet sind erfolgen.
Die blau eingefärbten Prozeduren können sowohl in Work- als auch in Change-Tables aufgerufen werden. Die übrigen Prozeduren können nur in Verbindung mit Change-Tables verwendet werden.
In einem Change-Programm müssen die folgenden Schritte abgedeckt sein

Sofern erforderlich Schlüssel-Werte aus vorgelagertem Work-Programm empfangen
 Prozeduren Wx_GetDBKeyXX

Sofern erforderlich Parameter aus vorgelagertem Programm empfangen
 Prozeduren Wx_GetParmXX

Sofern erforderlich Modus prüfen
 Prozeduren Wx_isModeXX

Sofern erforderlich abhängig vom Modus CGI-Programm aufrufen
 Prozedur Wx_CallPGM() und individuelle Programmierung

HTML-Dokument öffnen
 Prozedur Wx_OpnHTMLChg()

Verwendete Dateien/Tabellen/Views definieren
 Prozedur Wx_ChgFile()

Datensätze einlesen
 individuelle Programmierung

Ein-/Ausgabe Felder definieren
 Prozedur Wx_ChgFld()

HTML-Dokument ausgeben und erfasste Daten empfangen
 Prozedur Wx_GetChgInput()

Sofern erforderlich individuelle Eingabe-Prüfung und
Ausgabe von Fehler-Meldungen
 Prozeduren Wx_FldErr() oder Wx_MultFldErr()

Datensatz fortschreiben
 individuelle Programmierung

HTML-Dokument ausgeben bzw. auf vorheriges Programm zurückspringen
 Prozedur Wx_WrtChgTbl()
4.18.1 Template für Change-Programm
Ein Template für ein Change-Programm mit Copy-Strecken und den erforderlichen Prozedur-Aufrufen in
der erforderlichen Reihenfolge befindet sich in:

Bibliothek
WOPIX
B EN UT ZERHA ND BUC H 161


Quellen-Datei
QCPYLESRC
Member
EXCHGTEMP
Dieses Template kann kopiert und für die individuellen Change-Programme modifiziert werden.
4.18.2 Wx_OpnHTMLChg()
HTML Dokument öffnen
Für die Dialog-Ausgabe muss zunächst festgelegt werden, ob eine List-Anzeige (Work-Table) oder Detail-Anzeige (Change Table) erstellt werden soll. Die Unterscheidung erfolgt durch den Aufruf von unterschiedlichen Prozeduren für Work- oder Change-Tables.
Zum Erstellen einer Change-Table wird zunächst die Prozedur WX_OpnHTMLChg() (Open HTML
Document for Change Tables) aufgerufen.
In dieser Prozedur wird zunächst das Default-HTML-Template ermittelt und geöffnet. Anstatt des
Default-HTML-Templates zu verwenden, kann auch ein Individuelles HTML-Dokument verwendet werden. In diesem Fall muss jedoch dafür gesorgt werden, dass die Platz-Halter für Work- bzw. ChangeTables, Überschriften, Error-Messages etc., die von WOPiXX/Directweb ersetzt werden, in dem individuellen Dokument integriert sind.
Der Titel, der zur Laufzeit angezeigt werden soll wird als Parameter übergeben und kann wahlweise als
Text oder als Message-Id aus der bei dem Einrichten der Anwendung angegebenen Nachrichten-Datei
übergeben werden.
Das Folge-Programm (Detail-Anzeige oder eine weitere List-Anzeige) kann angegeben werden. Wird
kein Folge-Programm angegeben, so wird davon ausgegangen, dass das gleiche Programm erneut
aufgerufen werden soll. Dies ist bei Ein/Ausgabe-Programmen i.d.R. erforderlich, da das Programm
beim Senden des HTML-Dokuments an den Browser beendet wird und zum Empfangen der erfassten
Daten erneut aufgerufen wird. (Wird in der WOPiXX-Prozedur DW_GetChgInput() gesteuert).
Die Prozedur Wx_OpnHTMLChg() darf pro Change-Programm nur einmalig aufgerufen werden.
Prototype
***************************************************************************
P* Procedure name: Wx_OpnHTMLChg
P* Purpose:
Open HTML Document for CGI Change Program
P* Returns:
P* Parameters:
ParMsg
=> Message-Id Header or Header-Text
P* Parameters:
ParCGIPGM => Program to Call
P* Parameters:
ParHTMLDoc => HTML-Document
P*
--> Not Passed or *DEFAULT passed --> Default
P* Parameters:
ParOpnOpt => Additional Open Options
***************************************************************************
D Wx_OpnHTMLChg...
D
PR
OpDesc
D ParMsg
Like(FldRef.MsgText) Const
D PInCGIPGM
Like(FldRef.PGM)
Const
D
Options(*NoPass)
D PInHtmlDoc
Like(FldRef.HTMLDOC) Const
D
Options(*NoPass)
D PInOpnOpt
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
B EN UT ZERHA ND BUC H 162
Source Code 192: Prototype - Prozedur Wx_OpnHTMLChg() - HTML-Dokument für Change Tables öffnen
Parameter

ParTitle
Message-Id oder Text für Titel

PInCGIPGM Folge-Programm
Optionaler-Parameter
Wird kein CGI-Programm übergeben, wird das aktuelle Programm erneut aufgerufen.

PInHTMLDoc HTML-Dokument
Optionaler Parameter
Muss nur angegeben werden, wenn ein anderes als das Default HTML-Dokument
verwendet werden soll
Beispiele für den Aufruf
Wx_OpnHTMLChg('Artikel-Stamm');
Wx_OpnHTMLChg('Adress-Stamm': 'EXCHGAD01');
Wx_OpnHTMLChg('TOP0017': '': 'MyChgUmsatz.html');
Source Code 193: Prozedur Wx_OpnHTMLWrk - HTML Dokument für Worktables öffnen
4.18.3 Wx_ChgNavTab()
Reiter definieren
Die einzelnen Ein-/Ausgabe-Felder in Change Tables können unter Navigation Tabs/Reitern gruppiert
und zusammengefasst werden.
Über die Funktion Wx_ChgNavTab() wird ein Reiter definiert.
Alle Ein-/Ausgabe-Felder, die im Anschluss an diesen Reiter definiert werden, werden unter diesem Reiter angeordnet.
Wird ein weiterer Reiter definiert, werden die im Anschluss definierten Ein/Ausgabe-Felder unter diesem
neuen Reiter angeordnet.
Anmerkung:
In einer Change Table können nur maximal 100 Ein-/Ausgabe-Felder definiert werden (unabhängig davon, unter wie vielen Reitern die Ein/Ausgabe-Felder angeordnet werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgNavTab
P* Purpose:
Define Navigation Tabs for Change Table
P* Returns:
P* Parameters:
ParNavTab
=> Navigation Tab
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
B EN UT ZERHA ND BUC H 163
***************************************************************************
D Wx_ChgNavTab...
D
PR
OPDesc
D ParNavTab
Like(FldRefCGI.Options)
Const
D ParDescr
Like(FldRef.MsgData)
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
Source Code 194: Prototype - Procedure Wx_ChgNavTab() - Reiter definieren
Parameter

ParNavTab Eindeutiger (interner) Name für den Navigation Tab/Reiter

ParDescr

ParOptions Aufbereitungsoptionen für Navigation Tab/Reiter
Optionaler Parameter
Beschreibung/Text, der im Navigation Tab/Reiter angezeigt wird.
Die Beschreibung 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.
Beispiele für den Aufruf
Wx_ChgNavTab('Allgemein': 'KXD0037');
//Definition der Ein-/Ausgabe-Felder für Navigation Tab Allgemein
Wx_ChgNavTab('Ausgabe': 'Ausgabe');
//Definition aller Ein-/Ausgabe-Felder für Navigation Tab Ausgabe
Wx_ChgNavTab('Suche': 'KXD0047');
//Definition aller Ein-/Ausgabe-Felder für Navigation Tab Suche
Source Code 195: Aufruf Prozedur - Wx_ChgNavTab - Navigation Tabs/Reiter definieren
B EN UT ZERHA ND BUC H 164
■ Ein-/Ausgabe-Felder für
Navigation Tab: Allgemein
■ Ein-/Ausgabe-Felder für
Navigation Tab: Suche
■ Ein-/Ausgabe-Felder für
Navigation Tab: Ausgabe
Abbildung 23: Navigation Tabs/Reiter - Ergebnis aus Source Code 167
4.18.4 Wx_ChgBtn
Buttons definieren
In Change-Programmen können zusätzliche Buttons definiert werden, zum Aufruf von weiteren WebProgrammen.
Beim Klicken auf den entsprechenden Button wird das gewünschte Folge-Programm aktiviert.
Weiterhin besteht die Möglichkeit für alle Buttons eine Bestätigung anzufordern und auch für StandardButtons kann der Button-Text beliebig verändert werden.
Buttons in Change-Programmen werden über die Funktion Wx_ChgBtn() definiert.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgBtn
P* Purpose:
Define Buttons used in Change Tables
P* Returns:
P* Parameters:
ParButton
=> => Button --> Several Default *ITEMs (s
P*
Default Options: change, cancel, refresh
P*
save, copy, apply
P*
*DFT/*DEFAULT --> all of the listed above
B EN UT ZERHA ND BUC H 165
P* Parameters:
ParMsg
=> Message-Id or Button Text
P* Parameters:
ParOptions
=> Options
P* Parameters:
ParTblOptions => Options
***************************************************************************
D Wx_ChgBtn...
D
PR
OpDesc
D ParButton
Like(FldRef.MnuItm)
Const
D ParMsg
Like(FldRef.MsgData) Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass)
D ParTblOptions
Like(FldRef.TextVar) Const
D
Options(*NoPass)
‚
Source Code 196: Prototype - Procedure Wx_ChgNavTab() - Reiter definieren

Parameter
ParButton

ParMsg

ParOptions Optionen für Buttons z.B. Confirm für Bestätigung.
Name des Programms, das aufgerufen werden soll oder einer der Default-Werte
(Change, Cancel, Refresh, Save, Copy, Apply mit oder ohne führenden *) oder *DFT
oder *DEFAULT für alle Default Buttons.
Button-Text
Message-Id oder Message-Text
Beispiele für den Aufruf
Wx_ChgBtn('*Save':
'Bestätigen+Sichern': 'confirm');
Wx_ChgBtn('*CANCEL': 'MSG4711': 'confirm(Wollen Sie das wirklich?)');
Wx_ChgBtn('WXWRKLIBH': 'Bibliotheksliste');
Source Code 197: Aufruf Prozedur
Wx_ChgBtn
Definieren Buttons in Change Tables
B EN UT ZERHA ND BUC H 166
Button Bestätigen + Sichern
 Save Button, beliebiger Text und Bestätigung
Butten Verlassen
 Cancel Butten + beliebiger Text
Button Bibliotheksliste
 Aufruf Programm WXLIBLHDR
Abbildung 24: Wx_ChgBtn - Buttons in Change Tables definieren
4.18.5 Wx_ChgFile()
Datei für Change Table definieren
Um Ein-/Ausgabe-Felder, die in Dateien/Tabellen/Views hinterlegt sind, müssen zunächst die Dateien/Tabellen/Views über die Prozedur Wx_ChgFile() definiert werden.
Über die Funktion Wx_ChgFile() können bis zu 10 Dateien/Tabellen/Views definiert werden. Im Gegensatz zu den Work Tables bei denen eine Verknüpfung zwischen den einzelnen Tabellen angegeben werden musste, können bei Change Tables die Dateien/Tabellen/Views unabhängig voneinander
angegeben werden.
Sofern nur eine einzige Datei/Tabelle/View benötigt wird, kann diese auch direkt zusammen mit dem
ersten Feld über Funktion Wx_ChgFileFld() (vergl. 4.18.7 Wx_ChgFileFld() Datei und 1.Feld definieren)
definiert werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgFile
P* Purpose:
Define Files used for Change Tables
P*
--> Up to 10 Files can be specified
P* Returns:
P* Parameters:
ParFile1
=> File/Table 1
P* Parameters:
ParFile2
=> File/Table 2
(Optional)
P* Parameters:
ParFile3
=> File/Table 3
(Optional)
P* Parameters:
ParFile4
=> File/Table 4
(Optional)
P* Parameters:
ParFile5
=> File/Table 5
(Optional)
P* Parameters:
ParFile6
=> File/Table 6
(Optional)
P* Parameters:
ParFile7
=> File/Table 7
(Optional)
P* Parameters:
ParFile8
=> File/Table 8
(Optional)
B EN UT ZERHA ND BUC H 167
P* Parameters:
ParFile9
=> File/Table 9
(Optional)
P* Parameters:
ParFile10
=> File/Table 10
(Optional)
***************************************************************************
D Wx_ChgFile...
D
PR
OPDesc
D ParFile1
Like(FldRef.NameSQL)
Const
D ParFile2
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile3
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile4
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile5
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile6
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile7
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile8
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile9
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParFile10
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
Source Code 198: Prototype - Prozedur Wx_ChgFile - Dateien für Change Table definieren
Parameter

ParFile1

ParFile2
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.
ParFile10
Physische Datei/Tabelle/View
Optionaler Parameter
Kurzer System- oder langer SQL Name
Beispiel für den Aufruf
Wx_ChgFile('AuftrKopfX');
Wx_ChgFile('AuftrKopfX': 'AuftrPosX': 'KundSt');
Source Code 199: Beispiel Aufruf Prozedur WX_ChgFile()
4.18.6 Wx_ChgFld()
Dateien für Change Table definieren
Felder in Change Tables definieren
Ein-/Ausgabe-Felder, die in den zuvor definierten Tabellen hinterlegt sind, müssen mit der Prozedur
Wx_ChgFld() für WOPiXX registriert werden.
Damit die Daten zwischen WOPiXX und dem individuellen CGI-Programm ausgetauscht werden können, muss ein Pointer auf das gewünschte Feld, dessen Daten ausgetauscht werden sollen, an die
WOPiXX-Prozedur übergeben werden.
B EN UT ZERHA ND BUC H 168
WOPiXX ermittelt basierend auf der Feldbeschreibung den Datentypen und die Länge der übergebenen
Daten, übersetzt die Daten in HTML-Schreibweise und bringt die eingegebenen Daten im Feld-Format
zurück.
Anmerkung:
Alle Felder und Variablen, über die Informationen mit WOPiXX ausgetauscht werden, müssen als Datenstruktur-Unterfelder definiert werden!
Felder in Datenstrukturen werden vom RPG-Compiler nicht konvertiert.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgFld
P* Purpose:
Define Fields used for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No H
***************************************************************************
D Wx_ChgFld...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 200: Prototype - Prozedur Wx_FltFld - Definieren Filter-Felder
Parameter

ParField
Feld/Spalten-Name des Ein-/Ausgabe-Feldes
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.

ParPtr
Pointer auf das Ein-/Ausgabe-Feld
Das Ein-/Ausgabe-Feld muss in einer der zuvor definierten Tabellen vorhanden sein
und in einer Datenstruktur hinterlegt sein.
Übergabe erfolgt in Verbindung mit der Built-In-Funktion %ADDR().

ParDescr
Beschreibung, die links neben dem Filter-Feld angezeigt wird
Optionaler Parameter
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder nicht
oder leer oder mit *Blanks gefüllt übergeben.
Soll eine Beschreibung angezeigt werden, kann diese entweder direkt oder als Messa-
B EN UT ZERHA ND BUC H 169
ge-Id angegeben werden.
Bei Verwendung einer Message-Id muss die zugehörige Message-File in Directweb für
die Anwendung hinterlegt sein.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiel für den Aufruf
If GblKGId = *Zeros;
Wx_ChgFld('KGTINR': %Addr(GblDSKGP.KGTINR): 'KXD0022':
'required ExecSQL(ITPWITITP)');
EndIf;
Wx_ChgFld('KGINFOKZA': %Addr(GblDSKGP.KGINFOKZA): 'KXD0084':
'ExecSQL(ITPINFOKZ2) ' + LocDftOpt);
Wx_ChgFld('KGINFOKZB': %Addr(GblDSKGP.KGINFOKZB): '':
'ExecSQL(ITPINFOKZ2) ' + LocDftOpt);
//Event
//Info-Kennz.1
//Info-Kennz.2
Wx_ChgFld('KGSTRDAT': %Addr(GblDSKGP.KGSTRDAT): 'KXD0035':
//Startdatum
LocDftOpt + ' NoNewLin Required');
Wx_ChgFld('KGSTRTIM': %Addr(GblDSKGP.KGSTRTIM): 'KXD0036': LocDftOpt);//Startzeit
Wx_ChgFld('KGENDDAT': %Addr(GblDSKGP.KGENDDAT): 'KXD0039':
//Endedatum
LocDftOpt + ' NoNewLin Required');
Wx_ChgFld('KGENDTIM': %Addr(GblDSKGP.KGENDTIM): 'KXD0036': LocDftOpt);//Ende-Zeit
Wx_ChgFld('KGHOTEL'
Wx_ChgFld('KGHOTELSTR'
Wx_ChgFld('KGHOTELORT'
Wx_ChgFld('KGHOTELTEL'
Wx_ChgFld('KGANFAHRT'
:
:
:
:
:
%Addr(GblDSKGP.KGHOTEL):
'KXD0041');
//Hotel
%Addr(GblDSKGP.KGHOTELSTR);
//Hotel – Strasse
%Addr(GblDSKGP.KGHOTELORT);
//Hotel - Ort
%Addr(GblDSKGP.KGHOTELTEL);
//Hotel - Telefon
%Addr(GblDSKGP.KGANFAHRT): 'KXD0042'); //Hotel - Anfahrt
Source Code 201 : Aufruf Prozedur Wx_ChgFld()
Ein-/Ausgabe-Felder definieren
B EN UT ZERHA ND BUC H 170
Abbildung 25 : Definierte Ein/Ausgabe-Felder - Ergebnis aus Source Code 173
4.18.7 Wx_ChgFileFld()
Datei und 1.Feld definieren
Sofern nur auf eine einzige physische Datei/Tabelle/View zugegriffen wird, kann die Datei/Tabelle/View
über die Funktion WX_ChgFileFld() direkt zusammen mit dem ersten Ein-/Ausgabe-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_ChgFld() übergeben werden können.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgFileFld
P* Purpose:
Define File and Field for Change Tables
P* Returns:
P* Parameters:
ParFile
=> File
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
***************************************************************************
D Wx_ChgFileFld...
D
PR
OPDesc
D ParFile
Like(FldRef.NameSQL)
Const
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
B EN UT ZERHA ND BUC H 171
D
D
D
Options(*NoPass)
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
ParHelp
Const
Source Code 202: Prototype - Prozedur Wx_FltFileFld() - Definiere Filter-Datei und 1.Feld
Parameter

ParFile
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.
Analog Parameter ParFile1 in Funktion Wx_ChgFile()

ParField
Feld/Spalten-Name des Ein-/Ausgabe-Feldes
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.

ParPtr
Pointer auf das Ein-/Ausgabe-Feld
Das Ein-/Ausgabe-Feld muss in einer der angegebenen Datei/Tabelle/View vorhanden
und in einer Datenstruktur hinterlegt sein.
Übergabe erfolgt in Verbindung mit der Built-In-Funktion %ADDR().

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-Feld angezeigt wird
Optionaler Parameter
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder nicht
oder 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.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
B EN UT ZERHA ND BUC H 172
Wx_ChgFileFld('AdresseX': 'KundeNr': %Addr(DS.KundeNr): 'FLD0001':
'Range(000000, 999999) Right Required');
Wx_ChgFileFld('ArtikelBas': 'ArtikelNr': %Addr(ArtikelNr): 'FLD0008');
Source Code 203: Aufruf Prozedur Wx_FltFileFld() - Definieren Filter-File und 1. Feld
4.18.8 Definieren Arbeits-Felder/Variablen
Für Change Tables ist es nicht erforderlich, dass alle Ein-/Ausgabe-Felder in den definierten Dateien/Tabellen/Views vorhanden sind.
Für Change Tables können vielmehr auch Variablen, die in RPG entweder in den globalen oder lokalen
D-Bestimmungen definiert wurden in WOPiXX registriert werden.
Da der Datentyp und die Länge der Variablen nicht aus den definierten Tabellen ermittelt werden kann,
ist es erforderlich, diese Informationen bei der Definition der Variablen in WOPiXX anzugeben.
WOPiXX stellt mehrere Funktionen zur Registrierung von Arbeitsfeldern/Variablen in WOPiXX zur Verfügung:













Wx_ManChgFld() Definieren Variable - Alle Datentypen
Wx_ManChgFldChar()
Definieren alphanumerische Variable mit fixer Länge
Wx_ManChgFldVarChar() Definieren alphanumerische Variable mit variabler Länge
Wx_ManChgFldUC2()
Definieren Unicode-Variable mit fixer Länge
Wx_ManChgFldVarUC2() Definieren Unicode-Variable mit variabler Länge
Wx_ManChgFldPack()
Definieren gepackte Variable
Wx_ManChgFldZone()
Definieren gezonte Variable
Wx_ManChgFldInt()
Definieren Integer-Variable
Wx_ManChgFldFloat()
Definieren Fließkomma-Variable
Wx_ManChgFldDate()
Definieren Datums-Variable
Wx_ManChgFldTime()
Definieren Zeit-Variable
Wx_ManChgFldTimestamp()
Definieren Zeitmarken-Variable
Wx_ManChgFldRef()
Definieren Variable basierend auf einem Referenz-Feld
Anmerkung:
Wie auch die Ein-/Ausgabe-Felder, die in Dateien/Tabellen/Views hinterlegt
sind, müssen auch die Arbeits-Felder/Variablen als in RPG als Datenstruktur-Unterfelder definiert werden.
Datums- und Zeitfelder sollten mit Datums- bzw. Zeit-Format *ISO definiert
werden.
B EN UT ZERHA ND BUC H 173
4.18.8.1 Wx_ManChgFld()
typen
Definieren Variable für jeden Daten-
Mit der Prozedur Wx_ManChgFld() können Arbeitsfelder/Variablen mit jedem in RPG zulässigen Datentypen definiert werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFld
P* Purpose:
Define Fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParDataType => Data Type
P* Parameters:
ParLen
=> Length (Not Size!!!)
P* Parameters:
ParDecPos
=> Decimal Positions
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFld...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParDataType
Like(FldRef.DataType)
Const
D ParLen
10I 0 Options(*NoPass)
Const
D ParDecPos
3I 0 Options(*NoPass)
Const
D ParDatFmt
Like(FldRef.Text10V)
Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 204: Prozedur Wx_ManChgFld() - Definieren Variable für alle Datentypen

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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
B EN UT ZERHA ND BUC H 174
die Anwendung hinterlegt sein.

ParDataType Datentyp in dem das Arbeitsfeld/Variable definiert wurde
Der Datentyp kann entweder in DDS/RPG oder SQL-Schreibweise angegeben werden.
Gültige Datentypen sind:

Char / A
alphanumerisch mit fixer Länge
Single Byte Character Set (SBCS)

VarChar / A + Option Varying
alphanumerisch mit variabler Länge
Single Byte Character Set (SBCS)

Graphic / C
Unicode mit fixer Länge
Double Byte Character Set (DBCS) CCSID 13488

VarGraphic / C + Option Varying
Unicode mit variabler Länge
Double Byte Character Set (DBCS) CCSID 13488

Decimal / P
gepackt numerisch

Numeric / S
gezont numerisch

SmallInt /Integer / BigInt / I
Ganzzahlig/Integer

Float / Double / F
Fließkomma

Date / D
Datum

Time / T
Zeit

Timestamp / Z
Zeitmarke

ParLen

ParDecPos Dezimal-Positionen
Optionaler Parameter, nur für gepackte und gezonte numerische Arbeitsfelder/Variablen erforderlich.
Länge des Arbeitsfeldes/Variable
Optionaler Parameter, muss nur angegeben werden, sofern die Länge nicht allein
durch den Datentypen definiert wurde.
Ist die Länge erforderlich, muss die Anzahl der Zeichen (nicht Anzahl an Bytes) muss
übergeben werden.
Bei alphanumerischen und Unicode Feldern mit fixer Länge entspricht die Länge der
definierten Länge.
Bei alphanumerischen und Unicode Feldern mit variabler Länge entspricht die Länge
der maximalen Länge.
Bei gezonten und gepackten numerischen Feldern wird die Anzahl der Ziffern angegeben, d.h. Definition 11P 2  11
Sofern bei Integer- oder Fließkomma-Feldern der SQL-Datentyp übergeben wurde, ist
die Längenangabe nicht erforderlich.
Sofern bei Integer-Feldern der RPG Datentyp (I) angegeben wurde, muss die Länge so
wie in RPG definiert angegeben werden, d.h. 5I 05.
Sofern bei Fließkomma-Feldern der RPG Datentyp (F) verwendet wurde, muss die
Länge so wie in RPG definiert angegeben werden, d.h. 8F  8.
Für Datums-, Zeit- und Zeitmarken-Felder ist keine Längenangabe erforderlich.
B EN UT ZERHA ND BUC H 175

ParDatFmt

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Datums- und Zeit-Formate
Optionaler Parameter, nur für Datums- und Zeit-Arbeitsfelder/Variablen erforderlich.
Die Angabe ist bei Datums- und Zeit-Feldern auch nur dann erforderlich, wenn diese
Arbeitsfelder/Variablen in RPG nicht im *ISO-Format definiert wurden.
Gültige Werte für die Datums- und Zeit-Formate sind:

*ISO
ISO-Datums-Format =
JJJJ-MM-TT
ISO-Zeit-Format =
HH.MM.SS

*EUR
Europäisches Datum = TT.MM.JJJJ

*USA
Amerikanisches Datum =
MM/TT/JJJJ
Amerikansche Zeit =
HH:MMam/PM

*YMD
Jahr/Monat/Tag Format =
JJ-MM-TT

*DMY
Tag/Monat/Jahr Format =
TT.MM.JJ

*MDY
Monat/Tag/Jahr Format = MM/TT/JJ

*HMS
Stunde/Minute/Sekunde = HH:MM:SS
Beispiele für den Aufruf
Wx_ManChgFld('LandBez': %Addr(GblLandBez): '': 'VARCHAR':
%Size(GblLandBez) - 2: 0: '':
'DependList(File=LandBase, LaBez, LaLand=Land) '+
'output ');
Wx_ManChgFld('ERFDATE': %Addr(GblErfDate):
Wx_ManChgFld('TOTAL': %Addr(GblTotal):
'Output');
'Erfassungsdatum': 'Date');
'Gesamt': 'P': 11: 2: '':
Source Code 205: Aufruf Prozedur - Wx_ManChgFld() - Arbeitsfeld definieren
4.18.8.2 Wx_ManChgFldChar
fixer Länge
Def. alphanumerische Variable
Mit Hilfe der Prozedur Wx_ManChgFldChar() können alphanumerische Arbeitsfelder/Variablen mit fixer
Länge definiert werden.
B EN UT ZERHA ND BUC H 176
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von alphanumerischen Variablen mit fixer Länge erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldChar
P* Purpose:
Define fixed Length Character Fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldChar...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParLen
10I 0
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 206: Prototype - Prozedur Wx_ManChgFldChar() - Definieren alphanumerische Variable mit fixer Länge

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Länge des Arbeitsfeldes/Variable
Die zu übergebende Länge entspricht der Längen-Definition der Variablen.

Beispiel:
Definition 256A  Länge = 256
Die Länge kann direkt angegeben oder mit Hilfe der
Built-In-Funktion %LEN() ermittelt werden.
B EN UT ZERHA ND BUC H 177

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt.

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldChar('KBDelete': %Addr(GblDS.KBDelete): 'Löschen':
%Len(GblDS.KBDelete): 'CheckBox');
Wx_ManChgFldChar('KGINFOTEXA': %Addr(GblDS.KGINFOTEXA): '':
%Len(GblDS.KGINFOTEXA):
'DependList(File=INFOFV05, ININTX, +
ININCD=KGINFOKZA) output ');
Wx_ManChgFldChar('SPNAME':
%Addr(GblDS.SPNAME): '':
%Len(GblDS.SPNAME));
Source Code 207: Aufruf - Prozedur Wx_ManChgFldChar() - Definieren alphanumerische Variable mit fixer Länge
4.18.8.3 Wx_ManChgFldVarChar
ble variabler Länge
Def. alphanumerische Varia-
Mit Hilfe der Prozedur Wx_ManChgFldVarChar() können alphanumerische Arbeitsfelder/Variablen mit variabler Länge definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von alphanumerischen Variablen mit variabler Länge erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldVarChar
P* Purpose:
Define fixed Length Character Fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length (= Maximum Length)
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldVarChar...
B EN UT ZERHA ND BUC H 178
D
D
D
D
D
D
D
D
D
D
D
PR
ParField
ParPtr
ParMsg
ParLen
ParOptions
ParCond
ParHelp
Like(FldRef.NameSQL)
*
Like(FldRef.MsgData)
10I 0
Like(FldRefCGI.Options)
Options(*NoPass)
Like(FldRefCGI.Cond)
Options(*NoPass)
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
OPDesc
Const
Value
Const
Const
Const
Const
Const
Source Code 208: Prototype - Prozedur Wx_ManChgFldVarChar() - Definieren alphanumerische Variable mit variabler Länge

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.
Der Pointer muss auf die Variable incl. der beiden führenden unsichtbaren Bytes in denen die Länge gespeichert ist zeigen und nicht auf die Daten)

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Maximale Länge des Arbeitsfeldes/Variable
Die zu übergebende Länge entspricht der maximalen Länge, die bei der Definition der
Variablen angegeben wurde.

Beispiel:
Definition 256A varying  Länge = 256
Ab Release 7.1 kann die maximale Länge mit Hilfe der
Built-In-Funktion %LEN() ermittelt werden. 
%LEN(*Max: MyVar)
Vor Release 7.1 kann die maximale Länge mit Hilfe der
Built-In-Funktion %SIZE() abzüglich der führenden
Bytes ermittelt werden:
 %SIZE(MyVar) 2
Die maximale Länge kann auch direkt im Parameter
angegeben werden.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen
B EN UT ZERHA ND BUC H 179

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt.

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldVarChar('CSVFILE': %Addr(GblDS.CsvFile): 'KXD0093':
%Size(GblDS.CsvFile) - 2: 'required');
Wx_ManChgFldVarChar('LINKHOTEL': %Addr(GblDS.LinkHotel): '':
%Size(GblDS.LinkHotel) - 2: 'output iswww');
Wx_ManChgFldVarChar('GUTLAST': %Addr(GblDS.GutLast):
'Gutschrift/LastSchrift': %Size(GblDS.GutLast) - 2:
'ValuesList(' + %Trim(GblConstGut) + ', ' +
%Trim(GblConstLast) + ') +
required');
Source Code 209: Aufruf Prozedur Wx_ManChgFldVarChar() - Definieren alphanumerisches Feld mit variabler Länge
4.18.8.4 Wx_ManChgFldUC2
fixer Länge
Definieren Unicode-Variable mit
Mit Hilfe der Prozedur Wx_ManChgFldUC2() können Unicode-Arbeitsfelder/Variablen mit fixer Länge definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von Unicode-Variablen mit fixer Länge erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldUC2
P* Purpose:
Define fixed Length Unicode Fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldUC2...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParLen
10I 0
Const
B EN UT ZERHA ND BUC H 180
D
D
D
D
D
D
ParOptions
ParCond
ParHelp
Like(FldRefCGI.Options)
Options(*NoPass)
Like(FldRefCGI.Cond)
Options(*NoPass)
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
Const
Const
Const
Source Code 210: Prototype - Prozedur Wx_ManChgFldUC2() - Definieren Unicode-Variable mit fixer Länge

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Länge des Arbeitsfeldes/Variable
Die zu übergebende Länge entspricht der Längen-Definition der Variablen.

Beispiel:
Definition 256C  Länge = 256
Die Länge kann direkt angegeben oder mit Hilfe der
Built-In-Funktion %LEN() ermittelt werden.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt.

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldUC2('KundeName': %Addr(GblDS.KundeName): '':
%Len(GblDS.LimdeMa,e):
'DependList(File=Kundst, KNDNAM, +
B EN UT ZERHA ND BUC H 181
KNDNR=KundeNr) output ');
Wx_ManChgFldUC2('SPNAME':
%Addr(GblDS.SPNAME): '':
%Len(GblDS.SPNAME));
Source Code 211: Aufruf - Prozedur Wx_ManChgFldUC2() - Definieren Unicode-Variable mit fixer Länge
4.18.8.5 Wx_ManChgFldVarUC2
mit variabler Länge
Definieren Unicode-Variable
Mit Hilfe der Prozedur Wx_ManChgFldVarUC() können Unicode-Arbeitsfelder/Variablen mit variabler
Länge definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von Unicode-Variablen mit variabler Länge erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldVarUC2
P* Purpose:
Define fixed Length Unicode Fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length (= Maximum Length)
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldVarUC2...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParLen
10I 0
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 212: Prototype - Prozedur Wx_ManChgFldVarChar() - Definieren Unicode-Variable mit variabler Länge


Parameter
ParField
ParPtr
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.
Der Pointer muss auf die Variable incl. der (beiden) führenden unsichtbaren Bytes in
denen die Länge gespeichert ist zeigen und nicht auf die Daten)
B EN UT ZERHA ND BUC H 182

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Maximale Länge des Arbeitsfeldes/Variable
Die zu übergebende Länge entspricht der maximalen Länge, die bei der Definition der
Variablen angegeben wurde.

Beispiel:
Definition 256C varying  Länge = 256
Ab Release 7.1 kann die maximale Länge mit Hilfe der
Built-In-Funktion %LEN() ermittelt werden. 
%LEN(*Max: MyVar)
Die maximale Länge kann auch direkt im Parameter
angegeben werden.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt.

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldVarUC2('LINKHOTEL': %Addr(GblDS.LinkHotel): '':
%Size(GblDS.LinkHotel) - 2: 'output iswww');
Wx_ManChgFldVarUC2('GUTLAST': %Addr(GblDS.GutLast):
'Gutschrift/LastSchrift': %Size(GblDS.GutLast) - 2:
'ValuesList(' + %Trim(GblConstGut) + ', ' +
%Trim(GblConstLast) + ') +
required');
Source Code 213: Aufruf Prozedur Wx_ManChgFldVarUC2() - Definieren Unicode-Variable mit variabler Länge
B EN UT ZERHA ND BUC H 183
4.18.8.6 Wx_ManChgFldPack()
sche Variable
Definieren gepackte numeri-
Mit Hilfe der Prozedur Wx_ManChgFldPack() können gepackte numerische Arbeitsfelder/Variablen definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von gepackten numerischen Variablen erforderlich sind angegeben werden.
Prototype
******************************************************************************
P* Procedure name: Wx_ManChgFldPack
P* Purpose:
Define packed numeric fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length (Not! Size)
P* Parameters:
ParDecPos
=> Decimal Positions
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
******************************************************************************
D Wx_ManChgFldPack...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
Fie
D ParPtr
*
Value
Poi
D ParMsg
Like(FldRef.MsgData)
Const
Mes
D ParLen
10I 0
Const
Len
D ParDecPos
3U 0 Options(*NoPass)
Const
Dec
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
Con
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
Hel
D
Options(*NoPass: *Trim)
Source Code 214: Prototype - Prozedur Wx_ManChgFldPack() - Definieren gepackte numerische Variable
Parameter

ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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
B EN UT ZERHA ND BUC H 184
die Anwendung hinterlegt sein.

ParLen

ParDecPos Dezimal-Positionen
Optionaler Parameter
Sofern der Parameter nicht angegeben wurde, werden 0 (*Zeros) Nachkommastellen
angenommen.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Länge des Arbeitsfeldes/Variable
Bei gezonten und gepackten numerischen Variablen/Arbeitsfeldern wird die Anzahl der
Ziffern angegeben,

Beispiel:
Definition 11P 2  11
Beispiele für den Aufruf
Wx_ManChgFldPack('NUMDATE': %Addr(GblDS.NumDate): 'Datum':
%Len(GblDS.NumDate): *Zeros: ' Output DateNum');
Wx_ManChgFldPack('TOTAL': %Addr(GblDS.Total): 'Gesamt in Euro': 11: 2);
Source Code 215: Aufruf Prozedur Wx_ManChgFldPack() - Definieren gepackt numerische Variablen
4.18.8.7 Wx_ManChgFldZone()
Variable
Definieren gezonte numerische
Mit Hilfe der Prozedur Wx_ManChgFldZone() können gezonte numerische Arbeitsfelder/Variablen definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von gezonten numerischen Variablen erforderlich sind angegeben werden.
Prototype
B EN UT ZERHA ND BUC H 185
***************************************************************************
P* Procedure name: Wx_ManChgFldZone
P* Purpose:
Define Zoned numeric fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length (Not! Size)
P* Parameters:
ParDecPos
=> Numeric Positions
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldZone...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParLen
10I 0
Const
D ParDecPos
3U 0 Options(*NoPass)
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 216: Prototype - Prozedur Wx_ManChgFldZone() - Definieren gezonte numerische Variable
Parameter

ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Länge des Arbeitsfeldes/Variable
Bei gezonten und gepackten numerischen Variablen/Arbeitsfeldern wird die Anzahl der
Ziffern angegeben,

Beispiel:
Definition 11S 2  11

ParDecPos Dezimal-Positionen
Optionaler Parameter
Sofern der Parameter nicht angegeben wurde, werden 0 (*Zeros) Nachkommastellen
angenommen.
B EN UT ZERHA ND BUC H 186

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldZone ('NUMDATE': %Addr(GblDS.NumDate): 'Datum':
%Len(GblDS.NumDate): *Zeros: ' Output DateNum');
Wx_ManChgFldZone('TOTAL': %Addr(GblDS.Total): 'Gesamt in Euro': 11: 2);
Source Code 217: Aufruf Prozedur Wx_ManChgFldZone() - Definieren gezont numerische Variablen
4.18.8.8 Wx_ManChgFldInt()
Definieren ganzzahlige Variable
Mit Hilfe der Prozedur Wx_ManChgFldInt() können ganzzahlige (Integer) Arbeitsfelder/Variablen definiert
werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von ganzzahligen (Integer) Variablen erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldInt
P* Purpose:
Define Integer numeric fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length (Not! Size)
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldInt...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParLen
10I 0
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
B EN UT ZERHA ND BUC H 187
D
D
D
Options(*NoPass)
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
ParHelp
Const
Source Code 218: Prototype - Prozedur Wx_ManChgFldInt() - Definieren ganzzahlige/Integer-Variable
Parameter

ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Länge des Arbeitsfeldes/Variable
Zur Definition von Integer-Variablen sind nur die folgenden Längenangaben zulässig:

Small Integer
Länge = 5

Integer
Länge = 10

Big Integer
Länge = 20

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldInt ('Counter': %Addr(GblDS.Counter): 'Zähler':
%Len(GblDS.Counter): ' Output');
Wx_ManChgFldInt('Stueck': %Addr(GblDS.Stueck): 'Anzahl': 10);
Source Code 219: Aufruf Prozedur Wx_ManChgFldInt() - Definieren ganzzahlige/Integer Variablen
B EN UT ZERHA ND BUC H 188
4.18.8.9 Wx_ManChgFldFloat()
Definieren Fließkomma-Variable
Mit Hilfe der Prozedur Wx_ManChgFldFloat() können Fließkomma-Arbeitsfelder/Variablen definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von Fließkomma-Variablen erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldFloat
P* Purpose:
Define Float numeric fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParLen
=> Length (Not! Size)
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldFloat...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D ParLen
10I 0
Const
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 220: Prototype - Prozedur Wx_ManChgFldFloat() - Definieren Fließkomma-Variable

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-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.

ParLen
Länge des Arbeitsfeldes/Variable
Zur Definition von Fließkomma-Variablen sind nur die folgenden Längenangaben zuläs-
B EN UT ZERHA ND BUC H 189
sig:

Float

Double
Länge = 4
Länge = 8

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet. Beispiele für den Aufruf
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldFloat('MyFloat': %Addr(GblDS.MyFloat): 'TXT0018':
%Len(GblDS.MyFloat): ' Output');
Wx_ManChgFldFloat('MyFloat2': %Addr(GblDS.MyFloat2): 'Beschreibung': 8);
Source Code 221: Aufruf Prozedur Wx_ManChgFldFloat() - Definieren Fließkomma-Variable
4.18.8.10
Wx_ManChgFldDate()
Variable
Definieren
Datums-
Mit Hilfe der Prozedur Wx_ManChgFldDate() können Datums-Arbeitsfelder/Variablen definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von Datums-Variablen erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldDate
P* Purpose:
Define Date fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParDatFmt
=> Date Format
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldDate...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
B EN UT ZERHA ND BUC H 190
D
D
D
D
D
D
D
D
D
D
D
ParPtr
ParMsg
*
PInDatFmt
ParOptions
ParCond
ParHelp
Like(FldRef.MsgData)
Options(*NoPass)
Like(FldRef.Text10V)
Options(*NoPass)
Like(FldRefCGI.Options)
Options(*NoPass)
Like(FldRefCGI.Cond)
Options(*NoPass)
Like(FldRefCGI.Help)
Options(*NoPass: *Trim)
Value
Const
Const
Const
Const
Const
Source Code 222: Prototype - Prozedur Wx_ManChgFldDate() - Definieren Datums-Variable

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-Feld angezeigt wird
Optionaler Parameter
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder nicht,
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.

ParDatFmt
Datums-Format
Optionaler Parameter
Wird das Datumsformat nicht angegeben, so wird davon ausgegangen, dass das
*ISO-Format verwendet wird.
Die folgenden Datumsformate sind zulässig

*ISO
ISO-Datums-Format =
JJJJ-MM-TT

*EUR
Europäisches Datum = TT.MM.JJJJ

*USA
Amerikanisches Datum =
MM/TT/JJJJ

*YMD
Jahr/Monat/Tag Format =
JJ-MM-TT

*DMY
Tag/Monat/Jahr Format =
TT.MM.JJ

*MDY
Monat/Tag/Jahr Format = MM/TT/JJ

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt
B EN UT ZERHA ND BUC H 191

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldDate('FAKTURADAT': %Addr(GblDS.FakturaDat): 'KXD0065');
Wx_ManChgFldDate('StornoDat': %Addr(GblDS.StornoDat):
'Storno-Datum': '*EUR': ' Output ');
Source Code 223: Aufruf Prozedur Wx_ManChgFldDate() - Definieren Datums-Variable
4.18.8.11
Wx_ManChgFldTime()
Definieren Zeit-Variable
Mit Hilfe der Prozedur Wx_ManChgFldTime() können Zeit-Arbeitsfelder/Variablen definiert werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von Zeit-Variablen erforderlich sind angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldTime
P* Purpose:
Define Time fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No H
***************************************************************************
D Wx_ManChgFldTime...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 224: Prototype - Prozedur Wx_ManChgFldTime() - Definieren Zeit-Variable

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf je-
B EN UT ZERHA ND BUC H 192
doch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-Feld angezeigt wird.
Optionaler Parameter
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder nicht,
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.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldTime('FAKTURATIM': %Addr(GblDS.FakturaTim): 'KXD0067');
Wx_ManChgFldTime('StornoTim': %Addr(GblDS.StornoTim): 'Storno-Zeit':
' Output ');
Source Code 225: Aufruf Prozedur Wx_ManChgFldTime() - Definieren Zeit-Variable
4.18.8.12
Wx_ManChgFldTimestamp()
Variable
Definieren
Zeit-
Mit Hilfe der Prozedur Wx_ManChgFldTimestamp() können Zeitmarken-Arbeitsfelder/Variablen definiert
werden.
Im Gegensatz zur Definition mit Prozedur Wx_ManChgFld() müssen nur die Informationen, die zur Erstellung von Zeitmarken-Variablen erforderlich sind angegeben werden.
Prototype
B EN UT ZERHA ND BUC H 193
***************************************************************************
P* Procedure name: Wx_ManChgFldTimestamp
P* Purpose:
Define Timestamp fields manually for Change Table
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No Help
***************************************************************************
D Wx_ManChgFldTimestamp...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 226: Prototype - Prozedur Wx_ManChgFldTimestamp() - Definieren Zeitmarken-Variable

Parameter
ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParDescr
Beschreibung, die links neben dem Ein-/Ausgabe-Feld angezeigt wird.
Optionaler Parameter
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder nicht,
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.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
B EN UT ZERHA ND BUC H 194
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beispiele für den Aufruf
Wx_ManChgFldTimestamp('FAKTURATSP': %Addr(GblDS.FakturaTSp): 'KXD0060');
Wx_ManChgFldTimestamp('StornoTSP': %Addr(GblDS.StornoTSP): 'Storno-Datum/Zeit':
' Output ');
Source Code 227: Aufruf Prozedur Wx_ManChgFldTimestamp() - Definieren Zeitmarken-Variable
4.18.8.13
Wx_ManChgFldRef()
rend auf Referenz-Feld
Definieren Variable basie-
Mit Hilfe der Prozedur Wx_ManChgFldRef() können Arbeitsfelder/Variablen basierend auf der Definition
von anderen Feldern definiert werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ManChgFldRef
P* Purpose:
Define Fields manually with field reference for Change Ta
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParPtr
=> Pointer to the original Field
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParOptions => Options
P* Parameters:
ParCond
=> Conditions
P* Parameters:
ParNavTab
=> Navigation Tabs
P* Parameters:
ParFile
=> File
P* Parameters:
ParLib
=> Library
P* Parameters:
ParHelp
=> Help
--> Special Value *NONE = No H
***************************************************************************
D Wx_ManChgFldRef...
D
PR
OPDesc
D ParField
Like(FldRef.NameSQL)
Const
D ParPtr
*
Value
D ParRefField
Like(FldRef.NameSQL)
Const
D ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass)
D ParOptions
Like(FldRefCGI.Options)
Const
D
Options(*NoPass)
D ParCond
Like(FldRefCGI.Cond)
Const
D
Options(*NoPass)
D ParNavTab
Like(FldRef.Text15V)
Const
D
Options(*NoPass)
D ParFile
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParLib
Like(FldRef.Lib)
Const
D
Options(*NoPass)
D ParHelp
Like(FldRefCGI.Help)
Const
D
Options(*NoPass: *Trim)
Source Code 228: Prototype - Prozedur Wx_ManChgFldRef() - Definieren Variable über Referenz-Feld
Parameter
B EN UT ZERHA ND BUC H 195

ParField
Eindeutige Kennung des Arbeitsfelds/Variable
Die eindeutige Kennung muss nicht dem Namen der Variablen entsprechen, darf jedoch innerhalb der Change Table nur einmalig definiert werden.

ParPtr
Pointer auf das Arbeitsfeld/Variable
Das Arbeitsfeld/Variable muss als Datenstruktur-Unterfeld definiert sein.

ParRefField Referenz-Feld
Das Referenz-Feld muss in einer der Dateien/Tabellen/Views, die über die Funktion
Wx_ChgFile() definiert wurden hinterlegt sein.

ParDescr

ParOptions Aufbereitungsoptionen
Optionaler Parameter
Vergl. 4.3.7 Aufbereitungsoptionen für Detail-Anzeigen

ParCond
Bedingungen unter denen das Ein-/Ausgabe-Feld angezeigt werden soll.
Optionaler Parameter
Werden in JavaScript konvertiert und zur Laufzeit ausgeführt

ParHelp
Bedienerhilfe
Optionaler Parameter
Kann wahlweise direkt als Text oder Message-Id angegeben werden. Als Hilfe-Text
wird der Level 2 Message-Text verwendet.
Sonderwert *NONE = automatische Ermittlung der Bediener-Hilfe unterbinden
Beschreibung, die links neben dem Ein-/Ausgabe-Feld angezeigt wird.
Optionaler Parameter
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder nicht,
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.
Beispiele für den Aufruf
Wx_ManChgFldTimestamp('FAKTURATSP': %Addr(GblDS.FakturaTSp): 'KXD0060');
Wx_ManChgFldTimestamp('StornoTSP': %Addr(GblDS.StornoTSP): 'Storno-Datum/Zeit':
' Output ');
Source Code 229: Aufruf Prozedur Wx_ManChgFldRef() - Definieren Variable über Referenz-Feld
4.18.9 Bedienerhilfe
Für Ein-/Ausgabe-Felder können individuelle Bedienerhilfe-Texte definiert werden.
Default: Der Level 2 Message-Text der Feldüberschrift wird als Bedienerhilfe ausgegeben.
B EN UT ZERHA ND BUC H 196
Die Bedienerhilfe kann zum einen über einen optionalen Parameter in allen Definitions-Funktionen für
Change-Tables (z.B. Wx_ChgFld() oder Wx_ManChgFldChar()) angegeben werden.
Alternativ kann die Bedienerhilfe die Funktion Wx_ChgHelp() für einzelne Felder eingebunden werden.
Dabei kann wahlweise direkt ein Text oder eine Message-Id übergeben werden. Wird eine Message-Id
übergeben wird per Default der Level 2-Message-Text dieser Message-Id ermittelt und als Hilfe-Text
ausgegeben.
Default: Wurde weder ein Message-Text noch eine Message-Id angegeben, so wird, sofern eine
Feldbeschreibung als Message-Id angegeben wurde der Level 2 Message-Text als Bedienerhilfe
ausgegeben. Dieser Prozess erfolgt automatisch, ohne Angabe eines Schlüssel-Wortes.
Soll diese Automatik unterbunden werden, bzw. kein Hilfe-Text erwünscht sein, so kann in dem optionalen Parameter für die Bedienerhilfe der Sonderwert *NONE übergegeben werden. Das Hinzufügen der
Bedienerhilfe kann ebenfalls durch den Aufruf der Funktion Wx_ChgNoHelp() entweder für ein einzelnes
Feld oder alle Felder unterbunden werden.
Sofern für ein Ein/Ausgabe-Feld eine Bedienerhilfe vorliegt, wird die Ausgabe des Fragezeichen-Icons
gekennzeichnet. Bei der Mouse Over-Aktion wird der Hilfe-Text angezeigt.
■ = Bedienerhilfe vorhanden
Abbildung 26: Bedienerhilfe in Change Programmen
B EN UT ZERHA ND BUC H 197
4.18.9.1 Wx_ChgHelp
Bedienerhilfe hinzufügen
Mit Hilfe der Funktion Wx_ChgHelp können in Change-Programmen Hilfe-Texte zugewiesen werden.
Prototyp
***************************************************************************
P* Procedure name: Wx_ChgHelp
P* Purpose:
Add individual help to a change field
P*
If a Message-Id is passed the 2nd Level Message Text will
P*
be used as help text
P*
If a Message-Text is passed this text will be used as Hel
P* Returns:
P* Parameters:
ParField
=> Field
P* Parameters:
ParMsg
=> Help text or message id
P* Parameters:
ParMsgTxt
=> Variable Message Texte
P*
(Optional if a message id is specified)
***************************************************************************
D Wx_ChgHelp...
D
PR
OpDesc
D
ParField
Like(FldRef.NameSQL)
Const
D
Options(*Trim)
D
ParMsg
Like(FldRefCGI.Help)
Const
D
ParMsgTxt
Like(FldRef.MsgText)
Const
D
Options(*NoPass: *Trim)
Source Code 230: Prototype - Procedure Wx_ChgHelp - Bedienerhilfe hinzufügen
Parameter

ParField
Eindeutige Kennung des Arbeitsfelds/Variable

ParMsg

ParMsgTxt Variable Message-Textes
Sofern eine Message-Id übergeben wurde, können zusätzlich Variable Message-Texte
(die die Platzhalter in dem Message-Text ersetzen angegeben werden)
Bedienerhilfe oder Message-Id der Bedienerhilfe
Bedienerhilfe wird aus Level 2 Message-Text der Message-Id ermittelt
Beispiele für den Aufruf
Wx_ChgHelp('ARTNR': 'ABC1234');
Wx_ChgHelp('ARTNR': 'ABC1234': MyFld1 + ' ' + MyFld2);
Wx_ChgHelp('KUNDENR': 'Dies ist ein Hilfetext für die Kunden-Nr. ');
Source Code 231: Aufruf Prozedur Wx_ChgHelp() - Bedienerhilfe hinzufügen
4.18.9.2 Wx_ChgNoHelp
Bedienerhilfe unterbinden
Mit der Funktion Wx_ChgNoHelp() kann die automatische Ermittlung der Bedienerhilfe für einzelne Felder oder alle Felder unterbunden werden.
B EN UT ZERHA ND BUC H 198
Prototyp
*************************************************************************
P* Procedure name: Wx_ChgNoHelp
P* Purpose:
Prevents from adding automatic help texts
P* Returns:
P* Parameters:
ParField
=> Field
(Optional)
P*
Not Passed or Special Value *ALL
P*
 No Help Text for any field
*************************************************************************
D Wx_ChgNoHelp...
D
PR
OpDesc
D
ParField
Like(FldRef.NameSQL)
Const
D
Options(*NoPass: *Trim)
Source Code 232: Prototype Procedure Wx_ChgNoHelp - Automatische Ermittlung der Bedienerhilfe unterbinden
Parameter

ParField
Eindeutige Kennung des Arbeitsfelds/Variable
(Optional)
Nicht übergeben oder Sonderwert *NONE  Bedienerhilfe wird für alle Felder unterbunden
Beispiele für den Aufruf
Wx_ChgNoHelp('ARTNR');
Wx_ChgNoHelp();
Source Code 233: Aufruf Procedure Wx_ChgNoHelp - Automatische Ermittlung der Bedienerhilfe unterbinden
4.18.10 Bedingte Ein-/Ausgabe-Felder
Condition Group
WOPiXX stellt mehrere Funktionen zur Verfügung, mit deren Hilfe JavaScript-Code erzeugt wird, der zur
Laufzeit dafür sorgt, dass Ein-/Ausgabe-Felder nur unter bestimmten Bedingungen angezeigt werden.
Die Bedingungen unter denen die Ein-/Ausgabe-Felder angezeigt werden können auch bei den Prozeduren Wx_ChgFileFld(), Wx_ChgFld() sowie allen Prozeduren durch die Arbeits-Felder/Variablen definiert
werden können (z.B. Wx_ManChgFld()) über einen optionalen Parameter hinzugefügt werden.
Um zu vermeiden, dass die gleichen Bedingungen mehrfach angegeben werden müssen, wurden Prozeduren erstellt, über die die Bedingung einmalig festgelegt wird. Alle im Folgenden definierten Ein/Ausgabe-Felder werden unter der gleichen Bedingung angezeigt.
WOPiXX erlaubt verschachtelte Condition-Groups bzw. If-Anweisungen.
Die folgenden Prozeduren werden zur Steuerung zur Verfügung gestellt:



Wx_ChgIf() If-Anweisung = Beginn der Condition Group
(vergl. 4.18.10.1 Wx_ChgIf() Beginn der Condition Group)
Wx_ChgElse() Else-Bedingung
(vergl. 4.18.10.2 Wx_ChgElse() Else-Anweisung)
Wx_ChgEndIf()EndIf-Anweisung = Ende der Condition Group
B EN UT ZERHA ND BUC H 199
(vergl. 4.18.10.3 Wx_ChgEndIf()
Ende Condition Group)
Condition Groups können verschachtelt werden. Die Verschachtelung, sowie die Anzahl der Wx_ChgIf()Prozedur-Aufrufe und die Anzahl der Wx_ChgEndIf()-Prozedur-Aufrufe werden zur Laufzeit geprüft. Im
Fehlerfall wird eine Fehlermeldung ausgegeben.
In den Bedingungen können nur Ein-/Ausgabe-Felder geprüft werden, die zuvor mit WOPiXX-Funktionen
definiert wurden.
Die Bedingungen können in RPG oder CL oder Java-Script-Schreibweise angegeben werden. (vergl.
4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern).
4.18.10.1
Wx_ChgIf()
Beginn der Condition Group
Mit Hilfe der Prozedur Wx_ChgIf() wird die erste Bedingung definiert. Die Bedingung wird in Java-ScriptCode übersetzt und steuert zur Laufzeit die Anzeige der Ein-/Ausgabe-Felder.
Alle Felder und Variablen, die nach dem Aufruf der Prozedur Wx_ChgIf() definiert werden, werden unter
den gleichen Bedingungen angezeigt.
Wird die Prozedur Wx_ChgIf() erneut, mit einer weiteren Bedingung aufgerufen, werden alle im Anschluss definierten Felder und Variablen nur dann angezeigt, wenn beide Bedingungen erfüllt sind.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgIf
P* Purpose:
Begin IF-Condition - Change
P* Returns:
P* Parameters:
ParCond
=> Condition
***************************************************************************
D Wx_ChgIf...
D
PR
OpDesc
D ParCond
Like(FldRefCGI.Cond) Const
Source Code 234: Prototype - Prozedur Wx_ChgIf - Festlegen von Bedingungen
Parameter:

ParCond
Bedingungen (vergl. 4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern)
4.18.10.2
Wx_ChgElse()
Else-Anweisung
Über die Prozedur Wx_ChgElse() kann eine ELSE-Anweisung definiert werden.
Alle Ein-/Ausgabe-Felder, die nach Ausführung der Prozedur Wx_ChgElse() über WOPiXX-Funktionen
definiert werden, werden zur Laufzeit unter den inversen Bedingungen der zuvor definierten IFAnweisung angezeigt.
B EN UT ZERHA ND BUC H 200
Durch die Angabe von weiteren Bedingungen können Else-If-Bedingungen definiert werden.
Innerhalb der Else-Anweisungen können weitere Condition Groups definiert werden.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgElse
P* Purpose:
Begin Else(IF)-Condition - Change
P* Returns:
P* Parameters:
ParCond
=> Condition
***************************************************************************
D Wx_ChgElse...
D
PR
OpDesc
D ParCond
Like(FldRefCGI.Cond) Const
D
Options(*NoPass)
Source Code 235: Prototype - Prozedur Wx_ChgElse - Else-Bedingungen
Parameter

ParCond
4.18.10.3
Bedingungen (vergl. 4.5 Bedingtes Anzeigen von Ein-/Ausgabe-Feldern)
Optionaler Parameter
Durch Angabe von Bedingungen in der Else-Funktion wird eine ElseIf-Funktionalität erreicht.
Wx_ChgEndIf()
Ende Condition Group
Durch den Aufruf der Prozedur Wx_ChgEndIf() wird die äußerste Condition Group beendet.
Zu jedem Wx_ChgIf()-Prozedur-Aufruf, muss auch ein Wx_ChgEndIf()-Prozedur-Aufruf ausgeführt werden. Stimmt die Anzahl der Wx_ChgIf()-Prozedur-Aufrufe mit der Anzahl der Wx_ChgEndIf()-ProzedurAufrufe nicht überein, tritt zur Laufzeit ein Fehler auf.
Alle Ein-/Ausgabe-Felder, die mit WOPiXX-Funktionen nach der Ausführung der Prozedur
Wx_ChgEndIf() definiert werden, werden ohne Berücksichtigung der Bedingungen aus der beendeten
Condition Group angezeigt.
Prototype
***************************************************************************
P* Procedure name: Wx_ChgEndIf
P* Purpose:
End IF-Condition - Change
P* Returns:
P* Parameters:
***************************************************************************
D Wx_ChgEndIf...
D
PR
OpDesc
Source Code 236: Prototype - Prozedur Wx_ChgEndIf - Ende der If-Anweisung
Parameter

Für die Prozedur Wx_ChgEndIf() sind keine Parameter erforderlich
B EN UT ZERHA ND BUC H 201
4.18.10.4
Condition Group Beispiel
Wx_ChgIf('STATUS = 01');
Wx_ChgFld('AKBESTMGE': 'Bestell-Menge');
//...weitere Ein-/Ausgabe-Felder für die gleiche Bedingung
Wx_ChgElse('STATUS = 02');
Wx_ChgFld('AKLIEFMGE': 'Liefer-Menge');
//...weitere Ein/Ausgabe-Felder für die ElseIf-Bedingung
Wx_ChgElse();
Wx_ChgFld('AKTEILMGE': 'Teillieferung');
//...weitere Ein-/Ausgabe-Felder für die Else-Bedingung
Wx_ChgEndIf();
Source Code 237: Aufruf Prozeduren Wx_ChgIf(), Wx_ChgElse(), Wx_ChgEndIf() - Bedingte Ein-/Ausgabe-Felder
4.18.11 Definition von HTML-Tabellen
Innerhalb von Change Tables können Ein-/Ausgabe-Felder in Tabellen angeordnet werden. Die Definition der Tabellen bzw. der Aufruf der entsprechenden WOPiXX-Funktionen erfolgt unmittelbar vor der Definition des ersten (Ein-/Ausgabe-)Feldes innerhalb der Tabelle.
Zur Tabellen-Definition werden die folgenden Prozeduren zur Verfügung gestellt.


Wx_HTMLTbl
Definition der Tabelle  Anzahl Zeilen/Spalten
Wx_HTMLTblColHdg Definition der Spalten
4.18.11.1
Wx_HTMLTbl
Definition Tabelle
Über die Funktion Wx_HTMLTbl wird die HTML Tabelle definiert, d.h. es wird angegeben wie viele Zeilen
und Spalten in dieser Tabelle hinterlegt sein sollen.
Außer der Anzahl der Zeilen und Spalten sollen in Zukunft noch weitere Kriterien angegeben werden
können. Die entsprechenden Parameter sind bereits als optionale Parameter vorhanden.
Mit jedem Aufruf der Prozedur Wx_HTMLTbl wird eine neue Tabelle definiert.
Prototype
***************************************************************************
P* Procedure name: Wx_HTMLTbl
P* Purpose:
Define HTML Table within a Change table
P*
P* Returns:
P* Parameters:
ParTableName
=> Table Name
P* Parameters:
ParNbrCols
=> Number of Columns (currently 1-32 colums)
P* Parameters:
ParNbrRows
=> Number of Rows
P* Parameters:
ParMsg
=> Header Text
P* Parameters:
ParOptions
=> Options
B EN UT ZERHA ND BUC H 202
************************************************************************
D Wx_HTMLTbl...
D
PR
OpDesc
D
ParTableName
Like(FldRef.NameSQL)
Const
D
Options(*Trim)
D
ParNbrCols
10I 0
Const
D
ParNbrRows
10I 0
Const
D
ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass: *Trim)
D
ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass: *Trim)
Source Code 238: Prototyp Prozedur Wx_HTMLTbl()
Definition HTML Tabelle (Header)
Die Prozedur erfordert 3 Parameter. Über zwei optionale Parameter können in Zukunft zusätzliche Informationen übergeben werden.

ParTableName: Eindeutiger Tabellen-Namen
Jede Tabelle erhält innerhalb der Change Table einen eindeutigen Namen über den sie
intern verwaltet wird.
Der Tabellen-Name ist frei wählbar. Groß/Kleinschreibung wird nicht berücksichtigt.

ParNbrCols: Anzahl der Spalten innerhalb der Tabelle
Innerhalb einer Tabelle können aktuell bis zu 32 Spalten definiert werden.
Es ist in diesem Zusammenhang zu beachten, dass pro Change Table nur maximal
100 Ein/Ausgabe-Felder definiert werden können.

ParNbrRows: Anzahl der Zeilen innerhalb der Tabelle

ParMSG

ParOptions: Tabellen-Optionen
Optionaler Parameter
Tabellen-Optionen können in Form von Schlüssel-Worten angegeben werden.
Wird aktuell noch nicht unterstützt
Message-Id oder Text für die Tabellen-Überschrift
Optionaler-Parameter
Wird aktuell noch nicht unterstützt.
Beispiele für den Aufruf
//Tabelle1 mit 3 Spalten und 5 Zeilen
Wx_HTMLTbl('Tabelle1': 3: 5);
//Definition der Spalten
//Definition der Ein/Ausgabe-Felder innerhalb der Tabelle
//Tabelle Auswahl mit 4 Spalten und 1 Zeile
Wx_HTMLTbl('Auswahl': 4: 1);
//Definition der Spalten
//Definition der Ein/Ausgabe-Felder innerhalb der Tabelle
Source Code 239: Aufruf Prozedur Wx_HTMLTbl
Definieren HTML Tabelle
B EN UT ZERHA ND BUC H 203
4.18.11.2
Wx_HTMLTblColHdg()
Definition Spalten
Über die Prozedur Wx_HTMLTblColHdg() können die einzelnen Spalten in der zuvor über Prozedur
Wx_HTMLTbl() definierten Tabelle näher beschrieben werden.
Aktuell wird nur die Tabellen-Überschrift unterstützt. Für die Zukunft werden noch weitere Optionen geplant, die in Form von Schlüssel-Worten übergeben werden. Die entsprechenden Parameter sind bereits
vorgesehen.
Durch den mehrfachen Aufruf der Funktion Wx_HTMLTbl wird jeweils die nächste (noch nicht definierte)
Spalte definiert. Um eine bestimmte Spalte zu definieren kann auch die Spalten-Nr. direkt übergeben
werden.
Wird die Funktion Wx_HTMLTblColHdg() nicht nach der Funktion Wx_HTMLTbl() aufgerufen erhält die
Tabelle keine Spalten-Überschriften.
Prototyp
*******************************************************************************
P* Procedure name: Wx_HTMLTblColHdg
P* Purpose:
Add Column (Heading) Defintions to an HTML Table
P*
within a Change table
P*
Column defintions are added to the most recently defined
P*
HTML table
P* Returns:
P* Parameters:
ParMsg
=> Message Id or Message Text
P* Parameters:
ParColNo
=> Column No
P*
Passed:
The column heading for specified
P*
column will be updated
P*
Not Passed: The next column
P*
(after the last defined)
P*
will be defined
P* Parameters:
ParOptions
=> Options
********************************************************************************
D Wx_HTMLTblColHdg...
D
PR
OpDesc
D
ParMsg
Like(FldRef.MsgData)
Const
D
Options(*Trim)
D
ParColNo
10I 0 Options(*NoPass)
Const
D
ParOptions
Like(FldRefCGI.Options) Const
D
Options(*NoPass: *Trim)
Source Code 240: Prototype - Prozedur Wx_HTMLTblColHdg - Definieren HTML Spalten
Parameter
Die Funktion erfordert einen Parameter.

ParMsg
Message-Id oder Text der als Spaltenüberschrift angezeigt werden soll

ParColNo
Spalten-Nr.
Optional
Wird die Spalten-Nr. nicht übergeben, wird die nächste (nach der zuletzt definierten)
Spalte verwendet.
B EN UT ZERHA ND BUC H 204
War die Spalte bereits definiert, wird zuvor gesetzte Überschrift ersetzt.

ParOptions Optionen
Optional
In Zukunft können weitere Optionen in Form von Schlüssel-Worten angegeben werden. (aktuell noch nicht unterstützt).
Beispiele für den Aufruf
//Tabelle1 mit 3 Spalten und 5 Zeilen
Wx_HTMLTbl('Tabelle1': 3: 5);
Wx_HTMLTblColHdg('Spalten-Überschrift1');
Wx_HTMLTblColHdg('2.Spalte');
Wx_HTMLTblColHdg('MSG0123');
//Tabelle
//Spalte 1
//Spalte 2
//Spalte 3 – mit Message Id
//Definition der Ein/Ausgabe-Felder innerhalb der Tabelle
//Tabelle Auswahl mit 4 Spalten und 1 Zeile
Wx_HTMLTbl('Auswahl': 4: 1);
Wx_HTMLTblColHdg('Spalten-Überschrift3': 3);
Wx_HTMLTblColHdg('Zweite Spalte': 2);
Wx_HTMLTblColHdg('Letzte Spalte');
//Spalte 3
//Spalte 2
//Spalte 4
//Definition der Ein/Ausgabe-Felder innerhalb der Tabelle
//Tabelle AdrTab mit 3 Spalten und 3 Zeilen
//Vorgabe von unterschiedlichen Spalten-Breiten
Wx_HTMLTbl('AdrTab'
:3 :3);
Wx_HTMLTblColHdg('Strasse': 1: 'width="450"');
Wx_HTMLTblColHdg('PLZ':
2: 'width="100"');
Wx_HTMLTblColHdg('Ort':
3: 'width="450"');
Source Code 241: Aufruf Prozedur Wx_HTMLTblColHdg() - Spalten Definition
Tabelle mit 3 Spalten
 Mit unterschiedlichen Spaltenbreiten
Abbildung 27: Tabelle mit 3 Spalten (3 Zeilen) und unterschiedlicher Spalten-Breite
B EN UT ZERHA ND BUC H 205
4.18.12 Wx_GetChgInput()
Empfangen Eingabe-Daten
Über die Prozedur Wx_GetChgInput() werden die die eingegebenen Daten empfangen.
Der Aufruf muss nach der Definition der Ein-/Ausgabe-Felder über WOPiXX-Prozeduren und vor der individuellen Eingabe-Prüfung bzw. vor dem Fortscheibend der erfassten Daten erfolgen.
Für den WOPiXX-Programmierer kann die Prozedur Wx_GetChgInput() mit der Ausführung des OpCodes EXFMT in Green-Screen-Dialog-Programmen verglichen werden. Tatsächlich wird in der Prozedur das HTML-Dokument an den Browser geschickt und das Programm beendet. Beim nächsten Aufruf
über den Browser werden die erfassten Daten empfangen und können wie nach einem EXFMT weiterverarbeitet werden.
Prototype
***************************************************************************
P* Procedure name: Wx_GetChgInput
P* Purpose:
Get Input Values
P*
--> Input values get retrieved for either mode SAVE or APPLY
P* Returns:
***************************************************************************
D Wx_GetChgInput...
D
PR
OPDesc
Source Code 242: Prototype - Prozedur Wx_GetChgInput() - Empfangen Eingabe-Daten
Parameter

Die Prozedur erfordert weder einen Rückgabewert noch Parameter. Die Ein-/Ausgabe-Daten werden direkt in die entsprechenden Datenstruktur-Unterfelder ausgegeben.
Beispiel für den Aufruf
//Ein-/Ausgabe-Felder definieren
Wx_ChgFld('Land':
%Addr(GblDS.Land): 'Land':
'Required CTL(Country)');
Wx_ChgFld('PLZ': %Addr(GblDS.PLZ): 'FLD0012': 'NoNewLin');
Wx_ChgFld('Ort': %Addr(GblDS.Ort): '': 'Required SelectList');
//Eingabe-Daten empfangen
Wx_GetChgInput();
//Individuelle Eingabe-Prüfung
//Fortschreiben der erfassten Daten
Source Code 243: Aufruf - Prozedur Wx_GetChgInput() - Empfangen Eingabe-Daten
B EN UT ZERHA ND BUC H 206
4.18.13 Error-Handling
Viele Eingabe-Prüfungen können bereits durch die Angabe von entsprechenden Optionen (z.B. Range
für einen Bereich oder vordefinierte Comboboxen) direkt in HTML bzw. über JavaScript-Funktionen erfolgen. Ähnlich den Schlüssel-Worten, die im DDS gesetzt werden können.
Der Programmierer kann zusätzliche individuelle Prüfungen im Programm hinterlegen.
Die (individuelle) Eingabe-Prüfung darf erst nach Aufruf der Prozedur Wx_GetChgInput() (Empfangen der
Eingabe-Werte) erfolgen. Die erfassten Werte werden durch die Prozedur Wx_GetChgInput() in die Datenstruktur-Unterfelder übertragen, die bei der Definition der Ein-/Ausgabe-Felder angegeben wurden.
Für den Fehler-Fall bzw. zur Ausgabe und Prüfung von (individuellen) Fehlermeldungen werden die folgenden WOPiXX-Funktionen zur Verfügung gestellt.



Wx_FldErr()
Fehlermeldung für ein einzelnes Ein-/Ausgabe-Feld
(vergl. 4.18.13.1)
Wx_MultFldErr() Fehlermeldung für eine Gruppe von Ein-/Ausgabe-Feldern
(vergl. 4.18.13.2)
Wx_isChgFldErr()
Prüfung, ob mindestens eine individuelle Fehlermeldung
ausgegeben wurde
(vergl. 4.18.13.3)
Soll die Fehlermeldung unmittelbar nach der Prüfung ausgegeben werden, ist der Aufruf der Prozedur
Wx_WrtChgTbl() Change Table erforderlich.
Anstatt die Fehlermeldungen einzeln auszugeben können auch zunächst alle Prüfungen durchgeführt,
die Fehler über Wx_FldErr() oder Wx_MultFldErr() ausgegeben werden.
Ob ein Fehler über die Funktionen Wx_FldErr() oder Wx_MultFldErr() ausgegeben wurde, kann mit der
Funktion Wx_isChgFldErr() geprüft werden.
Sofern kein Fehler festgestellt wurde, kann der Programmierer die Daten fortschreiben.
Die Aufbereitung und Ausgabe des HTML-Dokuments erfolgt über die Prozedur Wx_WrtChgTbl(). In der
Prozedur Wx_WrtChgTbl() wird ebenfalls geprüft, ob ein Fehler ausgegeben wurde. Im Fehler-Fall wird
das aktuelle Dokument erneut (inklusive der Fehlermeldung) ausgegeben. Wurde kein Fehler festgestellt,
wird auf das vorgelagerte Programm (z.B. Worktable) zurückverzweigt.
Die Fehlermeldungen werden immer unmittelbar nach dem fehlerhaften Ein-/Ausgabe-Feld in rot angezeigt, unabhängig davon, ob die Fehlermeldung durch eine Java-Script-Prüfung oder den Aufruf
WOPiXX-Prozeduren Wx_FldErr() oder Wx_MultFldErr() erzeugt wurde.
B EN UT ZERHA ND BUC H 207
Abbildung 28: Beispiel Fehlerhafte Eingaben und Fehlermeldungen
4.18.13.1
Wx_FldErr()
/Ausgabe-Feld
Individuelle Fehlermeldung für Ein-
Wurde bei der individuellen Eingabe-Prüfung für ein bestimmtes Ein-/Ausgabe-Feld ein Fehler festgestellt, so kann mit Hilfe der Prozedur Wx_FldErr() eine individuelle Fehlermeldung für dieses Ein/Ausgabe-Feld ausgegeben werden.
An die Prozedur müssen sowohl die Fehlermeldung (oder eine entsprechende Message-Id) sowie das
Feld (bzw. die eindeutige Kennung, die bei der Definition angegeben wurde) als Parameter übergeben
werden.
Soll die Fehlermeldung unmittelbar nach der Prüfung ausgegeben werden, ist der Aufruf der Prozedur
Wx_WrtChgTbl() Change Table erforderlich.
Prototype
***************************************************************************
P* Procedure name: Wx_FldErr
P* Purpose:
Set Field Error
P* Returns:
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParField
=> Field
P* Parameters:
ParFile
=> File
P* Parameters:
ParLib
=> Bibliothek
***************************************************************************
D Wx_FldErr...
D
PR
OPDesc
D ParMsg
Like(FldRef.MsgData)
Const
D ParField
Like(FldRef.NameSQL)
Const
B EN UT ZERHA ND BUC H 208
D
D
D
D
ParFile
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.Lib)
Options(*NoPass)
ParLib
Const
Const
Source Code 244: Prototype - Prozedur Wx_FldErr() - Fehlermeldung für einzelnes Ein-/Ausgabe-Feld
Parameter

ParMsg

ParField
Fehlermeldung
Die Fehlermeldung 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.
Feld/Spalten-Name des Ein-/Ausgabe-Feldes oder eindeutige Kennung bei ArbeitsFeldern.
Das Ein-/Ausgabe-Feld (Feld-Name oder eindeutige Kennung) muss über eine
WOPiXX-Prozedur definiert worden sein.
Beispiele für den Aufruf
If GblDs.Land = 'D' and %Len(%Trim(GblDS.PLZ)) <> 5;
Wx_FldErr('Ungültige Postleitzahl': 'PLZ');
EndIf;
Monitor;
If Wx_isModeAdd();
GblDS.KBGUELTAB = %Date(GblDS.KBGUELTNum);
//Prüfen PLZ Deutschland
//Prüfen numerisches Datum
EndIf;
On-Error;
Wx_FldErr(PGMSDS.MsgTxt: 'KBGUELTAB');
EndMon;
If
%Len(%Trim(GblDS.EMeMail)) = *Zeros
and (
%Len(%Trim(GblDS.EMSend)) <> *Zeros
or %Len(%Trim(GblDS.EMSign)) <> *Zeros);
Wx_FldErr('KXE0031': 'ADDEMAIL');
ElseIf %Len(%Trim(GblDS.EMeMail)) <> *Zeros
and %Len(%Trim(GblDS.EMSign)) = *Zeros;
Wx_FldErr('KXE0030': 'ADDSIGN');
EndIf;
//Ohne eMail-Adresse
//Mit Senden an
//Mit Signatur
If
GblDS.KGSTRTIM
< %Time(073000: *ISO)
and GblDS.KGSTRTIM <> *LoVal;
Wx_FldErr('KXE0005': 'STRTIM');
EndIf;
//Startzeit vor 7:30
//Startzeit <> 00:00:00
If GblDS.KGENDTIM <= GblDS.KGSTRTIM;
//Endezeit vor Startzeit
//Mit Mail-Adresse
//Ohne Signatur
Wx_FldErr('KXE0007': 'STRTIM');
Wx_FldErr('KXE0007': 'ENDTIM');
EndIf;
Source Code 245: Aufruf Prozedur Wx_FldErr() - Fehlermeldung für einzelnes Ein-/Ausgabe-Feld
B EN UT ZERHA ND BUC H 209
Abbildung 29 : Individuelle Eingabe-Prüfung - Ungültige Postleitzahl
4.18.13.2
Wx_MultFldErr()
mehrere Felder
Individuelle Fehlermeldung für
Sofern bei einer individuellen Eingabe-Prüfung die gleiche Fehlermeldung für mehrere Ein-/AusgabeFelder angezeigt werden soll, kann entweder die Prozedur Wx_FldErr() mehrfach aufgerufen oder die
Prozedur Wx_MultFldErr().
Bei der Funktion Wx_MultFldErr() können bis zu 10 Ein-/Ausgabe-Felder angegeben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_MultFldErr
P* Purpose:
Set Error for Multiple Fields
P* Returns:
P* Parameters:
ParMsg
=> Message-Id or Text
P* Parameters:
ParField01 => Field 01
P* Parameters:
ParField02 => Field 02
P* Parameters:
ParField03 => Field 03
P* Parameters:
ParField04 => Field 04
P* Parameters:
ParField05 => Field 05
P* Parameters:
ParField06 => Field 06
P* Parameters:
ParField07 => Field 07
P* Parameters:
ParField08 => Field 08
P* Parameters:
ParField09 => Field 09
P* Parameters:
ParField10 => Field 10
P* Parameters:
ParFile
=> File
P* Parameters:
ParLib
=> Bibliothek
***************************************************************************
D Wx_MultFldErr...
D
PR
OPDesc
D ParMsg
Like(FldRef.MsgData)
Const
D ParField01
Like(FldRef.NameSQL)
Const
D ParField02
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField03
Like(FldRef.NameSQL)
Const
D
Options(*NoPass)
D ParField04
Like(FldRef.NameSQL)
Const
B EN UT ZERHA ND BUC H 210
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
ParField05
ParField06
ParField07
ParField08
ParField09
ParField10
ParFile
ParLib
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.NameSQL)
Options(*NoPass)
Like(FldRef.Lib)
Options(*NoPass)
Const
Const
Const
Const
Const
Const
Const
Const
Source Code 246: Prototype - Prozedur Wx_MultFldErr() - Fehlermeldung für mehrere Ein-/Ausgabe-Felder
Parameter

ParMsg
Fehlermeldung
Die Fehlermeldung 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.

ParField01
Feld/Spalten-Name des Ein-/Ausgabe-Feldes oder eindeutige Kennung bei ArbeitsFeldern.
Das Ein-/Ausgabe-Feld (Feld-Name oder eindeutige Kennung) muss über eine
WOPiXX-Prozedur definiert worden sein.

ParField02
ParField10 Feld/Spalten-Name der weiteren Ein-/Ausgabe-Felder oder eindeutige
Kennungen bei Arbeits-Feldern.
Das Ein-/Ausgabe-Feld (Feld-Name oder eindeutige Kennung) muss über eine
WOPiXX-Prozedur definiert worden sein.
Optionaler Parameter
Beispiele für den Aufruf
If GblDS.EKPreis > GblDS.VKPreis;
Wx_MultFldErr('Verkaufspreis muss über dem Einkaufspreis liegen':
'EKPreis': 'VKPreis');
EndIf;
If
(
GblDS.Hoehe > *Zeros
or GblDS.Breite > *Zeros
or GblDS.Tiefe > *Zeros)
and (
GblDS.Hoehe = *Zeros
or GblDS.Breite = *Zeros
or GblDS.Tiefe = *Zeros);
Wx_MultFldErr('Höhe, Breite und Tiefe müssen angegeben werden':
'Hoehe': 'Breite': 'Tiefe');
EndIf;
If GblDS.KGSTRDAT > GblDS.KGENDDAT;
Wx_MultFldErr('KXE0004': 'STRDAT': 'ENDDAT');
ElseIf GblDS.KGSTRDAT = GblDS.KGENDDAT
B EN UT ZERHA ND BUC H 211
and GblDS.KGSTRTIM > GblDS.KGENDTIM;
Wx_MultFldErr('KXE0004': 'STRTIM': 'ENDTIM');
EndIf;
Source Code 247: Aufruf Prozedur Wx_MultFldErr() - Fehlermeldung für mehrere Ein-/Ausgabe-Felder
Abbildung 30: Beispiel - gleiche Fehlermeldung für mehrere Felder
4.18.13.3
Wx_isChgFldErr()
viduelle Fehlermeldung
Prüfung mindestens eine indi-
Über die Funktion Wx_isChgFldErr() kann geprüft werden, ob mindestens ein Fehler mit Hilfe der Funktionen Wx_FldErr() oder Wx_MultFldErr() registriert wurde.
Sofern kein Fehler aufgetreten ist, kann der Datensatz ordnungsgemäß fortgeschrieben werden.
Prototype
***************************************************************************
P* Procedure name: Wx_isChgFldErr
P* Purpose:
Check if Field Errors occurred
P* Returns:
True/*On
= Field Errors Occurred
P*
False/*Off = No Field Error
***************************************************************************
D Wx_isChgFldErr...
D
PR
N
OpDesc
Source Code 248: Prototype - Prozedur Wx_isChgFldErr() - Prüfung individueller Fehler aufgetreten
Parameter

Rückgabe-Wert *ON = mindestens ein individueller Fehler aufgetreten
*OFF = kein Fehler aufgetreten

Keine Parameter erforderlich
Beispiel für den Aufruf
B EN UT ZERHA ND BUC H 212
If Not Wx_isChgFldErr();
If GblDS.Id = *Zeros;
Write MyFileF GblDS;
Else;
Update MyFileF GblDS;
EndIf;
EndIf;
Source Code 249: Aufruf Prozedur Wx_isChgFldErr() - Prüfen individueller Fehler aufgetreten
4.18.14 Prozeduren zum Beenden von Change Tables
Change Tables können auf zwei Arten beendet werden:

Wx_WrtChgTbl() Beenden Change Programm
Je nachdem, ob ein individueller Fehler registriert wurde oder nicht, wird das aktuelle
HTML-Dokument erneut ausgegeben oder auf das vorgelagerte Programm zurückgesprungen.

Wx_RtnPrv() Rücksprung auf vorgelagertes Programm
Sofern in Change-Programmen für die Aktion/Modus keine Dialog-Ausgabe erforderlich ist (z.B. Löschen von Datensätzen)
4.18.14.1
Wx_RtnPrv()
gramm
Rücksprung auf vorgelagertes Pro-
Ist in einem Change Programm keine Dialog-Ausgabe erforderlich (z.B. zum Löschen von Datensätzen
oder zur Aktivierung eines Buchungsprogramms), muss nach Ausführung der entsprechenden Aktion
das Change Programm durch Aufruf der Funktion Wx_RtnPrv() auf das vorgelagerte Programm zurückgegangen werden.
Prototype
***************************************************************************
P* Procedure name: Wx_RtnPrv
P* Purpose:
Return to previous display HTML
P* Returns:
P* Parameters:
ParMsg
=> Message Text or Message-Id
P*
--> If an error occurs
***************************************************************************
D Wx_RtnPrv...
D
PR
OPDesc
D ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass)
Source Code 250: Prototype - Prozedur Wx_RtnPrv() - Auf vorgelagertes Programm zurückspringen
Parameter

ParMsg
Fehlermeldung, die im vorgelagerten Programm ausgegeben werden soll.
Optionaler Parameter
B EN UT ZERHA ND BUC H 213
Sofern keine Fehlermeldung ausgegeben werden soll, wird der Parameter entweder
nicht, leer oder mit *Blanks gefüllt übergeben.
Die Fehlermeldung 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.

ParSvrError Signoff
Optionaler Parameter
Sofern der Parameter mit *ON übergeben wird, wird die Sitzung beendet. (Signoff)
Beispiele für den Aufruf
If Wx_isModeDelete();
ArrKeyVal = Wx_GetDBKeyArrInt();
For Index = 1 To %Elem(ArrKeyVal);
If ArrKeyVal(Index) > *Zeros;
Delete(E) ArrKeyVal(Index) MyFileF;
If %Error;
ErrMsg = 'Fehler beim Löschen';
EndIf;
EndIf;
EndFor;
Wx_RtnPrv(ErrMsg);
EndIf;
//Löschen
//Ermitteln Schlüssel für Löschen
//Verarb. aller Schlüssel-Werte
//Datensatz löschen
//Fehler aufgetreten
//Fehlermeldung sichern
//Rücksprung
Source Code 251: Prozedur Wx_RtnPrv() - Rücksprung auf vorgelagertes Programm
4.18.14.2
Wx_WrtChgTbl()
Beenden Change Programm
Nachdem die Eingabe-Prüfungen erfolgt sind, die Datensätze, sofern keine Fehler aufgetreten sind, fortgeschrieben wurden, muss das Change Programm beendet werden.
Die Funktion Wx_WrtChgTbl() gibt im Fehler-Fall die Change Table erneut aus oder verzweigt auf das
vorgelagerte Programm, sofern kein Fehler aufgetreten ist.
Prototype
***************************************************************************
P* Procedure name: Wx_WrtChgTbl
P* Purpose:
Write Change Table
P* Returns:
P* Parameters:
ParMsg
=> Message Text or Message-Id
P*
--> If an error occurs
P* Parameters:
ParParm01
=> Parameter 01 for the next Call
P* Parameters:
ParParm02
=> Parameter 02 for the next Call
P* Parameters:
ParParm03
=> Parameter 03 for the next Call
P* Parameters:
ParParm04
=> Parameter 04 for the next Call
P* Parameters:
ParParm05
=> Parameter 05 for the next Call
***************************************************************************
D Wx_WrtChgTbl...
D
PR
OPDesc
D ParMsg
Like(FldRef.MsgData)
Const
D
Options(*NoPass)
D ParParm01
Like(FldRef.TextVar)
Const
D
Options(*NoPass)
D ParParm02
Like(FldRef.TextVar)
Const
B EN UT ZERHA ND BUC H 214
D
D
D
D
D
D
D
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
Like(FldRef.TextVar)
Options(*NoPass)
ParParm03
ParParm04
ParParm05
Const
Const
Const
Source Code 252: Prototype Prozedur Wx_WrtChgTbl() - Beenden Change Program

Parameter
ParMsg

ParParm1
Globale Fehlermeldung, die im aktuellen HTML-Dokument ausgegeben werden soll.
Optionaler Parameter
Sofern keine Fehlermeldung ausgegeben werden soll, wird der Parameter entweder
nicht, leer oder mit *Blanks gefüllt übergeben.
Die Fehlermeldung 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.
ParParm5
Parameter-Wert
Optionale Parameter
Es können bis zu 5 alphanumerische Parameter-Werte übergeben werden. Diese Parameter-Werte können in dem Folge-Programm verwendet werden.
Anstatt die gewünschten Parameter-Werte über die Funktion Wx_WrtChgTbl() zu setzen, ist es auch möglich die Werte über durch Aufruf einer der Funktionen
Wx_SetParmXXXX zu setzen (vergl. 4.13 Ermitteln und Setzen von Parameter-Werten).
Beispiele für den Aufruf
Monitor;
Clear ErrMsg;
If KeyVal > *Zeros;
GblDSSav = GblDS;
Chain KeyVal MyFileF1 GblDS;
GblDS = GblDSSav;
EndIf;
//Error Message initialisieren
//Mit Schlüssel-Wert
//geänderten Datensatz sichern
//Aktuellen Datensatz in DS einlesen
//gesicherten Datensatz umladen
If KeyVal = *Zeros or Not %Found(MyFile); //Ohne Schlüssel / nicht gefunden
Write MyFileF GblDS;
//Schreiben neuen Datensatz
Else;
Update MyFileF GblDS;
//eingelesenen Datensatz aktualisieren
EndIf;
On-Error;
//Fehler beim Update oder Write
ErrMsg = 'Fehler beim Schreiben des Datensatzes'; //Fehlermeldung angeben
EndMon;
Wx_WrtChgTbl(ErrMsg);
//HTML-Dokument erneut anzeigen oder
//Rücksprung auf vorher. CGI-Programm
Return;
Source Code 253: Aufruf Prozedur Wx_WrtChgTbl() - Beenden Change Programm
B EN UT ZERHA ND BUC H 215
4.19 Header-Informationen
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
(Vergl. 4.19.1 Wx_HdrText() Beliebigen Text in Header ausgeben)

Wx_HdrFile() Definition der Dateien, aus denen die Header-Felder stammen
(Vergl. 4.19.2 Wx_HdrFile() Datei für Header-Informationen)
Wx_HdrFld() Definition der Header-Felder
Vergl. 4.19.3 Wx_HdrFld() Feld für Header-Informationen)
Wx_HdrFileFld() Definition der Datei sowie des ersten Header-Felds
(Vergl. 4.19.4 Wx_HdrFileFld() Datei und erstes Feld für Header)


■ Header-Informationen
in Work-Programmen
■ Header-Informationen
in Change-Programmen
Abbildung 31: Beispiel Header-Informationen in Work- und Change-Programmen
4.19.1 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.
Prototype
B EN UT ZERHA ND BUC H 216
***************************************************************************
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)
Source Code 254: Prototype Wx_HdrText() - Beliebigen Text in Header ausgeben

Parameter
ParField

ParDescr
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.

ParValue
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.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
(Vergl. 4.3.8 Aufbereitungsoptionen für Header)
Eindeutige Kennung des Header-Feldes
Es ist nicht erforderlich, dass ParField in einer Datei/Tabelle/View hinterlegt ist. Die
Kennung muss jedoch innerhalb des Headers eindeutig sein.
Beispiele für den Aufruf
Wx_HdrText('EVENT': 'KXD0022':
%Trim(GblDS.KGKNGR) + ' ' + %Trim(EVKGBEZ));
Wx_HdrText('STRDAT': 'Von/Bis':
%Char(GblDS.KGSTRDAT: *EUR) + ' - ' +
%Char(GblDS.KGENDDAT: *EUR));
If %Len(%Trim(GblDS.KGHOTEL)) <> *Zeros;
Wx_HdrText'KGHOTEL': 'KXD0041':
//Kongress
//Zeitraum
//Hotel
B EN UT ZERHA ND BUC H 217
%Trim(GblDS.KGHOTEL
+ ' ' + GblDS.KGHOTELORT +
' ' + GblDS.KGHOTELSTR + ' ' + GblDS.KGHOTELTEL));
EndIf;
Source Code 255: Aufruf Prozedur Wx_HdrText - Beliebigen Text in Header ausgeben
Abbildung 32 : Ergebnis aus dem vorherigen Source Code
4.19.2 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.
Prototype
***************************************************************************
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
B EN UT ZERHA ND BUC H 218
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)
Source Code 256: Prototype Prozedur Wx_HdrFile
Parameter
Dateien für Header-Informationen definieren
B EN UT ZERHA ND BUC H 219

ParFile1
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.

ParFile2
Physische Datei/Tabelle/View
Optionaler Parameter
Kurzer System- oder langer SQL Name

ParJoin2
Verknüpfung zwischen Datei/Tabelle/View 1 und 2
Optionaler Parameter
Muss in einem Work-Programm (bei List-Ausgabe) angegeben werden, wenn ParFile2
angegeben wurde (auch dann wenn ein Cross Join gewünscht wird).
Beispiel:
YFILE2 +
on Key1File1 = Key1File2 +
In Change-Programmen ist die Angabe der Verknüpfung nicht erforderlich.


Die Parameter ParFile3 ParFile10 sind optional und werden analog ParFile2 verwendet.
Die Parameter ParJoin3 ParJoin10 sind optional werden analog ParJoin2 verwendet.
Beispiel 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');
Source Code 257: Beispiel Aufruf Prozedur Wx_HdrFld()
4.19.3 Wx_HdrFld()
Dateien für Header-Informationen definieren
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 SelectStatement berücksichtigt werden.
Wird das Header-Feld als Filter berücksichtigt, kann zusätzlich der Vergleichsoperator für die WhereBedingung angegeben werden.
Prototype
***************************************************************************
B EN UT ZERHA ND BUC H 220
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)
Source Code 258: Prototype - Prozedur Wx_HdrFld
Definieren Felder mit Header-Informationen

Parameter
ParField

ParDescr
Beschreibung, 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.

ParValue
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.

ParAddInfo zusätzliche alphanumerische Informationen
Optionaler Parameter
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.

ParOptions Aufbereitungsoptionen
Feld/Spalten-Name des Ein-/Ausgabe-Feldes
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.
B EN UT ZERHA ND BUC H 221
Optionaler Parameter
(vergl. 4.3.8 Aufbereitungsoptionen für Header)
Sofern in Work-Programmen bei dem entsprechenden Header-Field die Option AddFlt angegeben wurde, wird der Header-Wert als Filter-Information in die WhereBedingung des automatisch erstellten Select-Statement integriert.

ParCompare Vergleichsoperator
Optionaler Parameter wird nur bei Work-Programmen berücksichtigt, wenn Option
AddFlt angegeben wurde.
Beispiel für den Aufruf
Wx_HdrFileFld('AuftrKVX01': 'Firma': 'FLD0007': DSCsrC01.Firma: '':
'AddFlt');
//Firma
Wx_HdrFld('BestNr': 'FLD0025': DSCsrC01.BestNr: '': 'AddFlt'); //Bestell-Nr.
Wx_HdrFld('KundeNr': 'FLD0001': DSCsrC01.KundeNr: DSCsrC01.NameOrt); //Kunde
Wx_HdrFld('LiefTerm':'FLD0030': DSCsrC01.LiefTerm);
//Liefer-Termin
Wx_HdrFld('LiefBed': 'FLD0028':
//Liefer-Bedingungen
DSCsrC01.LiefBed: DSCsrC01.LiefBedT);
Wx_HdrFld('AuftrArt':'FLD0027':
DSCsrC01.AuftrArt: DSCsrC01.AuftrArtT);
//Auftrags-Art
Wx_HdrFld('KopfStatus': 'FLD0026':
DSCsrC01.KopfStatus: DSCsrC01.KopfStsT);
//Kopf-Status
Source Code 259 :Aufruf Prozedur Wx_HdrFld()
Abbildung 33: Ergebnis aus Source Code 231
Felder mit Header-Informationen definieren
B EN UT ZERHA ND BUC H 222
4.19.4 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.
Prototype
***************************************************************************
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)
Source Code 260: Prototype - Prozedur Wx_HdrFileFld() - Definiere Header-Datei und 1.Feld
Parameter

ParFile
Physische Datei/Tabelle/View
Kann als kurzer System-Name (Max.10 Zeichen) oder langer SQL Name (Max. 128
Zeichen) angegeben werden.
Analog Parameter ParFile1 in Funktion Wx_HdrFile()

ParField
Feld/Spalten-Name des Ein-/Ausgabe-Feldes
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.

ParDescr
Beschreibung, die links neben dem Filter-Feld angezeigt wird
Sofern keine Beschreibung angezeigt werden soll, wird der Parameter entweder leer
B EN UT ZERHA ND BUC H 223
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.

ParValue

ParAddInfo zusätzliche alphanumerische Informationen
Optionaler Parameter
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.

ParOptions Aufbereitungsoptionen
Optionaler Parameter
(vergl. 4.3.8 Aufbereitungsoptionen für Header)
Sofern in Work-Programmen bei dem entsprechenden Header-Field die Option AddFlt angegeben wurde, wird der Header-Wert als Filter-Information in die WhereBedingung des automatisch erstellten Select-Statement integriert.

ParCompare Vergleichsoperator
Optionaler Parameter wird nur bei Work-Programmen berücksichtigt, wenn Option
AddFlt angegeben wurde.
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.
Beispiele für den Aufruf
Wx_HdrFileFld('AuftrKVX01':
'Firma': 'FLD0007':
DSCsrC01.Firma: '':
'AddFlt');
Wx_HdrFileFld('WXUMSKNDJS': 'Jahr': 'FLD0013':
GblJahr:
'':
'AddFlt');
Source Code 261: Aufruf Prozedur Wx_HdrFileFld() - Definieren Header-File und 1. Feld
4.20 Sonstige Funktionen
In WOPiXX sind auch einige allgemein gültige und einsetzbare Prozeduren/Funktionen enthalten.
4.20.1 Wx_SplitStringArr()
String in Feldgruppe splitten
Über die Funktion Wx_SplitStringArr kann ein Textstring, in dem die einzelnen Werte durch ein beliebiges Trennzeichen getrennt sind in eine Feldgruppe ausgegeben werden.
B EN UT ZERHA ND BUC H 224
Aktuell kann ein Text in bis zu 256 Elemente mit einer Länge von maximal 256 Zeichen aufgeteilt werden.
Längere Element-Texte werden ohne Warnung abgeschnitten.
Enthält der String mehr als 256 Elemente wird eine entsprechende Escape Message ausgegeben, d.h.
die Prozedur bricht ab. Der Fehler kann über eine Monitor-Group abgefangen werden.
Prototype
***************************************************************************
// Procedure name: WX_SplitStringArr
// Purpose:
Split String into Array Elements depending on the
//
passed separator
//
Texts longer than the Element length will be truncated
//
without any warning
//
--> An escape message is sent if more elements are available
// Returns:
Array with the split texts
// Parameter:
ParString
=> String
// Parameter:
ParSep
=> Separator
// Parameter:
ParEmpty
=> Empty Fields = Return an empty Element
//
*ON = Empty Element
*-------------------------------------------------------------------------* Attention:
Maximum 256 Elements with 256 Characters
***************************************************************************
D Wx_SplitStringArr...
D
PR
Like(FldRef.TextVar) OpDesc
D
Dim(RefElemText)
D ParString
Like(FldRefLA.VarLen) Const
D ParSep
Like(FldRef.Sep)
Const
D POutNbrElem
10U 0 Options(*NoPass)
D ParEmpty
N
Options(*NoPass)
Const
Source Code 262: Prototype - Funktion Wx_SplitStringArr - Text in Feldgruppe aufsplitten

Parameter
Rückgabe-Wert Feldgruppe mit dem aufgesplitteten Text
Bis zu 256 Elemente mit einer Länge von maximal 256 Zeichen

ParString
Text-String, der aufgesplittet werden soll

ParSep
Trennzeichen
Abhängig von dem angegeben Trennzeichen wird der String aufgesplittet.
Jedes beliebige Zeichen kann angegeben werden.

POutNbrElements Ausgabe-Parameter Anzahl Elemente
Optionaler Parameter
Muss als Unsigned Integer-Variable (10U 0) definiert werden

ParEmpty
Ausgabe von leeren Elementen
Optionaler Parameter
Sofern mehrere Trennzeichen unmittelbar aufeinander folgen, kann über diesen Parameter gesteuert werden, ob leere Elemente ausgegeben werden sollen.
Sofern der Parameter nicht angegeben wurde oder mit *OFF übergeben wurde, wer-
B EN UT ZERHA ND BUC H 225
den keine leeren Elemente ausgegeben, d.h. die Ausgabe-Feldgruppe enthält nur gefüllte Elemente (und leere Elemente am Ende)
Leere Elemente können z.B. hilfreich sein, wenn *.csv-Dateien in Spalten aufgeteilt
werden müssen.
Beispiele für den Aufruf
D GblText
S
1024A
Varying
D GblArrChar
S
Like(FldRef.TextVar) Dim(RefElemText)
D GblElem
S
10U 0
D ConstSep
C
Const('|')
*-----------------------------------------------------------------------------/Free
GblArrChar = Wx_SplitStringArr(GblText: ';');
GblArrChar = Wx_SplitStringArr(GblText: ConstSep: GblElem);
GblArrChar = Wx_SplitSTringArr(GblText: ';':
GblElem: *ON);
For GblIndex = 1 To GblElem;
//Verarbeitung
EndFor;
/End-Free
Source Code 263: Aufruf - Funktion Wx_SplitStringArr() - Text in Feldgruppe aufsplitten
4.20.2 Wx_SplitStringArrUC2()
splitten
Unicode-Test in Feldgruppe
Über die Funktion Wx_SplitStringArrUC2 kann ein Textstring in Double-Byte-Unicode (RPG Datentyp C),
in dem die einzelnen Werte durch ein beliebiges Double-Byte-Unicode-Trennzeichen getrennt sind in eine Feldgruppe ausgegeben werden.
Aktuell kann ein Text in bis zu 256 Elemente mit einer Länge von maximal 256 Double-Byte-UnicodeZeichen aufgeteilt werden.
Längere Element-Texte werden ohne Warnung abgeschnitten.
Enthält der String mehr als 256 Elemente wird eine entsprechende Escape Message ausgegeben, d.h.
die Prozedur bricht ab. Der Fehler kann über eine Monitor-Group abgefangen werden.
Prototype
***************************************************************************
// Procedure name: WX_SplitStringArrUC2
// Purpose:
Split Unicode String into Unicode Array Elements depending
//
on the passed separator
//
Texts longer than the Element length will be truncated
//
--> An escape message is sent if more elements are available
// Returns:
Array with the split texts
// Parameter:
ParString
=> String
// Parameter:
ParSep
=> Separator
// Parameter:
ParEmpty
=> Empty Fields = Return an empty Element
B EN UT ZERHA ND BUC H 226
//
*ON = Empty Element
*-------------------------------------------------------------------------* Attention:
Maximum 256 Elements with 256 Characters
***************************************************************************
D Wx_SplitStringArrUC2...
D
PR
Like(FldRef.UCVar)
OpDesc
D
Dim(RefElemText)
D ParString
Like(FldRefLU.VarLen) Const
D ParSep
Like(FldRef.SepUC)
Const
D POutNbrElem
10U 0 Options(*NoPass)
D ParEmpty
N
Options(*NoPass)
Const
Source Code 264: Prototype - Funktion Wx_SplitStringArrUC2

Unicode-Text in Feldgruppe aufsplitten
Parameter
Rückgabe-Wert Feldgruppe mit dem aufgesplitteten Text
Bis zu 256 Elemente mit einer Länge von maximal 256 Zeichen

ParString
Unicode-Text-String, der aufgesplittet werden soll

ParSep
Unicode-Trennzeichen
Abhängig von dem angegeben Trennzeichen wird der String aufgesplittet.
Jedes beliebige Zeichen kann angegeben werden.

POutNbrElements Ausgabe-Parameter Anzahl Elemente
Optionaler Parameter
Muss als Unsigned Integer-Variable (10U 0) definiert werden

ParEmpty
Ausgabe von leeren Elementen
Optionaler Parameter
Sofern mehrere Trennzeichen unmittelbar aufeinander folgen, kann über diesen Parameter gesteuert werden, ob leere Elemente ausgegeben werden sollen.
Sofern der Parameter nicht angegeben wurde oder mit *OFF übergeben wurde, werden keine leeren Elemente ausgegeben, d.h. die Ausgabe-Feldgruppe enthält nur gefüllte Elemente (und leere Elemente am Ende)
Beispiele für den Aufruf
D GblText
S
4096C
Varying
D GblArrChar
S
Like(FldRef.UCVar) Dim(RefElemText)
D GblElem
S
10U 0
D ConstSep
C
Const(%UCS2('|'))
*----------------------------------------------------------------------------/Free
GblArrChar = Wx_SplitStringArrUC2(GblText: ';');
GblArrChar = Wx_SplitStringArrUC2(GblText: ConstSep: GblElem);
GblArrChar = Wx_SplitSTringArrUC2(GblText: ';':
GblElem: *ON);
For GblIndex = 1 To GblElem;
//Verarbeitung
EndFor;
/End-Free
Source Code 265: Aufruf - Funktion Wx_SplitStringArrUC2()
Unicode-Text in Feldgruppe aufsplitten
B EN UT ZERHA ND BUC H 227
B EN UT ZERHA ND BUC H 228
5.
Beispiel-Programme
5.1
Work-Programm EXWRKAD01
Bei dem Programm EXWRKAD01 handelt es sich um eine einfache List-Anzeige, mit einem generischen
Filter und den Standard-Kontext-Menü-Punkten Ändern, Kopieren, Löschen, Eigenschaften/Anzeigen,
sowie dem Standard-Button erfassen.
5.1.1
Programm EXWRKAD01
Web-Anzeige
Abbildung 34: Work-Programm EXWRKAD01 - Adress-Stamm
5.1.2
Programm EXWRKAD01 - Source Code
In dem Programm EXWRKAD01 wird der Adress-Stamm(Tabelle/Datei ADRESSEX) angezeigt.
Es wird ein generischer Filter definiert, durch die Spalten/Felder NAME1F, STASSE und ORT nach der
eingegebenen Zeichenkombination in der gleichen Groß/Klein-Schreibweise durchsucht werden.
Ein Kontext-Menü mit den Standard-Kontext-Menü-Punkten Ändern, Kopieren, Löschen und Eigenschaften (=Anzeigen) wird automatisch hinzugefügt.
Als eindeutiger Schlüssel für die Folge-Programme wird die relative Satz-Nr. verwendet.
Die Spalten/Felder KUNDENR, NAME1F, STRASSE, LAND, PLZ und ORT aus der Tabelle/Datei ADRESSEX werden angezeigt. Das Land wird mittig ausgerichtet und durch als Länder-Flagge aufbereitet.
Beim ersten Aufruf werden die Datensätze nach Land, Postleitzahl und Kunde sortiert ausgegeben.
* H-Bestimmungen
*------------------------*
H/COPY QCPYLESRC,WX_HSPECS
B EN UT ZERHA ND BUC H 229
* F-Bestimmungen
*------------------------*
* D-Bestimmungen
*------------------------*
* Prototypes
D/INCLUDE QPROLESRC,WX_PROTO
* Globale D-Bestimmungen
**************************************************************************
* M A I N
P R O G R A M
**************************************************************************
/Free
*INLR = *On;
//HTML-Dokument öffnen
Wx_OpnHTMLWrk('HDR0001': 'EXCHGAD01');
//Definieren generischen Filter
Wx_GenFlt('ADRESSEX': 'NAME1F': 'casesensitive': 'STRASSE': 'ORT');
//Definieren Kontext-Menü/Buttons
//--> Default (= Hinzufügen, Ändern, Kopieren, Löschen, Anzeigen) aut
Wx_CtxMnuItmChange();
Wx_CtxMnuItmDelete();
Wx_CtxMnuItmProperty();
Wx_CtxMnuItm('EXCHGAD02': 'Test BHA':
'Window icn(start.gif)');
//Definieren Spalten für Work Table
Wx_WrkKey('ADRESSEX': *On);
Wx_WrkFld('KundeNr': 'FLD0001');
Wx_WrkFld('Name1F': 'FLD0002');
Wx_WrkFld('Strasse': 'FLD0003');
Wx_WrkFld('Land':
'FLD0006': ' center CTL(Country)');
Wx_WrkFld('PLZ':
'FLD0004');
Wx_WrkFld('Ort':
'FLD0005');
Wx_WrkDftOrder('Land': 'PLZ': 'KundeNr');
//HTML-Dokument ausgeben
Wx_WrtWrkTbl();
Return;
/End-Free
Source Code 266: Work-Programm EXWRKAD01 - Adress-Stamm

Copy-Strecke Wx_HSPECS - H-Bestimmungen

Copy-Strecke Wx_PROTO

Wx_OpnHTMLWrk Definieren Standard-HTML-Dokument

Überschrift:
Message-Id HDR0001 = Adress-Stamm

Folge-Programm:
EXCHGAD01 Detail-Anzeige

Wx_GenFlt

Prototypen für alle WOPiXX-Prozeduren
Generischen Filter definieren

Für Datei:

Durchsuchen Spalten:

Casesensitive Suche:
ADRESSEX
Name1F, Strasse und Ort
 Option casesensitive
Default-Kontext-Menü , da weder Kontext-Menü-Punkte noch Buttons definiert wurden
B EN UT ZERHA ND BUC H 230

Wx_WrkKey
Definieren der relativen Satz-Nr. als eindeutigen Key
ADRESSEX
Datei aus der die relative Satz-Nr. ermittelt
Werden soll

*ON
Bei dem eindeutigen Schlüssel handelt es
Sich um die relative Satz-Nr.


5.2
Wx_WrkFld
Spalten Definieren

Kunden-Nr.

Name

Strasse

Land

Postleitzahl

Ort
Spalte KUNDENR aus Datei ADRESSEX
Überschrift: Message-Id FLD0001 = Kunden-Nr.
Spalte NAME1F aus Datei ADRESSEX
Überschrift: Message-Id FLD0002 = Name.
Spalte STRASSE aus Datei ADRESSEX
Überschrift: Message-Id FLD0003 = Strasse
Spalte LAND aus Datei ADRESSEX
Überschrift: Message-Id FLD0006 = Land
Aufbereitung als Flagge und zentrierte Ausrichtung
über Optionen CENTER und CTL(COUNTRY)
Spalte PLZ in Datei ADRESSEX
Überschrift: Message-Id FLD0004 = Postleitzahl
Spalte Ort in Datei ADRESSEX
Überschrift: Message-Id FLD0005 = Ort

Wx_WrkDftOrder: Default Sortierung nach Land, Postleitzahl, Kunden-Nr.

Wx_WrtWrkTbl: HTML-Dokument aufbereiten und ausgeben
Change-Programm EXCHGAD01
Adress-Stamm
Das Programm ExCHGAD01 ist das Folge-Programm, das aus der List-Anzeige des Adress-Stamms
beim Hinzufügen, Ändern, Löschen oder Anzeigen von Datensätzen aufgerufen wird.
In dem Programm werden die Ein-/Ausgabe-Felder mit einigen wenigen Optionen definiert und aufgerufen. Zum Einlesen und Fortschreiben der Datensätze, sowie für die zusätzliche Eingabe-Prüfung ist individuelle Programmierung erforderlich.
B EN UT ZERHA ND BUC H 231
Abbildung 35: Beispiel Change-Programm - Adress-Stamm
Um das Beispiel-Programm und die zugehörigen Erklärungen so übersichtlich wie möglich zu machen,
wurde es in mehrere Abschnitte aufgeteilt.


H-, F- und globale D-Bestimmungen
Haupt-Programm
Um das Haupt-Programm so übersichtlich wie möglich zu halten, wurden die einzelnen Schritte als
Sub-Procedure-Aufrufe hinterlegt.
Es bleibt jedoch dem Programmierer überlassen, ob er ebenfalls Sub-Procedures verwenden will,
oder ob er stattdessen lieber Subroutinen verwendet, oder ob er alle Schritte im Haupt-Programm
ausführen möchte.

Sub-Procedures im Beispiel-Programm
o Int_ReadData() Einlesen der Daten über Schlüssel-Feld oder relative Satz-Nr.
Individuelle Programmierung
o Int_DfnFldHdr() Definieren von Header-Informationen
Wird in dem Beispiel-Programm nicht benötigt
o Int_DfnFldChg() Definieren der Ein-/Ausgabe-Felder
o Int_ChkInput() Eingabe-Prüfung
Individuelle Programmierung
Wird in diesem Beispiel nicht benötigt
o Int_WrtUpd() Fortschreiben der erfassten Daten
Individuelle Programmierung
o Int_Dlt() Löschen der Daten-Sätze über Schlüssel-Felder oder relative Satz-Nr.
Individuelle Programmierung
B EN UT ZERHA ND BUC H 232
5.2.1
H-, F- und globale D-Bestimmungen
***************************************************************************
* H – B E S T I M M U N G E N
***************************************************************************
D/COPY QCPYLESRC,WX_HSPECS
***************************************************************************
* F – B E S T I M M U N G E N
***************************************************************************
FADRESSEX IF
E
DISK
Rename(Adresse: AdresseF)
FADRESSEI01UF A E
DISK
Rename(Adresse: AdresseF1)
***************************************************************************
* D – B E S T I M M U N G E N
***************************************************************************
* PROTOTYPING
*-------------------------------------------------------------------------D/INCLUDE QPROLESRC,WX_PROTO
* Interne Prozeduren
*-------------------------*
* Ab Release 7.1 sind Prototypen für interne Prozeduren nicht mehr erforderlich
/If Not Defined (*V7R1M0)
* Datensätze einlesen und Default-Werte setzen
D Int_ReadData
PR
OpDesc
* Define Fields to Display
D Int_DfnFldHdr
PR
D Int_DfnFldChg
PR
OpDesc
OpDesc
* Eingabe-Prüfung
D Int_ChkInput
PR
OpDesc
* Datensätze verarbeiten
D Int_WrtUpd
PR
Like(FldRef.MsgText) OpDesc
D Int_Dlt
PR
OpDesc
/EndIf
***************************************************************************
* G L O B A L E
F E L D
D E F I N I T I O N E N
***************************************************************************
D GblKey
S
10I 0
D GblArrKeys
S
10I 0 Dim(RefElemCGI)
D GblErrMsg
S
Like(FldRef.MsgText)
D DSAdresse
D DSAdresseSav
E DS
DS
D GblIndex
S
D PGMSDS
D
MsgTxt
SDS
ExtName(AdresseX) Inz
LikeDS(DSAdresse) Inz
3U 0
80A
Qualified
Overlay(PGMSDS: 91)
Source Code 267: Beispiel - Change-Programm Adress-Stamm - H-, F- und globale D-Bestimmungen

Copy-Strecke Wx_HSPECS - H-Bestimmungen

Datei ADRESSEX: Adress-Stamm
Definition als Input-File für ungeschlüsselten Zugriff, da aus dem vorgelagerten WorkProgramm die relative Satz-Nr. übergeben wird.
Datensatz wird eingelesen um die erforderlichen Daten in Datenstrukturen einzulesen.

Datei ADRESSEI01 logische Datei auf Adress-Stamm
Definition als Update-File für ungeschlüsselten Zugriff.
Wird erst unmittelbar vor dem Update/Write eingelesen.
B EN UT ZERHA ND BUC H 233

Copy-Strecke Wx_PROTO

Prototypen für interne Prozeduren
Zur Strukturierung des Source-Codes werden in dem Beispiel-Programm interne Prozeduren verwendet.
Vor Release 7.1 müssen auch für interne Prozeduren Prototypen angelegt werden.
Ab Release 7.1. ist die Angabe von Prototypen für interne Prozeduren optional.

GblKey:

GblArrKeys: Globale Feldgruppe, in der die relative Satz-Nummern der im vorgelagerten WorkProgramm zum Löschen ausgewählten Datensätze, empfangen werden.
Verwendung zum Löschen der Datensätze

GblIndex:

GblErrMsg: Globale Variable, in der im Fehler-Fall eine Nachricht ausgegeben wird.

DSAdresse: Globale Datenstruktur, in die der Datensatz für das Ändern, Kopieren oder Anzeigen
eingelesen wird.
Die Datenstruktur bzw. die zugehörigen Datenstruktur-Unterfelder werden zum Austausch zwischen dem RPG-Programm und der Web-Ausgabe verwendet.

DSAdresseSav: Globale Datenstruktur in der die erfassten Daten kurzfristig gesichert werden.
Der Datensatz, der geändert werden soll, kann wegen der stateless Programmierung
erst unmittelbar vor dem Update eingelesen werden. Die erfassten Daten müssen
kurzfristig weggesichert werden und nach dem Einlesen des Datensatzes übertragen
werden. Dies erfolgt mit Hilfe der Datenstruktur DSAdresseSav.

PGMSDS
Prototypen für alle WOPiXX-Prozeduren
Globale Variable, in der die relative Satz-Nr., die aus dem vorgelagerten WorkProgramm übergeben wird, empfangen wird.
Verwendung zum Einlesen des Datensatzes zum Ändern, Kopieren oder Anzeigen.
Globale Variable zur Verarbeitung der Feldgruppe GblArrKeys.
Programm-Status-Datenstruktur mit Unterfeld MSGTXT
Im Fehlerfall wird automatisch ein Fehler-Text in die Datenstruktur bzw. in das UnterFeld MSGTXT übertragen. Diese Fehler-Meldung wird im Programm in die Variable
GblErrMsg übertragen und in der Web-Anwendung angezeigt.
Eine vollständige Definition der Programm-Status-Datenstruktur (mit allen Datenstruktur-Unterfeldern) ist in der folgenden Copy-Strecke hinterlegt und kann auch vom
WOPiXX-Programmierer verwendet werden.



5.2.2
/Free
Teil-Datei:
Datei:
Bibliothek:
Haupt-Programm
D_PGMSDS
QCPYLESRC
DIRWEB
B EN UT ZERHA ND BUC H 234
*INLR = *On;
//1. Einlesen der Schlüssel- und Parameter-Werte
GblKey
= Wx_GetDBKeyInt();
GblArrKeys = Wx_GetDBKeyArrInt();
//2. Verarbeiten Modi ohne Dialog-Anzeige (z.B. Sätze Löschen)
//
oder Modi, die in anderen Programmen verarbeitet werden
Select;
When Wx_isModeDelete();
Int_Dlt();
When Wx_isMode('MYMODE');
//DoSomething
EndSL;
//3. Daten einlesen (individuelle Programmierung)
Int_ReadData();
//4. Definieren Dateien und Felder für WOPiXX
//
4.1. HTML Dokument öffnen
//
4.2. Dateien definieren
//
4.3. Header-Informationen
//
4.4. Ein-/Ausgabe-Felder definieren
Wx_OpnHTMLChg('HDR0003');
Wx_ChgFile('AdresseX');
Int_DfnFldHdr();
Int_DfnFldChg();
//5. Retrieve Changed Input Data
Wx_GetChgInput();
//6. Eingabe-Prüfung (Individuelle Programmierung)
Int_ChkInput();
//7. Daten fortschreiben (Individuelle Programmierung)
GblErrMsg = Int_WrtUpd();
//8. Setzen Parameter-Werte für Folge-Aufrufe (sofern erforderlich)
//HTML-Dokument erneut ausgeben
//oder auf vorherige Anzeige zurückspringen
Wx_WrtChgTbl(GblErrMsg);
Return;
/End-Free
Source Code 268: Beispiel - Change-Programm Adress-Stamm - Haupt-Programm

Wx_GetDBKeyInt() - Einlesen der eindeutigen Schlüssel-Werte
Über die Funktion Wx_GetDBKeyInt()t wird die relative Satz-Nr., die im vorgelagerten
Programm bei den Aktionen Ändern, Anzeigen, Kopieren und Löschen übergeben
wird, ermittelt und als ganzzahliger Wert in die Variable GblKey ausgegeben.

Wx_GetDBKeyArrInt() Einlesen der eindeutigen Schlüssel-Werte in Feldgruppe
Über die Funktion Wx_GetDBKeyInt() werden die relativen Satz-Nummern, die im vorgelagerten Programm bei der Festlegung der zu löschenden Datensätze ausgewählt
wurden, ermittelt und als ganzzahlige Werte in die Feldgruppe GblArrKeys übernommen.

Wx_isModeDelete() - Prüfen Modus Löschen
B EN UT ZERHA ND BUC H 235
Über die Funktion Wx_isModeDelete() wird geprüft, ob Datensätze gelöscht werden
sollen.
Sofern Datensätze gelöscht werden sollen wird die Prozedur Int_Dlt() aufgerufen. In
dieser Funktion wird auch der Rücksprung auf das vorgelagerte Programm gesteuert.
Damit ist das Beenden des Programms (z.B. über OpCode Return) an dieser Stelle
nicht erforderlich.

Int_ReadData Einlesen der Daten
In dieser Prozedur wird der Datensatz basierend auf der in der Variable GblKey ausgegebenen relativen Satz-Nr. eingelesen.
Individuelle Programmierung

Wx_OpnHTMLChg() Definieren Standard-HTML-Dokument

Überschrift:
Message-Id HDR0003 = Adress-Stamm Details
Die Angabe eines Folge-Programms ist an dieser Stelle nicht erforderlich, da das Programm beim nächsten Durchlauf erneut aufgerufen wird. Der Rücksprung auf das vorgelagerte Programm wird über WOPiXX-Prozeduren gesteuert.

Wx_ChgFile()



Int_DfnFldHdr() Definieren der Header-Informationen
Int_DfnFldChg() Definieren der Ein-/Ausgabe-Felder
Wx_GetChgInput() Empfangen Eingabe-Daten
Beim ersten Durchlauf wird das HTML-Dokument mit den zuvor definierten Ein/Ausgabe-Felder ausgegeben und das Programm beendet
Beim nächsten Durchlauf werden die erfassten Daten empfangen.
Der WOPiXX-Programmierer muss sich weder um das Beenden, noch um die Fortsetzung des Programms kümmern, sondern lediglich die Prozedur Wx_GetChgInput()
aufrufen

Wx_IntChkInput()

Int_WrtUpd()

Wx_WrtChgTbl() HTML-Dokument ausgeben bzw. Steuerung des Rücksprungs.
Sofern weder eine individuelle Fehlermeldung noch beim Fortschreiben des Datensatzes eine globale Fehlermeldung ausgegeben wurde, wird das Programm beendet und
auf das vorgelagerte Programm zurückgesprungen.
Definieren der Dateien/Tabellen/Views für das Change-Programm

ADRESSEX
Datei Adress-Stamm, die verarbeitet wird
Individuelle Eingabe-Prüfung
Fortschreiben der Datensätze
Im Fehlerfall wird aus der internen Prozedur Int_WrtUpd eine Fehlermeldung in die Variable GblErrMsg ausgegeben.
Sofern ein Fehler aufgetreten ist, wird das HTML-Dokument erneut, mit den entsprechenden Fehlermeldungen ausgegeben.
B EN UT ZERHA ND BUC H 236
5.2.3
Int_ReadData()
Einlesen Daten
In der Funktion Int_ReadData() wird der zu ändernde oder anzuzeigende Datensatz im Input-Modus eingelesen.
Der Zugriff auf die Daten muss vom WOPiXX-Programmierer codiert werden. Dabei ist es unerheblich,
ob der Zugriff über native I/O (z.B. Chain) oder mit Hilfe von embedded SQL erfolgt.
*********************************************************************************
P* Procedure name: Int_ReadData
P* Purpose:
Einlesen der Daten für die Ein-/Ausgabe-Felder
P*
Aufgrund der STATELESS Programmierung sollten die Dateien als
P*
INPUT-Files definiert sein.
P*
Die Ausgabe muss in Datenstrukturen erfolgen
P*
(wegen Pointer-Handling)
P* Returns:
P* Parameters:
********************************************************************************
P Int_ReadData
B
D Int_ReadData
PI
OpDesc
*--------------------------------------------------------------------------------/FREE
If GblKey > *Zeros;
Chain GblKey AdresseF;
EndIf;
If GblKey = *Zeros or Not %Found(AdresseX);
Clear DSAdresse;
EndIf;
Return;
/END-FREE
P Int_ReadData
E
Source Code 269: Beispiel Change-Programm - Adress-Stamm
Prozedur Int_ReadData - Daten einlesen

Einlesen des Datensatzes im Input Modus in die Datenstruktur DSADRESSE
Das Einlesen des Datensatzes erfolgt nur dann, wenn aus dem vorgelagerten Programm eine relative Satz-Nr. übergeben wurde (bzw. wenn die Variable GblKey über
die Funktion Wx_GetDBKeyInt() gefüllt wurde),

Sofern kein Datensatz eingelesen wurde, wird die Datenstruktur DSADRESSE initialisiert.

Da es sich bei dieser Prozedur um Individual-Programmierung handelt, könnten weitere DefaultWerte in den Datenstruktur-Unterfeldern von DSADRESSE gesetzt werden.
5.2.4
Int_HdrFldDfn()
Header Information
*******************************************************************************
* Procedure name: Int_DfnFldHdr
* Purpose:
Definieren / Ausgeben Header Informationen
* Returns:
* Parameters:
****************************************************************************
P Int_DfnFldHdr
B
B EN UT ZERHA ND BUC H 237
D Int_DfnFldHdr
PI
OpDesc
*------------------------------------------------------------------------------/FREE
//Header-Texte (Prozedur Wx_HdrText) können unabhängig von
//den registrierten Dateien/Tabellen/Views und
//den darin hinterlegten Feldern/Spalten angelegt werden.
//Header-Informationen, die sich auf Feld-Werte beziehen werden über
//Prozedur Wx_HdrFld() definiert.
//Das Feld muss in den zuvor definierten Dateien/Tabellen/Views vorhanden sein
Return;
/END-FREE
P Int_DfnFldHdr
E
Source Code 270: Beispiel Change-Programm - Adress-Stamm - Prozedur Int_DfnFldHdr - Definieren Header-Informationen

In dem Beispiel-Programm werden keine Header-Informationen benötigt.
5.2.5
Int_ChgFldDfn()
Ein-/Ausgabe-Feld-Definition
********************************************************************************
P* Procedure name: Int_DfnFldChg
P* Purpose:
Definieren der Ein-/Ausgabe-Felder
P*
Die Ein-/Ausgabe-Felder müssen in Datenstrukturen hinterlegt
P*
sein, unabhängig davon ob Datei-Felder oder Arbeits-Felder
P*
definiert werden
P*
 Wegen Pointer-Handling
P* Returns:
P* Parameters:
******************************************************************************
P Int_DfnFldChg
B
D Int_DfnFldChg
PI
OpDesc
*-------------------------------------------------------------------------/FREE
//1. Definieren Ein-/Ausgabe-Felder aus Dateien/Tabellen/Views
//
--> Felder müssen in den zuvor definierten Dateien/Tabellen/Views
//
vorhanden sein
//
--> Ein-/Ausgabe-Felder müssen in Datenstrukturen hinterlegt sein
Wx_ChgFld('KundeNr': %Addr(KundeNr): 'FLD0001':
'Range(000000, 999999) Right Required');
Wx_ChgFld('Name1F': %Addr(Name1F):
Wx_ChgFld('Name2F': %Addr(Name2F):
Wx_ChgFld('Strasse': %Addr(Strasse):
Wx_ChgFld('Land':
%Addr(Land):
'CTL(Country) required');
Wx_ChgFld('PLZ':
%Addr(PLZ):
Wx_ChgFld('Ort':
%Addr(Ort):
'Required SelectList');
//******
'FLD0002': 'Required');
'Name 2' : 'IMG(test.bmp)');
'FLD0003');
'FLD0006':
'FLD0012': 'NoNewLin');
'':
'Required ');
//2. Definieren Arbeits-Felder als Ein-/Ausgabe-Variablen
//
--> Ein-/Ausgabe-Felder müssen in Datenstrukturen hinterlegt sein
Return;
/END-FREE
P Int_DfnFldChg...
B EN UT ZERHA ND BUC H 238
P
E
Source Code 271: Beispiel Change-Programm - Adress-Stamm - Int_DfnFldChg - Definieren Ein-/Ausgabe-Felder

KUNDENR Definition des Ein-/Ausgabe-Feldes KUNDENR
Das Feld KUNDENR ist in der Datei ADRESSEX hinterlegt und damit ein DatenstrukturUnterfeld in der Datenstruktur DSADRESSE.

KUNDENR
Name des Feldes in Datei ADRESSEX

%ADDR(KundeNr)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
ein Pointer auf das Datenstruktur-Unterfeld KUNDENR
übergeben werden.

FLD0001
Message-Id = Kunde-Nr.

Option Range(000000, 999999) Right Required
Gültiger Bereich zwischen 0 und 999999, rechtsbündig
angeordnet und Muss-Feld

NAME1F
Definition des Ein-/Ausgabe-Feldes NAME1F
Das Feld NAME1F ist in der Datei ADRESSEX hinterlegt und damit ebenfalls ein Datenstruktur-Unterfeld in der Datenstruktur DSADRESSE.

NAME1F
Name des Feldes in Datei ADRESSEX

%ADDR(Name1F)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
ein Pointer auf das Datenstruktur-Unterfeld NAME1F
übergeben werden.

FLD0002
Message-Id = Name

Option Required
Muss-Feld

NAME2F
Definition des Ein-/Ausgabe-Feldes NAME2F
Das Feld NAME2F ist in der Datei ADRESSEX hinterlegt und damit ebenfalls ein Datenstruktur-Unterfeld in der Datenstruktur DSADRESSE.

NAME2F
Name des Feldes in Datei ADRESSEX

%ADDR(Name2F)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
ein Pointer auf das Datenstruktur-Unterfeld NAME2F
übergeben werden.

Name 2
Anstatt einer Message-Id wird die Beschreibung
direkt angegeben.

STRASSE
Definition des Ein-/Ausgabe-Feldes STRASSE
Das Feld STRASSE ist in der Datei ADRESSEX hinterlegt und damit ebenfalls ein Datenstruktur-Unterfeld in der Datenstruktur DSADRESSE.

STRASSE
Name des Feldes in Datei ADRESSEX

%ADDR(Strasse)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
B EN UT ZERHA ND BUC H 239

FLD0003
ein Pointer auf das Datenstruktur-Unterfeld STRASSE
übergeben werden.
Message-Id = Strasse

LAND
Definition des Ein-/Ausgabe-Feldes LAND.
Das Feld LAND ist in der Datei ADRESSEX hinterlegt und damit ebenfalls ein Datenstruktur-Unterfeld in der Datenstruktur DSADRESSE.

LAND
Name des Feldes in Datei ADRESSEX

%ADDR(Land)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
ein Pointer auf das Datenstruktur-Unterfeld LAND
übergeben werden.

FLD0006
Message-Id = Land

Option CTL(Country) required
Aufbereitung des Landes als Flagge
Muss-Feld

PLZ
Definition des Ein-/Ausgabe-Feldes PLZ.
Das Feld PLZ ist in der Datei ADRESSEX hinterlegt und damit ebenfalls ein Datenstruktur-Unterfeld in der Datenstruktur DSADRESSE.

PLZ
Name des Feldes in Datei ADRESSEX

%ADDR(PLZ)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
ein Pointer auf das Datenstruktur-Unterfeld PLZ übergeben werden.

FLD0012
Message-Id = Land

Option NoNewLin
Das nächste Ein-/Ausgabe-Feld wird in der gleichen
Zeile definiert

ORT
Definition des Ein-/Ausgabe-Feldes ORT.
Das Feld ORT ist in der Datei ADRESSEX hinterlegt und damit ebenfalls ein Datenstruktur-Unterfeld in der Datenstruktur DSADRESSE.

ORT
Name des Feldes in Datei ADRESSEX

%ADDR(ORT)
Da ein Austausch von Daten zwischen dem RPGund dem HTML-Skript erfolgen muss und Daten in jedem beliebigen Datentypen definiert sein können, muss
ein Pointer auf das Datenstruktur-Unterfeld ORT übergeben werden.

Da der Ort in der gleichen Zeile wie die PLZ
angegeben werden soll ist keine Beschreibung erforderlich.

Option Required
Muss-Feld
B EN UT ZERHA ND BUC H 240
5.2.6
Int_ChkInput()
Eingabe-Prüfung
Sofern zusätzliche Eingabe-Prüfungen erforderlich sind, können diese in dieser Prozedur vom WOPiXXProgrammierer codiert werden.
Die Prozedur sollte nur dann ausgeführt werden, wenn auch Daten eingegeben wurden, d.h. eine Ausführung im Anzeige-Modus ist nicht erforderlich.
Da es sich bei der Eingabe-Prüfung um individuelle Programmierung handelt, bleibt es dem WOPiXXProgrammierer überlassen, wie der die Prüfungen codiert und ob er diese Prozedur überhaupt verwenden will.
**************************************************************************
P* Procedure name: Int_ChkInput
P* Purpose:
Individuelle Eingabe-Prüfung
P* Returns:
P* Parameters:
***************************************************************************
P Int_ChkInput
B
D Int_ChkInput
PI
OpDesc
*-------------------------------------------------------------------------/FREE
Monitor;
//Nur reine Ausgabe --> Keine Eingabe-Prüfung
If Wx_isModeOutput();
Return;
EndIf;
//Individuelle Eingabe-Prüfung
On-Error;
Wx_WrtChgTbl(PGMSDS.MsgTxt);
EndMon;
Return;
/END-FREE
P Int_ChkInput
E
Source Code 272: Beispiel Change-Programm - Adress-Stamm - Prozedur Int_ChkInput - Eingabe-Prüfung

Wx_isModeOutput()
Die Ein-Ausgabe-Prüfung erfolgt nicht, im Anzeige-Modus.
Die Prozedur wird beendet und keine Prüfung ausgeführt.

In diesem Beispiel-Programm sind keine weiteren individuellen Prüfungen erforderlich.
5.2.7
Int_WrtUpdate()
Daten fortschreiben
Fortschreiben der erfassten Daten.
Aufgrund der stateless Programmierung, darf der zu ändernde Datensatz erst unmittelbar vor dem Fortschreiben eingelesen werden.
B EN UT ZERHA ND BUC H 241
***************************************************************************
P* Procedure name: Int_WrtUpd
P* Purpose:
Fortschreiben Daten in Datei Adresse
P*
Erneutes Einlesen des Datensatzes erforderlich,
P*
wegen STATELESS Programmierung
P* Returns:
P* Parameters:
****************************************************************************
P Int_WrtUpd
B
D Int_WrtUpd
PI
Like(FldRef.MsgText) OpDesc
D RtnErrMsg
S
Like(FldRef.MsgText)
*--------------------------------------------------------------------------/FREE
Monitor;
//Nur Anzeige oder Fehler --> Kein Update/Write = Ende Prozedur
If
Wx_isModeOutput()
or Wx_isChgFldErr();
Return '';
EndIf;
//Fortschreiben Datensatz
//1. Sichern der Ein-/Ausgabe-Daten
//2. Erneutes Einlesen des Datensatzes (wegen STATELESS Programmierung)
//3. Erfasste Daten in den eingelesenen Datensatz übernehmen
//4. Datensatz fortschreiben
DSAdresseSav = DSAdresse;
If GblKey <> *Zeros;
Clear DSAdresse;
Chain GblKey AdresseF1;
EndIf;
DSAdresse = DSAdresseSav;
If Not %Found(AdresseI01) or GblKey = *Zeros;
Write AdresseF1;
Else;
Update AdresseF1;
EndIf;
On-Error;
DSAdresse = DSAdresseSav;
Return PGMSDS.MsgTxt;
EndMon;
Return '';
/END-FREE
P Int_WrtUpd...
P
E
Source Code 273: Beispiel - Change-Programm - Adress-Stamm - Prozedur Int_WrtUpd() - Daten fortschreiben

Die Prozedur wird nicht ausgeführt (bzw. sofort beendet), sofern im Anzeige-Modus
(Wx_isModeOutput()) gearbeitet wird oder ein Fehler angezeigt werden soll
(Wx_isChgFldErr()).

Die in Datenstruktur DSADRESSE hinterlegten Ein-/Ausgabe-Werte werden in Datenstruktur
DSADRESSESav übertagen.

Der Datensatz wird im Update-Modus eingelesen, sofern aus dem vorgelagerten Programm eine
B EN UT ZERHA ND BUC H 242
relative Satz-Nr. übergeben wurde (GblKey > *Zeros)

Die in der Datenstruktur DSADRESSESav gesicherten Daten werden in die Datenstruktur
DSADRESSE übertragen.

Sofern ein Datensatz eingelesen wurde wird dieser Datensatz fortgeschrieben.

Sofern kein Datensatz eingelesen wurde wird ein neuer Datensatz geschrieben.

Wurden der Datensatz ordnungsgemäß fortgeschrieben, wird die Prozedur ohne Fehlermeldung
verlassen.

Tritt beim Einlesen (im Update-Modus) oder beim Fortschreiben der Datensätze ein Fehler auf, wird
in den On-Error-Zweig der Monitor-Group verzweigt.
Die Fehlermeldung, die in der Programm-Status-Datenstruktur ausgegeben wird, wird
als Rückgabe-Wert ausgegeben.
5.2.8
Int_Dlt()
Datensätze löschen
**************************************************************************
P* Procedure name: Int_Dlt
P* Purpose:
Löschen Datensätze aus Datei Adresse
P* Returns:
P* Parameters:
**************************************************************************
P Int_Dlt
B
D Int_Dlt
PI
OpDesc
D LocIndex
S
3U 0
D LocErrMsg
S
Like(FldRef.MsgText)
*------------------------------------------------------------------------/FREE
Monitor;
//Verarbeiten der zu löschenden Datensätze
For LocIndex = 1 To %Elem(GblArrKeys);
If GblArrKeys(LocIndex) = *Zeros;
Leave;
EndIf;
Delete(E) GblArrKeys(LocIndex) AdresseF1;
If %Error;
LocErrMsg = 'Fehler beim Löschen';
EndIf;
EndFor;
On-Error;
Wx_RtnPrv(PGMSDS.MsgTxt);
EndMon;
//Programm beenden und Rücksprung auf vorheriges Programm
Wx_RtnPrv(LocErrMsg);
/END-FREE
P Int_Dlt
E
Source Code 274: Beispiel - Change-Programm - Adress-Stamm - Prozedur Int_Dlt() - Datensätze löschen
B EN UT ZERHA ND BUC H 243

Verarbeitung aller relativen Satz-Nr. die im vorhergehenden Programm zum Löschen ausgewählt
wurden, und die über Prozedur Wx_GetDBKeyArrInt() in die Feldgruppe GblArrKeys
eingelesen wurden.

Löschen der Datensätze

Sollte beim Löschen der Datensätze ein Fehler auftreten, wird der Fehler abgefangen und die Fehlermeldung in der lokalen Variablen LocErrMsg gespeichert.

Wurden alle Datensätze gelöscht, wird durch Aufruf der Prozedur Wx_RtnPrv() auf das vorgelagerte
Programm zurückverzweigt. Sofern eine Fehlermeldung gesichert wurde, wird diese
an das vorgelagerte Programm ausgegeben und dort angezeigt.
B EN UT ZERHA ND BUC H 244
6.
WOPiXX
Verwaltung
Nach der Installation und kann WOPiXX über den Browser aufgerufen werden.
Bei der Installation wird bereits der http-Server eingerichtet, so dass an dieser Stelle kein zusätzlicher
Aufwand erforderlich.
Vor Aufruf von WOPiXX sollte jedoch der http-Server gestartet sein. Zum Starten und Beenden der
WOPiXX/Directweb-Umgebung werden die CL-Befehle STRWOPIXX (WOPiXX-Server starten) und
ENDWOPIXX (WOPiXX-Server beenden) in der Bibliothek DIRWEB zur Verfügung gestellt.
Beim ersten Aufruf von WOPiXX sollte man sich mit dem Benutzer-Profil QSECOFR anmelden und zunächst die WOPiXX-Benutzer (Programmierer und User) basierend auf dem IBM i Benutzer-Profilen
mit den entsprechenden Berechtigungen anlegen. Die Wartung der Benutzer erfolgt über den MenüAuswahl-Punkt Benutzer-Info anlegen.
Das Benutzer-Profil QSECOFR wird automatisch angelegt und mit allen Rechten versehen. Meldet sich
ein Benutzer das erste mal unter WOPiXX an und wurde bislang manuell kein Benutzer-Profile angelegt,
wird das Benutzer-Profil automatisch mit Benutzer-Klasse USER, d.h. mit minimalen Rechten) in
WOPiXX angelegt. Ein WOPiXX-Programmierer sollte mindestens mit Benutzer-Klasse System-Bediener
angelegt werden.
WOPiXX beinhaltet neben dem Entwicklungstool eine Reihe von Administrations-Programmen die über
das WOPiXX-Menü aufgerufen werden können.
Die WOPiXX Programme lassen sich in zwei Gruppen, die als Haupt-Menü-Punkte angelegt sind, aufteilen.
6.1

WOPIXX

WOPIXX
Unter diesem Menü-Punkt sind alle zur Administration von WOPiXX notwendigen Verwaltungs-Programme angesiedelt u.a. Programme zur Registrierung von WOPiXXBenutzern, WOPiXX-Anwendungen, Programmen und Bibliothekslisten.
IBM i Allgemeine Verwaltung
Unter diesem Menü-Punkt sind einige List-Anzeigen und kleine VerwaltungsProgramme z.B. zur Anzeige und Verwaltung von Spool Files, Anzeige der aktuellen
Jobs, sowie diverse Listanzeige die Datenbank betreffend zu finden.
Starten/Beenden WOPiXX-Server
Vor Aufruf der Web-Anwendung muss der http-Server und die WOPiXX-Anwendung auf dem Server gestartet sein.
Zum Starten und Beenden werden die folgenden beiden CL-Befehle, die sich in der Bibliothek DIRWEB
befinden und ohne Parameter aufgerufen werden, zur Verfügung gestellt. Die Befehle können in CLProgramme eingebunden werden.
B EN UT ZERHA ND BUC H 245

STRWOPIXX:
WOPiXX -Server starten.
Sofern der http-Server noch nicht gestartet war, wird der http-Server gestartet.
Sofern der http-Server bereits gestartet war, wird lediglich die WOPiXX/DirectwebUmgebung aktiviert.
WOPiXX, sowie alle WOPIXX-Anwendungen werden im Subsystem QHTTPSVR ausgeführt.
ADDLIBLE DIRWEB
STRWOPIXX
/* Oder qualifiziert ohne vorheriges Setzen der Biblitheksliste /*
DIRWEB/STRWOPIXX
CL-Befehl 1 : WOPiXX-Umgebung starten

ENDWOPIXX: WOPiXX/Directweb-Server beenden
Beim Aufruf des ENDWOPIXX-Befehls wird lediglich die WOPiXX/DirectwebUmgebung beendet.
Der http-Server wird nicht beendet.
ADDLIBLE DIRWEB
ENDWOPIXX
/* Oder qualifiziert ohne vorheriges Setzen der Biblitheksliste /*
DIRWEB/END
WOPIXX
CL-Befehl 2: ENDWOPIXX - WOPiXX-Umgebung beenden
Mit dem CL-Befehl WRKSBSJOB (Mit
WOPiXX/Directweb-Jobs angezeigt werden.
Subsystem-Jobs arbeiten)
können die
gestarteten
Die folgende Abbildung zeigt die in Sub-System QHTTPSVR gestarteten WOPiXX/Directweb-Jobs. Die
Anzeige erfolgt über den Befehl WRKSBSJOB:
WRKSBSJOB SBS(QHTTPSVR)
CL-Befehl 3: WRKSBSJOB - Anzeige Subsystem Jobs in Subsystem QHTTPSVR
B EN UT ZERHA ND BUC H 246
Anzeige WOPiXX/DirectWeb-Jobs
über den CL-Gefehl WRKSBSJOB:
WRKSBSJOB SBS(QHTTPSVR)
Abbildung 36: Anzeige der gestarteten WOPiXX/Directweb-Jobs
6.2
Anmeldung unter WOPiXX
Die WOPiXX-Anmeldung erfolgt über den Browser mit der folgenden URL. YourServer steht dabei für
die IP-Adresse Ihres Servers und 8888 ist der Port der fix verwendet wird.
http://YourServer:8888
Sofern der Server gestartet war, sollte im Anschluss der folgende Anmelde-Bildschirm angezeigt werden:
B EN UT ZERHA ND BUC H 247
■ URL: http://YourServer:8888
■ Erste Anmeldung mit Benutzer-Profil
QSECOFR
 Anlegen der berechtigten Benutzer
■ Anmeldung mit IBM i User und Passwort
Abbildung 37 : Anmeldung für WOPiXX-Anwendungen über Browser
Die erste Anmeldung unter WOPiXX nach der Installation sollte mit dem Benutzer-Profil QSECOFR erfolgen. Das QSECOFR-Profil wird automatisch für die WOPiXX/Directweb-Umgebung angelegt und mit allen Rechten ausgestattet.
Die WOPiXX-Anwender, Benutzer- und auch Gruppen-Profile sollten zunächst in der WOPiXXUmgebung angelegt und mit den gewünschten Berechtigungen ausgestattet werden.
Sofern sich ein Benutzer mit seinem IBM i Benutzer-Profile und Passwort anmeldet, werden ihm die
Menü-Auswahl-Punkte für die er berechtigt ist angezeigt. Sofern ein IBM i Benutzer zum ersten Mal
anmeldet, ohne dass in WOPiXX ein entsprechendes Benutzer-Profil angelegt ist, wird automatisch ein
WOPiXX-Benutzer mit minimalen (User) Berechtigungen angelegt.
Sofern sich ein Benutzer versucht sich mit einem Benutzer-Profil, das nicht auf der IBM i registriert ist
oder mit einem falschen Passwort anzumelden, gelten die auf der IBM i hinterlegten Regeln.
Nach erfolgreicher Anmeldung wird das WOPiXX-Menü, sowie die sonstigen WOPiXX-Anwendungen im
Menü-Baum wie in der folgenden Abbildung angezeigt.
B EN UT ZERHA ND BUC H 248
Abbildung 38: Anzeige Menü-Baum nach erfolgreicher Anmeldung
6.3
WOPiXX
Menü im Überblick
Die zur Verfügung gestellten WOPiXX-Programme lassen sich in zwei Klassen, die als separate HauptMenü-Punkte angezeigt werden, aufteilen:


WOPiXX:
WOPiXX-Verwaltungs-Programme
WOPiXX IBM i Allgemeine Verwaltung:
Auswahl an IBM i List-Anzeigen und Verarbeitungs-Programme unabhängig von
WOPiXX.
6.3.1
WOPiXX
Verwaltungs-Programme
Unter dem Menü-Punkt WOPiXX befinden sich in mehreren z.T. verschachtelten Unter-Menü-Punkten
die folgenden WOPiXX Verwaltungs-Programme:
B EN UT ZERHA ND BUC H 249
Abbildung 39: Menü - WOPiXX - Verwaltungs-Programme

Anwendung:
Über den Menü-Punkt-Anwendung kann eine WOPiXX-Anwendung angelegt und verwaltet werden.
Um WOPiXX-Programme ausführen zu können, ist eine Anwendung erforderlich, in der
u.a. die Objekt-Bibliothek und/oder die Bibliotheksliste zugeordnet, die Message-Files
für Mehrsprachigkeit hinterlegt und die Menü-Punkte unter dem das Programm aufgerufen wird definiert werden.

Bibliothekslisten:
Bibliothekslisten können unabhängig von irgendwelchen Anwendungen festgelegt
werden, d.h. die gleiche Bibliotheksliste kann in mehreren Anwendungen und/oder unterschiedlichen Programmen zugeordnet werden.

Bibliothekslisten:
Anlegen und Ändern von Bibliothekslisten


Bibliotheks-Liste / Anwendung
Zuordnung Bibliotheksliste zu Anwendung

Bibliotheks-Liste / Programm
Zuordnung Bibliotheksliste zu Programm
Benutzer-Info:

Sitzungen
Auflistung aktive/gesicherte Directweb/WOPiXX-
B EN UT ZERHA ND BUC H 250
Sitzungen


Benutzer
Verwaltung der Directweb/WOPiXX-Benutzer
Programmierer und User Incl. Gruppen-Profile und Rollen

Benutzer-Menüs
Verwaltung Anwendungsmenüs auf Benutzer-Ebene

Abwesenheit
Verwaltung von Abwesenheiten u.a. für RollenZuweisung
Einstellungen



System
Datentypen
Datenbanken
System-Einstellungen incl. Sprache, Land, Timeouts
Verwalten Extentions für IFS-Dateien
Zugriff auf verschiedene Datenbanken steuern
Aktuell noch nicht realisiert

Nummernkreis
Verwaltung von Nummernkreisen in beliebigen
Spalten/Dateien/Tabellen
Funktionen zur Ermittlung des nächsten Wertes in
WOPiXX enthalten

Parameter verwalten
WOPiXX stellt mehre Möglichkeiten zur Festlegung
von Auswahllisten zur Verfügung.
Über die Parameter können Auswahllisten hinterlegt
und in den Programmen über Schlüssel-Wort eingebunden werden.
Der Aufruf auf Anwendungsebene erfolgt auch über
Kontext-Menü-Auswahl unter Auswahlpunkt Anwendungen.

Abfrage verwalten
Matchcodes können in WOPiXX in Form von SQLAbfragen hinterlegt werden.
Über Abfrage verwalten können SQL-Abfragen auf
Anwendungsebene hinterlegt werden.
Die SQL-Abfragen können über Schlüssel-Wort in
WOPiXX-Programme eingebunden werden.
Der Aufruf pro Anwendung erfolgt auch über KontextMenü-Auswahl unter Auswahl-Punkt Anwendung.

Abfragen *CUSTOMER Allgemein, für beliebige Anwendungen einsetzbare
SQL-Abfragen können diesen Menü-Punkt erfasst und
hinterlegt werden.
SQL-Abfragen sollten nur in Ausnahme-Fällen unter
Anwendung *CUSTOMER hinterlegt werden.

System-Texte
Über System-Texte können Nachrichten-Texte in
B EN UT ZERHA ND BUC H 251
Message-Files gewartet und abgeglichen werden.

Dienste
6.3.2

Anwendungstexte
Über Anwendungstexte können beliebige Texte in
Verschiedenen Sprachen (ohne Message-Files) verwaltet und in mehrsprachigen Umgebungen eingebunden
werden.
Aktuell noch nicht realisiert.

Dyn.Work Tables
Über dynamische Worktables soll es in Zukunft
möglich sein List-Anzeigen ohne zusätzliche Programmierung definieren zu können.
Aktuell noch nicht realisiert
Dienste für E-Mail und Briefversand, sowie SMS

Email
Aktivitäten des E-Mail-Dienstes

Briefversand
Dienst eines Briefversenders erstellen

Funkuhr-Server
Funkuhr-Server starten/beenden

SMS
Versenden und Empfangen von SMS von der IBM i
 Adapter
SMS Sende-Modems verwalten
 Nachrichten
SMS Verwalten
WOPiXX
IBM i Allgemeine Verwaltung
Unter dem Menü-Punkt WOPiXX IBM i Allgemeine Verwaltung befinden sich in mehreren z.T. verschachtelten Unter-Menü-Punkten die folgenden allgemeinen Verwaltungs-Programme
B EN UT ZERHA ND BUC H 252
Abbildung 40: Menü-Baum Haupt-Menü-Punkt WOPiXX - IBM i Allgemeine Verwaltung


Druckausgaben Verarbeiten von Spool Files
Current User Jobs
Auflistung aller aktiven und inaktiven Jobs (z.B. in Warteschlange)
des aktuellen Benutzers
Menü-Punkt auch unter Menü-Punkt Jobs


Kennwort ändern
Uhrzeit

Datenbank
Ändern des eigenen IBM i
Uhrzeit der Funkuhr
Passworts

Informationen und Verwaltung von Datenbanken Objekten
Datendateien
Informationen über Tabellen/Physische Dateien
z.B. Anzahl Sätze, Anzahl gelöschte Sätze, Anzahl Inserts/Updates/Deletes etc.
.
Trigger
Informationen über System und SQL-Trigger

Journalisierung

Informationen über aufgezeichnete Dateien, Views
Datenbereiche und Data Queues
Beginn und Ende der Aufzeichnung
 Journal.Bibliotheken Auflistung aller Bibliotheken mit aufgezeichneten
Tabellen, Views, Datenbereiche und Data Queues
 Alle Journale
Auflistung aller Journale
Erstellen Journal/Journal-Receiver
Beginn und Ende der Aufzeichnung
 DataArea QDFTJRN Verwaltung der QDFTJRN Datenbereiche
Erstellen/Löschen Datenbereich QDFTJRN

Erstellen CSV/XLS

Jobs
Erstellen *.Csv-Datei direkt aus SQL-Statement



Informationen über aktive und inaktive Jobs
Aktive Subsysteme
Auflistung aller aktiven Subsysteme
Aktive Jobs
Auflistung aller aktiven Jobs
Jobs in Job Queue
Auflistung aller Jobs in JobQueue

Sitzungen

Current User Jobs
Auflistung aktive/gesicherte Directweb/WOPiXXSitzungen
Menü-Punkt auch direkt unter WOPiXX IBM i Allgemeine Verwaltung
B EN UT ZERHA ND BUC H 253
6.4
WOPiXX
Benutzer verwalten
Jeder Benutzer, der mit WOPiXX-Arbeiten möchte, muss ein auf der IBM i aktiven Benutzer-Profil haben und zusätzlich in WOPiXX registriert sein.
Ohne aktives Benutzer-Profil auf der IBM i ist eine Anmeldung in einer WOPiXX-Web-Anwendung nicht
möglich.
Sofern der Benutzer bei der ersten Anmeldung in einer WOPiXX-Web-Anwendung noch nicht registriert
ist, wird er automatisch als Benutzer mit eingeschränkten Rechten und sonstigen Default-Einstellungen
angelegt.
Abhängig von WOPiXX Benutzer-Klassen können die Menü-Punkte berechtigt und eingeschränkt werden. Menü-Punkte für die der Benutzer nicht berechtigt ist sind im Menü-Baum nicht sichtbar.
In WOPiXX werden die folgenden Benutzer-Klassen unterschieden:



Benutzer: Benutzer-Gruppe mit den wenigsten Berechtigungen
Systembediener:
Kann alle Menü-Punkte aufrufen und ausführen, die auch die Benutzer-Klasse ausführen darf.
Zusätzlich darf er noch die speziell für den System-Bediener zugelassenen MenüPunkte aufrufen.
Systemadministrator:
Der System-Administrator hat die höchsten Rechte und darf alle Menü-Punkte aufrufen.
Zusätzlich zu den Benutzer-Profilen können Gruppen-Profile angelegt werden. Diesen Gruppen-Profile
können wiederum Benutzer-Klassen zugeordnet werden. Jedem Benutzer kann ein Benutzer-Profil zugeordnet werden. Aus dem Gruppen-Profil werden dann Eigenschaften wie die Benutzer-Klasse, Datums-Format, Sprache, Menü übernommen.
Neben den Standard-Menüs, die basierend auf der dem Benutzer zugeordneten Benutzer-Klasse angezeigt werden können zusätzlich Benutzer-Menüs angelegt werden, d.h. Menü-Punkte können innerhalb
einer Anwendung für unterschiedliche Benutzer- und Gruppen-Profile anders angeordnet und berechtigt
werden. Wird dem Benutzer ein Benutzer-Menü zugeordnet, so wird dieses angezeigt.
Anmerkung:
WOPiXX-Programmierer sollten entweder der Benutzer-Klasse Systemadministrator zugeordnet sein, oder zumindest für den Menü-Punkt Anwendungen und Bibliotheksliste berechtigt sein.
WOPiXX-Programmierer sollten in der Lage sein, neue Anwendungen und
Bibliothekslisten anzulegen, sowie fertige Programme als Menü-Punkte in
WOPiXX zu hinterlegen.
B EN UT ZERHA ND BUC H 254
6.4.1
List-Anzeige: Benutzer
Benutzer werden über den folgenden Menü-Punkt in Hauptmenü WOPiXX verwaltet:
■ Haupt-Menü: WOPiXX
■ Benutzer-Info
■ Benutzer
Beim Aufruf des Menü-Punktes werden alle WOPiXX-Benutzer inclusive den Gruppen-Profilen und Rollen-Profilen angezeigt und können über dieses Programm verwaltet werden.
Über diverse Filter und deren kombinierte Auswahl kann die Anzahl der aufgelisteten Benutzer eingeschränkt werden. So ist z.B. eine Auswahl nach Sprache möglich.
Die folgende Abbildung zeigt die aktuellen WOPiXX-Benutzer, sowie die Gruppen- und Rollen-Profile
an.
Abbildung 41: List-Anzeige Benutzer
B EN UT ZERHA ND BUC H 255
Durch Rechts-Click auf dem gewünschten Benutzer-, Gruppen- oder Rollen-Profil wird das folgende
Kontext-Menü angezeigt.
Abbildung 42: List-Anzeige Benutzer - Kontext-Menü
Neben den üblichen Standard-Auswahl-Punkte für Hinzufügen (durch den Button Erstellen), Ändern,
Kopieren, Löschen und Anzeigen (Eigenschaften) werden noch einige weitere Auswahlen zur Verfügung
gestellt. Sofern ein Datensatz gelöscht werden soll muss die Löschung in einem Bestätigungs-fenster
bestätigt werden.


Sitzungen Auflistung der aktiven und gesicherten Web-Jobs des Benutzer-Profile.
Druckausgaben
Die Spool Files des Benutzers werden aufgelistet und können angezeigt werden

Abwesenheit
Abwesenheiten des Benutzers können erfasst und verwaltet werden. Dies ist insbesondere notwendig im Bezug auf die Rollen-Verwaltung

Mitglieder

Mitglied von
Die Auswahl ist nur für Gruppenmitglieder gültig und listet alle zur ausgewählten Gruppe zugeordneten Benutzer und Gruppen-Profile auf.
Bei Auswahl von nicht Gruppen-Mitgliedern wird eine Fehlermeldung angezeigt.
Zeigt alle Gruppen- und Rollen-Profile an, denen der ausgewählte Benutzer angehört.

directdial Benutzeranwendungen
Diese Auswahl ist nur dann sichtbar und möglich wenn das Toolmaker-Produkt directdial installiert ist.
Sofern directdial installiert ist, werden die aktuellen directdial-Anwendungen aufgelistet.

Einstellungen zurücksetzen
Benutzer-Einstellungen (z.B. gesicherte Spalten und SQL-Abfragen) können für den
B EN UT ZERHA ND BUC H 256
ausgewählten Benutzer zurückgesetzt / gelöscht werden.
6.4.2
Detail-Anzeige: Ändern/Erstellen Benutzer
Über das Programm Benutzer können neben den echten Anwendern (Benutzer und auch WOPiXXProgrammierer) Gruppen- und Rollen-Profile angelegt werden.
Die echten Anwender können zu einem Gruppen-Profil und/oder einem oder mehreren Rollen-Profilen
zugeordnet werden.
Die Anwender wiederum können als System-Benutzer oder als externer Benutzer angelegt werden.
6.4.2.1 Erstellen/Ändern Anwender
Jeder Benutzer (Anwender oder Programmierer), der mit WOPiXX arbeiten möchte, muss registriert sein.
Es können nur Benutzer mit einem aktiven Benutzer-Profil auf der IBM i in WOPiXX registriert werden.
Sofern sich ein Benutzer mit einem aktiven Benutzer-Profil auf der IBM i anmeldet und dieser Benutzer
noch nicht registriert ist, wird automatisch ein entsprechendes WOPiXX-Profil, mit Benutzer-Klasse Benutzer und Default-Einstellungen angelegt.
Anmerkung:
Über das WOPiXX-Verwaltungs-Programm Erstellen/Ändern Anwender
können keine IBM i Benutzer-Profile angelegt werden.
Bei der folgenden Abbildung handelt es sich um die Erfassungs-Maske für WOPiXX-Anwender.
B EN UT ZERHA ND BUC H 257
Abbildung 43: Detail-Anzeige Erfassen/Ändern Benutzer
Anwender
Die Eingabe-Felder sind nach Zugehörigkeit unter den folgenden Reitern angeordnet:

Allgemein:
Benutzerindividuelle Informationen

Directdial:
Benutzerindividuelle Einstellungen für das Toolmaker-Produkt directdial.
Der Reiter und die zugehörigen Informationen werden nur angezeigt, wenn das
Toolmaker-Produkt directdial installiert wurde

directarchiv:
Benutzerindividuelle Einstellungen für das Toolmaker-Produkt directarchiv
Der Reiter und die zugehörigen Informationen werden nur angezeigt, wenn das
Toolmaker-Produkt directdial installiert wurde

Arbeitszeit Sicherung der täglichen Arbeitszeiten
B EN UT ZERHA ND BUC H 258
Verwendung nur in Verbindung mit Abwesenheiten für die Rollen-Zuordnung notwendig.
Informationen unter Reiter Allgemein:

Systembenutzer
Ein Benutzer der nicht als System-Benutzer angelegt wird, meldet sich zwar mit seinem Benutzernamen und Kennwort an, arbeitet jedoch unter einem anderen allgemeinen Benutzer-Profil (z.B. QUSER oder LAGER)
Sofern der Benutzer nicht als System-Benutzer angelegt wird, müssen zusätzliche Informationen wie Beschreibung (=Name), Kennwort, sowie das zugehörige IBM i Benutzer-Profile erfasst werden.

Typ


Aktiviert
Externer Zugriff erlauben
Bei Aktivierung wird ein externer Zugriff für den Benutzer erlaubt, falls dieser nicht ins
Subnetz gehört.

Primäre-Benutzergruppe
Jedem Benutzer kann eine Benutzer-Gruppe, die zuvor mit dem Profil-Typ Gruppe
angelegt wurde zugeordnet werden.
In einer Benutzer-Gruppe können Informationen wie Sprache, Datums- und ZeitFormate hinterlegt werden.
Wurde der Benutzer einer Benutzer-Gruppe zugeordnet, können die in der Gruppe
hinterlegte Default-Werte auf das Benutzer-Profil übertragen werden.

Benutzerklasse
Über die Benutzerklasse werden die Berechtigungen des Anwenders, bzw. für welche
Menü-Punkte der Anwender berechtigt ist gesteuert.
Aktuell werden die folgenden Klassen unterschieden:

Benutzer:
Nur wenige Rechte bzw. Auswahl weniger MenüPunkte erlaubt.
Es können wahlweise Anwender, Gruppen- oder Rollen-Profile erfasst werden.
Der Profil-Typ wird einmalig festgelegt und darf nicht mehr geändert werden.
Abhängig vom Profil müssen unterschiedliche Informationen erfasst werden.
WOPiXX-Anwender und Programmierer müssen mit Typ Benutzer angelegt werden

Systembediener:
Berechtigung für alle Menü-Punkte, für die auch
der Benutzer berechtigt ist, sowie weitere MenüPunkte

Administrator:
Berechtigung für alle Menü-Punkte

Gruppen-Profil
Die im zugeordneten Gruppen-Profil hinterlegte
Benutzerklasse wird übernommen.
WOPiXX-Programmierer sollten entweder der Benutzer-Klasse Administrator zugeord-
B EN UT ZERHA ND BUC H 259
net werden.

Menübaum
Per Default wird dem Benutzer der Standard Directweb/WOPiXX-Menübaum zugeordnet. Abhängig von der zugeordneten Benutzerklasse ist der Anwender dann für alle
oder nur ein Sub-Set der vorhandenen Funktionen berechtigt.
Daneben ist es möglich über den Menü-Punkt Benutzer-Menüs individuelle MenüBäume zu definieren und den Benutzern oder auch dem Gruppen-Profil zuzuordnen.
Über die Auswahl Gruppen-Profil kann der dem Gruppen-Profil zugeordnete MenüBaum für den Anwender übernommen werden.

Sprache

E-Mail-Adresse
Die E-Mail-Adresse des Anwenders kann an dieser Stelle hinterlegt werden

CTI Anwendung
Auswahl der CTI Anwendung, die für das Computertelefon verwendet werden soll, z.B.
Skype

SMS Adapter Pool
SMS Systeme können pro Benutzer definiert bzw. zugeordnet werden.
Die verwendeten Adapter können wiederum zu Pools zusammengefasst werden.
Somit kann einem Benutzer ein bestimmter Pool zugeordnet werden.

Datumsformat
Per Default wird das System-Datums-Format, d.h. das im System-Wert QDATFMT
hinterlegte Datums-Format verwendet.
Andere Format können jedoch ausgewählt werden.
Ebenso kann das im Gruppen-Profil hinterlegte Datumsformat übernommen werden.

Datumstrennzeichen
Per Default wird das System-Datums-Trennzeichen, d.h. das im System-Wert
Über die Sprache wird die Mehrsprachigkeit der Anwendungen gesteuert.
Per Default wird die System-Sprache, d.h. die Sprache, die im System-Wert QLANGID
hinterlegt ist als Sprache übernommen.
Diese Einstellung kann durch die Übernahme des im Benutzer-Profil hinterlegte Sprache überschrieben werden.
Des Weiteren kann eine individuelle Sprache ausgewählt werden.
In WOPiXX-Anwendungen wird über diesen Eintrag gesteuert, in welcher Sprache der
Anwender arbeitet.
Sofern die Anwendung die zugeordnete Sprache nicht unterstützt, wird die SystemSprache verwendet.
System-Meldungen werden immer in der System-Sprache angezeigt bzw. aus der in
dem System-Teil der Bibliotheksliste hinterlegten führenden Sprachen-Bibliothek ermittelt.
Auch wenn an dieser Stelle eine Sprache zugeordnet werden muss, WOPiXXAnwendungen müssen nicht zwangläufig mehrsprachig gestaltet werden.
B EN UT ZERHA ND BUC H 260
QDATSEP hinterlegte Datums-Trennzeichen verwendet.
Andere Datums-Trennzeichen können ausgewählt werden.
Ebenso kann das im Gruppen-Profil hinterlegte Datums-Trennzeichen übernommen
werden.

Uhrzeit Trennzeichen
Per Default wird der System-Zeit-Separator, d.h. der im System-Wert QTIMSEP hinterlegte Zeit-Separator verwendet.
Andere Separatoren können ausgewählt werden.
Ebenso kann der im Gruppen-Profil hinterlegte Zeit-Separator übernommen werden.

Serien-Nr. des Mobilgerätes
Eingabe der Seriennummer des Mobilgerätes. Diese dient zur eindeutigen Identifizierung des Gerätes.

Rufnummer des Mobilgerätes
Eingabe der Rufnummer des Mobilgerätes. Diese wird bei Bedarf zum Herstellen einer
Verbindung benötigt
Informationen unter Reiter Arbeitszeit
Die regelmäßigen täglichen und wöchentlichen Arbeitszeiten eines Benutzers können hier hinterlegt
werden.
Diese Einträge werden in Verbindung mit den erfassten Abwesenheitszeiten bei der Rollen-Zuordnung
bzw. der Vertreterregelung geprüft. Ist eine Vertreterregelung im angegebenen Zeitraum nicht möglich,
so erfolgt eine Benachrichtigung an den Administrator der Vertreterregelung
Flexible Arbeitszeiten und Schicht-Modelle, sowie Arbeitszeiten, die über Mitternacht hinausgehen sind
nicht vorgesehen.
6.4.2.2 Erstellen/Ändern Gruppen-Profile
In einem Gruppen-Profil kann ein Sub-Set der Informationen, die bei einem WOPiXX-Benutzer eingestellt
werden können hinterlegt werden. Die im Gruppen-Profil hinterlegten Eigenschaften können von dem
zugeordneten Benutzer übernommen werden.
Das gleiche Gruppen-Profil kann mehreren Benutzern zugeordnet werden, d.h. bei einer Änderung
muss nur der Eintrag im Gruppen-Profil geändert werden. Die Änderung wird automatisch von allen zugeordneten Benutzer-Profilen übernommen.
Die folgende Abbildung zeigt die Informationen, die in einem Gruppen-Profil hinterlegt werden können:
B EN UT ZERHA ND BUC H 261
Abbildung 44: Detail-Anzeige Erfassen/Ändern Benutzer
Gruppen-Profile
Informationen unter Reiter Allgemein:

Benutzer
Name des Gruppen-Profile
Bei dem Gruppen-Profil muss es sich nicht zwangsläufig um ein vorhandenes IBM i
Benutzer-Profil handeln.
Vielmehr kann ein in und für die directweb/WOPiXX-Anwendungen beliebiger, jedoch
eindeutiger Name gewählt werden.

Typ

Beschreibung
Neben dem eindeutigen Gruppen-Profil-Namen kann noch eine Kurzbeschreibung
des Gruppen-Profile erfasst werden.

Benutzerklasse
Über die Benutzerklasse werden die Berechtigungen, für welche Menü-Punkte der
Anwender berechtigt ist gesteuert.
Aktuell werden die folgenden Klassen unterschieden:

Benutzer:
Nur wenige Rechte bzw. Auswahl weniger MenüPunkte erlaubt.
Gruppen-Profile werden immer mit dem Profil-Typ Gruppe angelegt

Systembediener:
Berechtigung für alle Menü-Punkte, für die auch
B EN UT ZERHA ND BUC H 262
der Benutzer berechtigt ist, sowie weitere MenüPunkte

Administrator:
Berechtigung für alle Menü-Punkte
Die im Gruppen-Profil hinterlegte Benutzerklasse kann in die zugeordneten BenutzerProfile übernommen werden.

Menübaum
Für das Gruppen-Profil kann ein Menü-Baum hinterlegt werden, dabei kann entweder
das Standard-directweb/WOPiXX-Menü und ein individuell angelegtes Benutzer-Menü
ausgewählt werden.
Der im Gruppen-Profil hinterlegte Menü-Baum kann in die zugeordneten BenutzerProfile übernommen werden.

Sprache

Verwendung als Verteilerlisten erlauben

CTI Anwendung
Auswahl der CTI Anwendung, die für das Computertelefon verwendet werden soll, z.B.
Skype
Die im Gruppen-Profil hinterlegte CTI-Anwendung kann in die zugeordneten BenutzerProfile übernommen werden.

SMS Adapter Pool
SMS Systeme können pro Benutzer definiert bzw. zugeordnet werden.
Die verwendeten Adapter können wiederum zu Pools zusammengefasst werden.
Somit kann einem Benutzer ein bestimmter Pool zugeordnet werden.
Der im Gruppen-Profil hinterlegte SMS Adapter Pool kann in die zugeordneten Benutzer-Profile übernommen werden.

Datumsformat
Per Default wird das System-Datums-Format, d.h. das im System-Wert QDATFMT
hinterlegte Datums-Format verwendet.
Andere Format können jedoch ausgewählt werden.
Dar im Gruppen-Profil hinterlegte Datumsformat kann in die zugeordneten BenutzerProfile übernommen werden.

Datumstrennzeichen
Per Default wird das System-Datums-Trennzeichen, d.h. das im System-Wert
QDATSEP hinterlegte Datums-Trennzeichen verwendet.
Über die Sprache wird die Mehrsprachigkeit der Anwendungen gesteuert.
Per Default wird die System-Sprache, d.h. die Sprache, die im System-Wert QLANGID
hinterlegt ist als Sprache übernommen.
Die Default-Sprache kann jedoch durch jede andere Sprache ersetzt werden.
Der im Gruppen-Profil Sprache kann in die zugeordneten Benutzer-Profile übernommen werden.
B EN UT ZERHA ND BUC H 263
Andere Datums-Trennzeichen können ausgewählt werden.
Dar im Gruppen-Profil hinterlegte Datums-Trennzeichen kann in die zugeordneten Benutzer-Profile übernommen werden.

6.5
Uhrzeit Trennzeichen
Per Default wird der System-Zeit-Separator, d.h. der im System-Wert QTIMSEP hinterlegte Zeit-Separator verwendet.
Andere Separatoren können ausgewählt werden.
Ebenso kann der im Gruppen-Profil hinterlegte Zeit-Separator übernommen werden.
Der im Gruppen-Profil hinterlegte Zeit-Separator kann in die zugeordneten BenutzerProfile übernommen werden.
Bibliothekslisten
Da IBM i Anwendungen i.d.R. mit mehreren Bibliotheken, die in der Bibliotheksliste hinterlegt sind, gearbeitet wird, ermöglicht auch WOPiXX Bibliotheklisten vorzugeben.
Bibliothekslisten werden zunächst unabhängig von einer Anwendung definiert, so dass die gleiche Bibliotheksliste für mehrere Anwendungen oder Programme verwendet werden kann. Die ToolmakerBibliotheken, DIRWEB und WOPIX, die zur Erstellung und Ausführung von WOPiXX-Programmen erforderlich sind müssen nicht zwingend in den Bibliothekslisten hinterlegt werden. Zur Laufzeit werden beide
Bibliotheken in die aktuelle Bibliotheksliste aufgenommen, sofern sie noch nicht in der Bibliotheksliste
enthalten sind.
Bibliothekslisten können auf Programm- und/oder Anwendungsebene zugeordnet werden.
Zur Laufzeit wird zunächst geprüft, ob dem aufzurufenden Programm eine Bibliotheksliste zugeordnet
wurde. Sofern eine Bibliotheksliste vorgegeben wurde, wird diese gesetzt und das Programm ausgeführt.
Wurde für das Programm keine Bibliotheksliste definiert, wird geprüft, ob der Anwendung eine Bibliotheksliste zugeordnet wurde. Sofern eine Bibliotheksliste gefunden wurde, wird diese gesetzt.
Sollte auch für die Anwendung keine Bibliotheksliste definiert worden sein, wird geprüft, ob die für die
Anwendung definierte Objekt- und Datenbibliotheken in der Bibliotheksliste vorhanden sind. Ggf. werden die Bibliotheken der aktuellen Bibliotheksliste hinzugefügt.
Bibliothekslisten können unter dem Menü-Punkt WOPiXX-Administration und Sub-Menü Bibliothekslisten verwaltet werden. Innerhalb des Sub-Menüs sind die folgenden Menü-Punkte vorgesehen:



Bibl. Listen
Wartung der Bibliothekslisten (ohne Anwendungsbezug)
Bibl. Liste/Anwendung
Übersicht und Zuordnung von Bibliothekslisten zu Anwendungen
Bibl. Liste/Programm
Übersicht und Zuordnung von Bibliothekslisten zu Programmen
B EN UT ZERHA ND BUC H 264
6.5.1
Allgemeine Bibliothekslisten
Universell, für beliebige Anwendungen und beliebige Programme einsetzbare Bibliothekslisten können
definiert werden.
Die Verwaltung der universellen Bibliothekslisten erfolgt in der WOPiXX-Administration.
6.5.1.1 List-Anzeige Bibliothekslisten
Die List-Anzeige der vorhandenen Bibliothekslisten erfolgt über die Menü-Auswahl Bibliothekslisten und
Untermenü-Punkt Bibl. Listen in der WOPiXX-Administration.
Abbildung 45: Aulistung aller Bibliothekslisten





Spalten
Bibliotheksliste
Eindeutige Kennung der Bibliotheksliste
Bezeichnung
Bezeichnung/Beschreibung der Bibliotheksliste
Bibliotheken:
Auflistung der in der Bibliotheksliste hinterlegten Bibliotheken
Export:
Gibt an, ob die Bibliotheksliste beim Export einer Anwendung mit ausgeliefert werden
darf.
Import:
Gibt an, ob beim Importieren einer Anwendung die Bibliotheksliste ersetzt oder nur
wenn noch nicht vorhanden hinzugefügt werden darf.
Buttons
B EN UT ZERHA ND BUC H 265






Erstellen
Erfassen einer neuen Bibliotheksliste
Kontext-Menü
Ändern
Ändern der Bibliotheksliste
Bibliotheken können hinzugefügt und entfernt werden. Die Reihenfolge der Bibliotheken kann geändert werden.
Kopieren
Kopieren der Bibliotheksliste
Eine bestehende Bibliotheksliste kann dupliziert und gleichzeitig modifiziert werden.
Löschen
Löschen einer Bibliotheksliste
Eigenschaften
Anzeigen der Bibliotheksliste
Verwendung
List-Anzeige für welche Anwendungen und in welchen Programmen eine Bibliotheksliste verwendet wird.
6.5.1.2 Bibliothekslisten bearbeiten
Die Bearbeitung von Bibliothekslisten, d.h. Erstellen, Ändern und Löschen erfolgt durch Klicken auf entsprechende Buttons oder Kontext-Menü-Punkte in der List-Anzeige Anwendungen (6.1.1 List-Anzeige
Anwendungen), Zuordnung Bibliotheksliste/Anwendung (6.5.2 Zuordnen Bibliotheksliste zu Anwendung)
oder Zuordnung Bibliotheksliste/Programm (6.5.3 Zuordnen Bibliotheksliste zu ).
6.5.1.2.1 Bibliothekslisten erfassen
Der Aufruf erfolgt aus der Allgemeinen Bibliothekslisten-Übersicht durch Klick auf den Button Erstellen.
Bei der Neuanlage einer Bibliotheksliste können zunächst bis zu 10 Bibliotheken erfasst werden. Die
Toolmaker-Bibliotheken DIRWEB und WOPIXX müssen nicht zwangsläufig in der Bibliotheksliste hinterlegt werden, da sie zur Laufzeit automatisch am Ende der Bibliotheksliste eingebunden werden (sofern
sie noch nicht in der Bibliotheksliste enthalten sind.
Sofern mehr als 10 Bibliotheken benötigt werden, muss die Bibliotheksliste zunächst gespeichert werden. Bei Änderung der Bibliotheksliste können jeweils bis zu 5 weiteren Bibliotheken hinzugefügt werden.
B EN UT ZERHA ND BUC H 266
Abbildung 46: Bibliotheksliste Erstellen

Eingabe-Felder Bibliotheksliste (Kopf-Daten)
Bibliotheksliste
Für jede Bibliotheksliste muss ein bis zu 10 Zeichen langer eindeutiger Name festgelegt werden.

Nachrichten-Id
Bei mehrsprachigen Anwendungen kann eine Message-Id aus der Message-File DIRWEB für die Bezeichnung der Bibliotheksliste angegeben werden.

Bezeichnung
Beschreibung der Bibliotheksliste.
Nachrichten-Id oder Bezeichnung müssen angegeben werden. Sofern keine Bezeichnung jedoch eine Nachrichten-Id angegeben wurde wird die Bezeichnung automatisch
aus der Message-File DIRWEB ermittelt.
Eingabe-Felder
Bibliotheken (Positions-Daten)
Bei Erfassung können bis zu 10 Bibliotheken angegeben werden bei Änderung werden die erfassten
Bibliotheken angezeigt und es können zusätzlich 5 weitere Bibliotheken erfasst werden.
B EN UT ZERHA ND BUC H 267
Für die einzelnen Bibliotheken werden die folgenden Eingabe-Felder zur Verfügung gestellt:

Sequenz

Bibliothek
Reihenfolge in der die Bibliotheken in der Liste erscheinen sollen.
Die Sequenz kann beliebig verändert werden, doppelte Sequenzen sind jedoch nicht
zulässig.
Die angegebenen Bibliotheken müssen existieren und dürfen innerhalb der Bibliotheksliste nicht doppelt erfasst werden.
Durch Klick auf den Button wird die SQL-Abfrage LISTLIB aktiviert und die gewünschte Bibliothek kann ausgewählt werden.

Löschen

Buttons
Speichern

Mit dieser Auswahl können einzelne Bibliotheken aus der Bibliotheksliste entfernt werden.
Beim Speichern wird die Bibliotheksliste neu erstellt, d.h. Kopf- und Positions-Daten
werden erzeugt. Die Positions-Daten werden resequenziert.
Abbrechen Die Erfassung der Daten wird abgebrochen
6.5.1.2.2 Bibliothekslisten anzeigen/ändern/kopieren
Über Kontext-Menü-Auswahl in List-Anzeige Bibliothekslisten können die erfassten Bibliothekslisten angezeigt (Eigenschaften) oder bearbeitet werden (Ändern).
B EN UT ZERHA ND BUC H 268
Abbildung 47: Bibliothekslisten anzeigen/ändern
Beim Ändern und Kopieren wird die vorhandene Bibliotheksliste angezeigt und 5 freie BibliothekslistenPositionen hinzugefügt.
Beim Ändern kann die eindeutige Kennung der Bibliotheksliste nicht geändert werden. Beim Kopieren
muss eine neue eindeutige Kennung angegeben werden.
Durch Löschen können sowohl beim Kopieren als auch beim Ändern einzelne Bibliotheken aus der Bibliotheksliste entfernt werden.
Die Reihenfolge der Bibliotheken kann beliebig verändert werden.
Beim Speichern werden die Positionssätze der zu ändernden Bibliotheksliste gelöscht und basierend auf
den erfassten Bibliotheken neu erstellt und resequenziert.
6.5.1.2.3 Bibliothekslisten löschen
B EN UT ZERHA ND BUC H 269
Das Löschen einer Bibliotheksliste erfolgt über Kontext-Menü-Auswahl in List-Anzeige Bibliothekslisten.
Das Löschen muss bestätigt oder abgebrochen werden.
Abbildung 48: Bibliotheksliste löschen
6.5.1.3 Bibliothekslisten verwalten
Die Kontext-Menü-Auswahl Bibliothekslisten verwalten stellt eine Alternative zu der Kontext-MenüAuswahl Bibliotheklisten ändern dar.
Im Gegensatz zu der Auswahl Bibliothekslisten berarbeiten, bei der einer Bibliotheksliste nur 25 Bibliotheken zugewiesen werden können, ist die Anzahl der Biblitoheken bei der Verwaltung der Bibliotheksliste nicht beschränkt.
Zusätzliche Bibliotheken können nach Klick auf den Button Bibliothek hinzufügen erfasst werden.
Über die Kontext-Menü-Auswahl Bibliothek entfernen können Bibliotheken aus der Bibliotheksliste gelöscht werden.
Die Reihenfolge der Bibliotheken innerhalb der Bibliotheksliste kann über Drag und Drop verändert werden. Durch den anschließenden Klick auf den Button Resequenzierung wird die geänderte Reihenfolge
fortgeschrieben.
B EN UT ZERHA ND BUC H 270
Abbildung 49: Bibliotheken verwalten
Spalten

Reihenfolge

Bibliothek Name der Bibliothek

Beschreibung der Bibliothek
Kontext-Menü-Auswahl

Bibliothek entfernen
Bibliothek aus Bibliotheksliste löschen


Buttons
Bibliohtek hinzufügen
Erfassen einer zusätzlichen Bibliothek
Resequenzierung
Die Reihenfolge der einzelnen Bibliotheken kann über Drag und Drop verändert werden. Sobald mindestens eine Bibliothek bewegt wurde, wird der Button Resequenzierung aktiviert.
Durch Klick auf den Resequenzierung wird die geänderte Reihenfolge der Bibliotheksliste fortgeschrieben.
6.5.1.3.1 Bibliothek hinzufügen
Bei Klick auf den Button Bibliothek hinzufügen, wird ein Fenster geöffnet in dem eine weitere Bibliothek
für die Bibliotheksliste erfasst werden kann.
Die bereits zu der Bibliotheksliste gehörenden Bibliotheken werden im Header aufgelistet.
Die Bibliothek kann über Matchode ausgewählt werden.
B EN UT ZERHA ND BUC H 271
Per Default wird die nächst höhere Sequenz ermittelt, d.h. die Bibliothek würde ans Ende der Bibliotheksliste angefügt werden. Die vorgeschlagene Sequenz kann jedoch überschrieben werden, so dass
die neuerfasste Bibliothek zwischen die vorhandenen Bibliohteken eingefügt werden kann.
Die Reihenfolge kann jedoch auch noch im Nachinein in der List-Anzeige Bibliotheksliste verwalten korrigiert werden.
Abbildung 50: Bibliothek zu Bibliotheksliste hinzufügen
6.5.1.4 Verwendung der Bibliothekslisten
Der Aufruf erfolgt über Kontext-Menü-Auswahl in der List-Anzeige Bibliothekslisten (6.5.1.1 List-Anzeige
Bibliothekslisten).
Die List-Anzeige gibt an, in welchen Anwendungen und/oder Programmen die ausgewählte Bibliotheksliste verwendet wird.
Die eindeutige Id der Bibliotheksliste wird als Parameter übergeben. Die eindeutige Kennung, sowie der
Name der Bibliotheksliste werden als Header-Felder angezeigt. Eine (Filter-)Auswahl der Bibliotheksliste
ist nicht möglich.
B EN UT ZERHA ND BUC H 272
Abbildung 51: Zuordnung Bibliothekslisten
Spalten
Bibliotheksliste-Nr.
Eindeutige Kennung der Bibliotheksliste

Bezeichnung
Bezeichnung der Bibliotheksliste


Applikation

Eindeutige Kennung der Anwendung, in der die Bibliotheksliste verwendet wird.
Bezeichnung Anwendung

Programm
Programm das die Bibliotheksliste verwendet.
Wurde die Bibliotheksliste nur für die Anwendung verwendet, bleibt die Spalte leer.

Bibliothek
Programm-Bibliothek. Wurde die Bibliotheksliste nur für die Anwendung verwendet,
bleibt die Spalte leer.
6.5.2
Zuordnen Bibliotheksliste zu Anwendung
Die List-Anzeige der den Anwendungen zugeordneten Bibliothekslisten erfolgt über die Menü-Auswahl
Bibliothekslisten und Untermenü-Punkt Bibl. Liste/App. in der WOPiXX-Administration.
In dieser List-Anzeige werden die vorhandenen Anwendungen und die ihnen zugeordneten Bibliothekslisten angezeigt. Anwendungen, denen keine Bibliotheksliste zugeordnet wurde, werden nicht angezeigt.
B EN UT ZERHA ND BUC H 273
Abbildung 52: Zuordnen Bibliotheksliste zu Anwendung






Spalten
Applikation Eindeutige Kennung der Anwendung
Bibliothekslisten-Nr.
Eindeutige Kennung der Bibliotheksliste
Bezeichnung
Export
Gibt an ob die Bibliotheksliste exportiert werden kann
Import
Gibt an ob beim Importieren die Bibliotheksliste ersetzt oder nur hinzugefügt werden
darf.
Bibliotheken
Auslistung der Bibliotheken in der Bibliotheken
Buttons

Erstellen


Zuordnen Anwendung zu Bibliotheksliste
Kontext-Menü
Ändern
Anwendung andere Bibliotheksliste zuordnen
Löschen
Zuordnung Bibliotheksliste/Anwendung löschen

Alle Bibl. Listen/Anwendung
Auflistung aller der Anwendung (Anwendungs- und Programm-Ebene) zugeordneten
Bibliothekslisten

Bibliotheksliste
Anzeige und Bearbeitung der Bibliotheksliste (6.5.1 Allgemeine Bibliothekslisten)
B EN UT ZERHA ND BUC H 274
6.5.2.1 Zuordnung Bibliotheksliste/Anwendung bearbeiten
Die Bearbeitung der Zuordnung Bibliotheksliste zu Anwendung, d.h. Erstellen, Ändern und Löschen erfolgt durch Klicken auf entsprechende Buttons oder Kontext-Menü-Punkte in der List-Anzeige Zuordnung Bibliotheksliste/Anwendung (6.5.2 Zuordnen Bibliotheksliste zu Anwendung).
6.5.2.1.1 Zuordnung Bibliotheksliste / Anwendung erstellen
Der Aufruf erfolgt aus der List-Anzeige Bibliothekslisten/Anwendung (6.5.2 Zuordnen Bibliotheksliste zu
Anwendung) durch Klick auf den Button Erstellen.
Abbildung 53: Erfassen Zuordnung Anwendung/Bibliotheksliste



Eingabe-Felder
Applikation
Eindeutige Kennung der Anwendung, der eine Bibliotheksliste zugeordnet werden
kann.
Einer Anwendung kann nur eine einzige Bibliotheksliste zugeordnet werden.
Durch Klick auf den Button können die Anwendungen angezeigt und ausgewählt werden.
Bibliotheksliste
Eindeutige Kennung der Bibliotheksliste
Die gleiche Bibliotheksliste kann mehreren Anwendungen zugeordnet werden.
Durch Klick auf den Button können die vorhandenen Bibliothekslisten angezeigt und
ausgewählt werden.
Buttons
Speichern
Beim Speichern werden die erfassten Informationen geprüft und gespeichert.
B EN UT ZERHA ND BUC H 275

Abbrechen
Die Erfassung der Daten wird abgebrochen
6.5.2.1.2 Zuordnung Bibliotheksliste / Anwendung ändern
Über Kontext-Menü-Auswahl in Zuordnung Bibliotheksliste/Applikation (6.5.2 Zuordnen Bibliotheksliste
zu Anwendung) können die zugeordneten Bibliothekslisten geändert werden (Ändern).
Abbildung 54: Anzeigen/Ändern Zuordnung Bibliotheksliste/Anwendung
Beim Ändern kann lediglich die Bibliotheksliste geändert werden. Alle anderen Informationen werden nur
angezeigt.
6.5.2.1.3 Zuordnung Bibliotheksliste / Anwendung löschen
Das Löschen der Zuordnung einer Bibliotheksliste zu einer Anwendung erfolgt über Kontext-MenüAuswahl in List-Anzeige Zuordnung Bibliothekslisten/Anwendung (6.5.2 Zuordnen Bibliotheksliste zu
Anwendung). Das Löschen muss bestätigt oder abgebrochen werden.
Abbildung 55: Löschen Zuordnung Bibliotheksliste/Anwendung
B EN UT ZERHA ND BUC H 276
6.5.2.1.4 Alle Bibliothekslisten/ Anwendung anzeigen
Der Aufruf erfolgt aus der List-Anzeige Zuordnung Bibliotheksliste/Anwendung (6.5.2 Zuordnen Bibliotheksliste zu Anwendung) über Kontext-Menü-Auswahl Alle Bibliothekslisten/Anwendung.
Es werden alle in der Anwendung verwendeten Bibliothekslisten, d.h. die Standard-Bibliotheksliste für
die Anwendung sowie die Bibliothekslisten, die einzelnen Programmen zugeordnet wurden.
Abbildung 56: List-Anzeige Bibliothekslisten/Anwendung






Spalten
Applikation Eindeutige Kennung der Anwendung
Programm Programm
Bleibt für die Standard-Bibliotheksliste der Anwendung leer.
Bibliothek Programm-Bibliothek
Bleibt für die Standard-Bibliotheksliste der Anwendung leer.
Bibliotheksliste
Eindeutige Kennung der Bibliotheksliste
Bezeichnung
Kurzbeschreibung der Bibliotheksliste
Bibliotheken
Auflistung der Bibliotheken in der Bibliotheksliste
Kontext-Menü-Auswahl

Ändern
Ändern der zugeordneten Bibliotheksliste
(6.5.1.2.2 Bibliothekslisten anzeigen/ändern/kopieren)

Löschen
Zuordnung Bibliotheksliste/Anwendung oder Programm löschen
B EN UT ZERHA ND BUC H 277

Bibliotheksliste
Anzeige und Bearbeitung der Bibliotheksliste (6.5.1 Allgemeine Bibliothekslisten)
6.5.2.1.5 Bibliotheksliste anzeigen/bearbeiten
Der Aufruf erfolgt aus der List-Anzeige Zuordnung Bibliotheksliste/Anwendung (6.5.2 Zuordnen Bibliotheksliste zu Anwendung) über Kontext-Menü-Auswahl Bibliotheksliste.
Die zugeordnete Bibliotheksliste wird angezeigt und kann bearbeitet werden (6.5.1.2.2 Bibliothekslisten
anzeigen/ändern/kopieren).
6.5.3
Zuordnen Bibliotheksliste zu Programm
Die List-Anzeige der den Programmen zugeordneten Bibliothekslisten erfolgt über die Menü-Auswahl
Bibliothekslisten und Untermenü-Punkt Bibl. Liste/PGM in der WOPiXX-Administration.
In dieser List-Anzeige werden die vorhandenen Anwendungen und die ihnen zugeordneten Bibliothekslisten, sowie die einzelnen Programmen zugeordneten Bibliothekslisten angezeigt. Anwendungen und
Programme, denen keine Bibliotheksliste zugeordnet wurde, werden nicht angezeigt.
Abbildung 57: List-Anzeige Bibliotheksliste/Programm





Spalten
Applikation Eindeutige Kennung der Anwendung
Programm Programm
Bleibt für die Standard-Bibliotheksliste der Anwendung leer.
Bibliothek Programm-Bibliothek
Bleibt für die Standard-Bibliotheksliste der Anwendung leer.
Bibliothekslisten-Nr.
Eindeutige Kennung der Bibliotheksliste
Bezeichnung
B EN UT ZERHA ND BUC H 278
Kurzbeschreibung der Bibliotheksliste

Export


Import
Gibt an, ob die Bibliotheksliste beim Import ersetzt oder nur hinzugefügt werden darf.
Bibliotheken
Auflistung der Bibliotheken in der Bibliotheksliste

Buttons
Erstellen
Gibt an, ob die Bibliotheksliste exportiert werden kann
Zuordnung Bibliotheksliste zu Programm
Kontext-Menü-Auswahl
Ändern
Ändern der dem Programm zugeordneten Bibliotheksliste
Kopieren
Bibliotheksliste einem anderen Programm zuordnen
Eigenschaften
Anzeigen der dem Programm zugeordneten Bibliotheksliste

Löschen
Löschen der zugeordneten Bibliotheksliste

Bibliotheksliste
Anzeige/Bearbeitung der Bibliotheksliste



6.5.3.1 Zuordnung Bibliotheksliste/Anwendung bearbeiten
Die Bearbeitung der Zuordnung Bibliotheksliste zu Programm, d.h. Erstellen, Ändern und Löschen erfolgt durch Klicken auf entsprechende Buttons oder Kontext-Menü-Punkte in der List-Anzeige Zuordnung Bibliotheksliste/Anwendung (6.5.3 Zuordnen Bibliotheksliste zu ).
6.5.3.1.1 Zuordnung Bibliotheksliste / Programm erstellen
Der Aufruf erfolgt aus der List-Anzeige Bibliothekslisten/Programm (6.5.3 Zuordnen Bibliotheksliste zu )
durch Klick auf den Button Erstellen.
B EN UT ZERHA ND BUC H 279
Abbildung 58: Erfassen Zuordnung Bibliotheksliste Programm
Eingabe-Felder
Applikation
Eindeutige Kennung der Anwendung, der das Programm und die Bibliotheksliste zugeordnet werden.
Durch Klick auf den Button können die Anwendungen angezeigt und ausgewählt werden.

Bibliothek Programm-Bibliothek

Programm Programm
Einem Programm kann innerhalb einer Anwendung kann nur eine einzige Bibliotheksliste zugeordnet werden.


Bibliotheksliste
Eindeutige Kennung der Bibliotheksliste
Die gleiche Bibliotheksliste kann mehreren Anwendungen zugeordnet werden.
Durch Klick auf den Button können die vorhandenen Bibliothekslisten angezeigt und
ausgewählt werden.
Buttons

Speichern

Beim Speichern werden die erfassten Informationen geprüft und gespeichert.
Abbrechen
Die Erfassung der Daten wird abgebrochen
6.5.3.1.2 Zuordnung Bibliotheksliste / Programm ändern/anzeigen
B EN UT ZERHA ND BUC H 280
Über Kontext-Menü-Auswahl in Zuordnung Bibliotheksliste/Programm (6.5.3 Zuordnen Bibliotheksliste
zu ) können die den Programmen zugeordneten Bibliothekslisten angezeigt (Eigenschaften) oder geändert werden (Ändern).
Abbildung 59: Anzeigen/Ändern Zuordnung Bibliotheksliste/Programm
Beim Ändern kann lediglich die Bibliotheksliste geändert werden. Alle anderen Informationen werden nur
angezeigt.
6.5.3.1.3 Zuordnung Bibliotheksliste / Programm löschen
Das Löschen der Zuordnung einer Bibliotheksliste zu einem Programm erfolgt über Kontext-MenüAuswahl in List-Anzeige Zuordnung Bibliothekslisten/Programm (6.5.3 Zuordnen Bibliotheksliste zu ).
Das Löschen muss bestätigt oder abgebrochen werden.
Abbildung 60: Löschen Zuordnung Bibliotheksliste/Programm
6.5.3.1.4 Bibliothekliste anzeigen/bearbeiten
B EN UT ZERHA ND BUC H 281
Der Aufruf erfolgt aus der List-Anzeige Zuordnung Bibliotheksliste/Programm (6.5.3 Zuordnen Bibliotheksliste zu ) über Kontext-Menü-Auswahl Bibliotheksliste.
Die zugeordnete Bibliotheksliste wird angezeigt und kann bearbeitet werden (6.5.1.2.2 Bibliothekslisten
anzeigen/ändern/kopieren).
B EN UT ZERHA ND BUC H 282
7.
Einrichten WOPiXX-Anwendungen
WOPiXX-Anwendungen werden aus dem Directweb-Menü aufgerufen und müssen folglich in Directweb
hinterlegt werden.
WOPiXX-Programme werden zu Anwendungen zusammengefasst bzw. müssen in einer Anwendung
hinterlegt sein.
Pro Anwendung wird im Directweb-Menü ein Menü-Auswahl-Punkt generiert.
Die Programme, die zu einer Anwendung gehören werden, sofern sie direkt, d.h. aus einem Menü aufgerufen werden als Menü-Unterpunkte für die Anwendung angelegt. WOPiXX-Programme können auch
über Kontext-Menü (aus Worktables) oder durch einen Klick auf einen Button (Work- und ChangeTables) aufgerufen werden.
Einer Anwendung kann eine Bibliotheksliste zugeordnet werden. Bibliothekslisten werden unabhängig
von Anwendungen generiert, d.h. die gleiche Bibliothekliste kann mehreren Anwendungen zugeordnet
werden. Zusätzlich können Bibliothekslisten auch auf Programm-Ebene zugeordnet werden.
Auf Anwendungsebene wird ebenfalls festgelegt ob eine Anwendung mehrsprachig ist, und wenn ja in
welchen Message-Files die Nachrichten für die entsprechende Sprache hinterlegt ist.
Ebenfalls auf Anwendungsebene können Matchcode entweder über Parameter-Listen oder als gesicherte SQL-Abfragen hinterlegt werden. Sowohl die Parameter-Listen als auch die gesicherten SQLAbfragen werden in den Programmen in Form von Schlüssel-Worten den Ein-/Ausgabe-Feldern zugeordnet werden.
7.1
Anwendung
WOPiXX-Anwendungen werden über den Menü-Punkt Anwendung unter Menü-Punkt WOPiXXAdministration verwaltet.
7.1.1
List-Anzeige Anwendungen
Nach Auswahl des Menü-Punkts Anwendung werden alle aktuell angelegten Anwendungen aufgelistet.
B EN UT ZERHA ND BUC H 283
Abbildung 61: WOPiXX-Administration - Worktable Anwendungen
Spalten

Anwendung
Maximal 10 Zeichen lange eindeutige Kennung der Anwendung.

Folge-Nr.
Reihenfolge in der die Anwendungen in Menü ausgegeben werden.

Text
Bezeichnung/Kurzbeschreibung der Anwendung

Export
Gibt an, ob die Anwendung exportiert werden darf.

Bibliothek
Objekt-Bibliothek der Anwendung

Datenbibliothek
Datenbibliothek, sofern eine separate Datenbibliothek angegeben ist

Bibliotheksliste
Sofern der Anwendung eine Bibliotheksliste zugeordnet ist, werden die Bibliotheken in
der Reihenfolge, wie sie in der Bibliothekliste hinterlegt sind aufgelistet.
Buttons

Erstellen
Durch Klicken auf den Button Erstellen kann eine neue Anwendung generiert werden.
B EN UT ZERHA ND BUC H 284

Resequenzierung
Der Button Resequenzierung ist bei Aufruf des Programms zunächst ausgegraut.
Die Reihenfolge in der die Anwendungen im Menü-Baum angezeigt werden, kann in
dieser List-Anzeige durch drag-and-drop verändert werden.
Sobald die Reihenfolge geändert wurde, wird der Button Resequenzierung aktiviert.
Beim anschießenden Klick auf den Button wird die neue Reihenfolge der Anwendungen gespeichert.
Im Menübaum selber ist die neue Reihenfolge aktuell erst nach der nächsten Anmeldung sichtbar.
Kontext-Menü


Ändern
Löschen

Eigenschaften
Anzeigen der Anwendungsdaten

Standard-Button/Items Work
Listet die hinterlegten Standard-Buttons und Kontext-Menü-Items auf.
Die Standard-Buttons und Kontext-Menü-Items werden automatisch in WOPiXX integriert, wenn weder ein Button noch ein Kontext-Menü definiert wurde.
Die Auswahl ist nur für die Standard-Anwendung dirweb/WOPIXX zulässig.

Standard-Buttons
Listet die Standard-Buttons und Modi auf und zeigt an ob und in welcher Umgebung
der Button als Default-Button hinterlegt wurde.
Die Auswahl ist nur für die Standard-Anwendung dirweb/WOPiXX zulässig.

Anwendung kopieren
Kopieren einer kompletten Anwendung, mit aller abhängigen Datensätzen, IFS Templates und anwendungsindividuellen Icons.

Anwendung umbenennen
Umbenennen der bestehenden Anwendung

Menü
Auflistung und Wartung der Benutzer-Menü-Punkte für die Anwendung

Sprachen
Auflistung und Zuordnung der Sprachen bei mehrsprachiger Verarbeitung

Parameter
Änderung der erfassten Anwendungsdaten
Löschen einer kompletten Anwendung, incl. aller abhängigen Datensätze, IFS Templates und anwendungsindividueller Icons
In der Anwendung registrierte Programme werden nicht gelöscht, sondern lediglich die
Einträge aus den WOPiXX-Tabellen.
Auflistung und Wartung der anwendungsspezifischen Parameter-Listen / Comboboxen.
B EN UT ZERHA ND BUC H 285
Die Einbindung der anwendungsspezifischen Comboboxen erfolgt über Option
CTL(Parametergruppe)

Parameter übernehmen
Einzelne oder alle anwendungsspezifische Parameter-Listen/Comboboxen kopieren.
Parameter-Listen/Combo können sowohl von der WOPiXX-Anwendung als auch von
jeder beliebigen anderen Anwendung kopiert werden.
Werden Parameter-Listen/Combo-Boxen in den Programmen verwendet, wird zunächst geprüft, ob die entsprechende Parameter-Liste in der aktuellen Anwendung
angelegt ist. Sofern die Parameter-Liste/Combo-Box nicht in der aktuellen Anwendung
vorhanden ist, wird geprüft, ob sie in der WOPiXX-Anwendung angelegt ist. Sofern sie
in der WOPiXX-Anwendung gefunden wird, wird diese Parameter-Liste/Combo-Box
verwendet.

SQL Abfrage
Auflistung und Wartung der anwendungsindividuellen SQL-Abfragen (z.B. für Matchcode-Auswahl)
Die Einbindung der SQL-Abfragen in Programme erfolgt über Option ExecSQL(SQLAbfrage)
.
SQL Abfragen übernehmen
Einzelne oder alle anwendungsspezifischen SQL-Abfragen kopieren.
SQL-Abfragen können sowohl von der WOPiXX-Anwendung als auch jeder beliebigen
anderen Anwendung kopiert werden.
Werden in den Programmen gesicherte SQL-Abfragen verwendet so wird immer zuerst geprüft, ob diese SQL-Abfrage in der aktuellen Anwendung vorhanden ist. Kann
sie in der aktuellen Anwendung nicht gefunden werden, wird geprüft, ob die Abfrage in
der WOPiXX-Anwendung hinterlegt wurde. Sofern die Abfrage in der WOPiXXUmgebung gefunden wurde, wird diese verwendet


Export
Über diese Funktion können kundenindividuelle Anwendungen exportiert werden, um
z.B. im Toolmaker App-Store hinterlegt zu werden, oder um an Kunden ausliefert zu
werden.
Die Funktion befindet sich aktuell noch in der Entwicklung und ist deshalb noch nicht
im Kontext-Menü der Anwendung bzw. in WOPiXX integriert.

Import
Exportierte Anwendungen können über diese Auswahl importiert, d.h. in WOPiXX registriert werden.
Die Funktion befindet sich aktuell noch in der Entwicklung und ist deshalb noch nicht
im Kontext-Menü der Anwendung bzw. in WOPiXX integriert.
7.1.2
Wartung der Anwendungsdaten
Sofern eine Anwendung neu erstellt werden soll erfolgt der Aufruf aus der Worktable Anwendung (7.1
Anwendung) durch Klick auf den Button Erfassen.
B EN UT ZERHA ND BUC H 286
Der Aufruf zum Änderung oder Anzeigen der Kopf-Daten für die Anwendung erfolgt ebenfalls aus der
Worktable Anwendung (7.1 Anwendung) über Kontext-Menü (Ändern / Eigenschaften=Anzeigen).
7.1.2.1 Neue Anwendung erstellen
Nach Klick auf den Button Erfassen aus der Worktable-Anzeige Anwendung (7.1 Anwendung) wird die
folgenden Eingabemaske geöffnet.
Abbildung 62: Erfassen Anwendung
Eingabe-Felder

Anwendung
Für die Anwendung muss ein eindeutiger maximal 10 Zeichen langer Name festgelegt
werden.
Der Name sollte aus den Großbuchstaben A-Z und/oder den Ziffern von 0-9 bestehen.
Sonderzeichen sollten vermieden werden.
Anmerkung:
Die eindeutige Kennung der Anwendung kann im Änderungsmodus
nicht geändert werden.
B EN UT ZERHA ND BUC H 287
Eine Änderung der eindeutigen Kennung ist nur durch das Kopieren
der Anwendung auf den neuen Anwendungs-Namen und dem anschließenden Löschen der ursprünglichen Anwendung möglich.

Folge-Nr.
Gibt die Position die die Anwendung im Menübaum einnehmen soll an.
Wird keine Folgen-Nr. eingegeben, so wird die Anwendung wird dann ans Ende des
Menübaums positioniert.
Durch Klick auf den Button (nach dem Auswahl-Feld) wird die SQL-Abfrage DWAPPSEQ geöffnet, in der die freien sowie durch Anwendungen belegte Folgen-Nr. angezeigt werden. Durch Klicken auf eine nicht belegte Folge-Nr. kann diese übernommen
werden.
Anmerkung:
Die Anwendung kann auch nach der Erstellung in dem ListProgramm, in dem alle Anwendungen aufgelistet sind, durch drag
und drop an die gewünschte Stelle positioniert werden.

Beschreibung
Beschreibung der Anwendung.
Wird die Beschreibung der Anwendung nicht angegeben, wird diese aus der Message-Id für Text und der Nachrichten-Datei ermittelt.

Message-Id für Text
Für mehrsprachige Anwendungen sollte anstatt der Beschreibung eine in der Nachrichten-Datei vorhandene Message-Id hinterlegt werden. Der Nachrichten-Text wird
ermittelt und ebenfalls in die Beschreibung übernommen.
Sofern sowohl eine Beschreibung als auch eine Message-Id angegeben wurde, kann
die Message-Id mit dem Beschreibungstext auf Wunsch in der Message-File angelegt
werden.

Message-Id in Anwendungs-Message-File erstellen?
Sofern Message Id und Beschreibung angegeben wurden, kann die Message-Id in
der Message-File erstellt werden, sofern diese Checkbox angehakt wurde.

Nachrichten-Datei:
Für WOPiXX-Anwendungen ist eine Nachrichten-Datei nicht zwingend erforderlich. Die
darunterliegende Directweb-Anwendung arbeitet jedoch mit Nachrichten-Dateien.
Die angegebene Message-File muss in der Objekt-Bibliothek entweder vorhanden sein
oder angelegt werden.
Wird keine Nachrichten-Datei angegeben, da die WOPiXX-Anwendung nicht mehrsprachig sein soll, wird geprüft, ob in der Objekt-Bibliothek eine Nachrichten-Datei
vorhanden ist.
Sofern eine Nachrichten-Datei vorhanden ist, wird diese übernommen. Sofern keine
Nachrichten-Datei vorhanden ist, wird eine neue Nachrichten-Datei mit dem Namen
der Anwendung in der Objekt-Bibliothek erstellt.
Durch Klick auf den Button wird die SQL-Abfrage DWMSGF aufgerufen und alle Message-Files angezeigt. Die gewünschte Message-File kann ausgewählt und übernom-
B EN UT ZERHA ND BUC H 288
men werden.

Bibliothek

Datenbibliothek
Die Angabe einer zweiten Bibliothek ist nicht zwingend erforderlich.

Bibliotheksliste
Jeder Anwendung kann eine Bibliotheksliste zugeordnet werden. In dieser Bibliotheksliste sollten alle für die Anwendung erforderlichen Bibliotheken in der gewünschten
Reihenfolge hinterlegt sein.
Zusätzlich kann auch jedem WOPiXX-Programm eine eigene Bibliotheksliste zugeordnet werden.
Sofern außer QTEMP, QGPL und den WOPiXX und Dirweb-Bibliotheken nur maximal
zwei weitere Bibliotheken (Objekt- und Datenbibliothek) erforderlich sind, kann ohne
Bibliotheksliste gearbeitet werden.

Von dirweb übernehmen
Icons, SQL-Abfragen und vordefinierte Comboboxen können von der BasisAnwendung dirweb übernommen werden. Übernommene Informationen können jederzeit auf Anwendungsebene modifiziert werden.
Die in dirweb hinterlegten Icons, SQL-Abfragen und/oder Comboboxen können in den
kundenindividuellen Anwendungen kopiert und dort verändert werden.
Die von WOPiXX zur Verfügung gestellten SQL-Abfragen und Combo-Boxen können in
jeder Anwendung verwendet werden.
Bei einer Update-Installation werden die WOPiXX-Daten ggf. ausgetauscht, die kopierten Daten bleiben dagegen unangetastet.

HTML Vorlagen
Der Pfand in der die HTML-Templates hinterlegt werden, wird automatisch basierend
auf dem Anwendungsnamen generiert, und das entsprechende Verzeichnis erstellt.
Die Default-Templates für Change und Worktables werden in dieses Verzeichnis eingestellt.
Der Pfad und die Default-Templates unterliegen Namensrichtlinien und können deshalb nicht individuell festgelegt werden.

Pfad für Symbole
Der Pfand in der Icons hinterlegt werden, wird automatisch basierend auf dem Anwendungsnamen generiert, und das entsprechende Verzeichnis erstellt.
Der Pfad unterliegt Namensrichtlinien und können deshalb nicht individuell festgelegt
werden.
Für jede Anwendung ist eine Objekt-Bibliothek erforderlich.
Die Objekt-Bibliothek kann nach Erstellung der Anwendung nicht mehr verändert werden.
Die für die Anwendung erforderliche Nachrichten-Datei sollte in dieser Bibliothek vorhanden sein.
Alle zu der Anwendung gehörenden WOPiXX-Programme sollten in dieser Bibliothek
hinterlegt werden.
B EN UT ZERHA ND BUC H 289

HTTP-Pfad-Erweiterung

Export erlaubt
Gibt an ob die Anwendung exportiert (und auf anderen Systemen installiert) werden
kann, oder ob es sich um eine lokale Anwendung handelt.

Buttons
Speichern
Beim Speichern wird, sofern keine Eingabefehler gefunden wurden eine neue Anwendung erzeugt. Neben den Kopf-Daten werden noch die folgenden Objekte und Verzeichnisse generiert

Sofern die angegebene Message File nicht in der Objekt-Bibliothek vorhanden ist,
wird sie angelegt, sofern dies erwünscht ist.

Sofern Beschreibung und Message-Id angegeben wurden, kann die Nachricht in
der Anwendungs-Message-File angelegt werden.

Hauptmenü-Punkt für die Anwendung
Dieser Menü-Punkt kann nicht gelöscht werden.

Standard-Sprache

Der IFS-Pfad für die Templates wird erstellt und die Default-Templates in dieses
Verzeichnis kopiert

Der IFS-Pfand für die Icons wird erstellt.

Sofern die Übernahme von Icons, SQL-Abfragen und/oder Comboboxen aus directweb/WOPiXX erwünscht waren, werden diese Informationen in die Anwendung übernommen.

Abbrechen Die Erfassung der Daten wird abgebrochen

Bibliotheksliste
Eine vorhandene Bibliotheksliste kann über einen Matchcode ausgewählt werden. Sofern die Bibliotheksliste noch nicht erfasst wurde, kann durch Klick auf den Button Bibliotheksliste in das Bibliothekslisten-Wartungs-Programm verzweigt werden und die
notwendige Bibliotheksliste angelegt werden.
7.1.2.2 Anwendung anzeigen/ändern
Über Kontext-Menü-Auswahl in Wartung Anwendungsdaten können die Anwendungskopf-Daten angezeigt (Eigenschaften) oder geändert werden (ändern)
B EN UT ZERHA ND BUC H 290
Abbildung 63: Anzeigen/Änderung Anwendung
Eine Änderung des eindeutigen Namens der Anwendung ist über die Kontext-Menü-Auswahl Ändern
nicht möglich. Sollte die Anwendung und damit auch alle abhängigen Informationen umbenannt werden,
muss dies über Kontext-Menü-Auswahl Anwendung kopieren erfolgen. Die ursprüngliche Anwendung
kann im Anschluss gelöscht werden.
Die Objekt-Bibliothek wird einmalig festgelegt und kann im Anschluss nicht mehr geändert werden.
Die übrigen Informationen, die erfasst werden konnten, können auch geändert werden.
Sofern Icons, SQL-Abfragen oder Comboboxen/Parameter von dirweb übertragen werden sollen, werden nur die fehlenden Informationen übernommen. Es werden jedoch keine vorhandene Icons, SQLAbfragen oder Comboboxen/Parameter überschrieben oder gelöscht.
Die ermittelten Pfade für die HTML-Templates und die Icons werden angezeigt, können aber weiterhin
nicht geändert werden.
B EN UT ZERHA ND BUC H 291
7.1.2.3 Anwendung löschen
Das Löschen einer Anwendung erfolgt über Kontext-Menü-Auswahl. Das Löschen muss bestätigt oder
abgebrochen werden.
Abbildung 64: Löschen Anwendung
Wurde das Löschen bestätigt werden alle zur Anwendung gehörenden in WOPiXX gespeicherten Informationen, d.h. Daten in abhängigen Tabellen sowie IFS-Verzeichnisse und Dokumente mit anwendungsspezifischen Informationen entfernt.
Informationen, die ohne Anwendungs-Kürzel in WOPiXX gespeichert wurden (z.B. Bibliothekslisten)
werden nicht entfernt.
Individuelle Bibliotheken, Objekte, IFS-Verzeichnisse und Dateien, die sich nicht unterhalb der WOPiXXPfade befinden bleiben unangetastet.
Anmerkung:
7.2
Die Anwendung DIRWEB darf nicht gelöscht werden.
Standard Buttons/Items für List-Anzeigen
Sofern in Work-Programmen weder Buttons noch Kontext-Menü-Items definiert wurden, werden einige
Default-Standard-Buttons und Kontext-Menü-Items automatisch integriert.
Die Standard-Buttons- und Kontext-Menü-Items sollten nur von Toolmaker festgelegt werden.
Über den Menü-Punkt Standard Buttons/Item Work können die vordefinierten Buttons- und KontextMenü-Items angezeigt werden. Weiterhin ist sichtbar, welche der vordefinierten Buttons- und KontextMenü-Items automatisch (als Default) integriert werden.
Die Anzeige kann nur bei der Anwendung DIRWEB ausgewählt und angezeigt werden.
B EN UT ZERHA ND BUC H 292
Abbildung 65: Default und Standard-Buttons und Kontext-Menü-Items für Work-Programme
Spalten

Aktion
Die Aktion entspricht den Modi.
Bei Aufruf der Funktionen WX_WrkBtn() und Wx_CtxMnuItm() kann für die StandardButtons und Kontext-Menü-Items diese Aktion als 1. Parameter übergeben werden.
Zur Definition von Default-Buttons und Default-Kontext-Menü-Items wurden auch spezielle Funktionen, definiert, die die Angabe der Aktion überflüssig machen:

*ADD
Button Erfassen/Hinzufügen
Wx_WrkAdd()

*EDTLIST
Button Änderung Sichern für wartbare List-Anzeigen.
Der Button wird aktiviert, sobald eine Änderung in der
List-Anzeige erfolgt ist.
Wx_WrkEdtList()

*RESEQ
Der Button wird aktiviert, sobald Einträge in ListAnzeigen über Drag und Drop verschoben wurden.
Wx_WrkReseq()

*CHANGE
Kontext-Menü-Item Ändern
Wx_CtxMnuItmChange()

*COPY
Kontext-Menü-Item Kopieren
Wx_CtxMnuItmCopy()

*DELETE
Kontext-Menü-Item Löschen
B EN UT ZERHA ND BUC H 293
Wx_CtxMnuItmDelete()

*PROPERTY
Kontext-Menü-Item Eigenschaften/Anzeigen
Wx_CtxMnuItmProperty()
Die Aktionen können im Folge-Programm als übergebene Modi abgeprüft werden.
Die Aktion kann bei Aufruf der Funktion Wx_isMode() als 1. Parameter übergeben
werden.
Zur Prüfung der Standard-/Default-Modi wurden ebenfalls Funktionen angelegt, die die
Angabe der Aktion als Parameter überflüssig machen:

*ADD
Wx_isModeAdd()

*EDTLIST
Wx_isModeEdtList()

*RESEQ
Wx_isModeReseq()

*CHANGE
Wx_isModeChange()

*COPY
Wx_isModeCopy()

*DELETE
Wx_isModeDelete()

*PROPERTY
Wx_isModeProperty()

*RENAME
Wx_isModeRename()
7.3

Beschreibung
Button- oder Kontext-Menü-Item Text

Button

Menü-Punkt
Gibt an, ob für die Aktion ein Kontext-Menü-Item angelegt wird

Default

Linie davor/danach
Gibt an, ob in Kontext-Menüs eine Linie vor oder nach dem Kontext-Menü-Item eingefügt werden soll.
Gibt an, ob für die Aktion ein Button angelegt wird
Gibt an welche Buttons- und Kontext-Menü-Items als Defaults definiert wurden.
Standard Buttons
Sowohl in den List- als auch in den Change-Programmen werden eine Reihe von Standard-Buttons oder Funktionen integriert. Über die Auswahl Standard-Buttons wird ersichtlich welche Standard-Buttons
in Change und Work-Programmen definiert werden können und welche automatisch integriert werden.
Die Standard-Buttons, sowie die Default-Einstellungen sollten nur von Toolmaker festgelegt werden.
Der Aufruf und die Anzeige sind bei Anwendung DIRWEB erlaubt.
B EN UT ZERHA ND BUC H 294
Abbildung 66: Standard / Default
Buttons
Spalten

Button

Default im Änderungs-Modus
Kennzeichnet die Default-Buttons in Change-Programmen im Änderungsmodus.
Im Änderungsmodus werden automatisch die Buttons Sichern/Save und Abbrechen/Cancel integriert.
Refresh wird als Icon in der Header-Zeile hinterlegt

Default im Anzeige-Modus
Kennzeichnet die Default-Buttons in Change-Programmen im Anzeigemodus.
Im Anzeigemodus werden automatisch die Buttons Ändern (Wechsel in Änderungsmodus) und Weiter/Continue integriert.
Refresh wird als Icon in der Header-Zeile hinterlegt

Default in Work-Tables
Kennzeichnet die Default-Buttons in Worktables
In Worktables wird nur der Hinzufügen/Add-Button automatisch integriert.

Default im Editier-Modus
Kennzeichnet die Default-Buttons im Editier-Modus in WorkTables integriert werden.
In WorkTables wird im Editier-Modus der Hinzufügen/Add-Button und der EdtListButton automatisch integriert.
Gibt die Aktion/Modus für den Button an
B EN UT ZERHA ND BUC H 295

Aktiv/Inaktiv
Gibt an, ob die Buttons (bzw. Einstellungen) Aktiv oder Inaktiv sind.
7.4
Anwendung kopieren
Über den Kontext-Menü-Punkt Anwendung kopieren in Wartung Anwendung, kann eine Anwendung
dupliziert werden.
Abbildung 67: Anwendung kopieren

Eingabe-Felder
Von Anwendung
Die zu kopierende Anwendung muss angegeben werden.
Durch Klick auf den Button wird die SQL-Abfrage DWAPP aufgerufen und alle Anwendungen angezeigt. Die gewünschte Anwendung kann ausgewählt und übernom-
B EN UT ZERHA ND BUC H 296
men werden.

Nach Anwendung
Der Name der neuen Anwendung muss angegeben werden.
Sofern die neue Anwendung bereits existiert, wird ein Fehler ausgegeben. Sofern eine
bereits vorhandene Anwendung ersetzt werden soll, muss Ersetzen Ja/Nein angegeben werden.

Ersetzten Ja/Nein
Gibt an ob eine eventuell vorhandene Anwendung ersetzt werden darf.

Buttons
Speichern
Beim Speichern wird eine neue Anwendung erzeugt. Neben den Kopf-Daten werden
noch die folgenden Informationen für die neue Anwendung übernommen.

Hauptmenü-Punkt, sowie alle Unter-Menü-Punkte für die Anwendung

Sprachen

SQL-Abfragen

Comboboxen/Parameter

Der HTML-Templates, IFS-Dokumente und Icons werden in die neu erstellten
anwendungsindividuellen Verzeichnisse kopiert.
Sofern die neue Anwendung bereits existiert und ersetzt werden darf, werden alle vorhandenen zur neuen Anwendung gehörenden Informationen (abhängige Datensätze
und IFS-Verzeichnisse und -Dokumente) zunächst gelöscht.

Abbrechen
Die Erfassung der Daten wird abgebrochen
7.5
Anwendung umbenennen
Über den Kontext-Menü-Punkt Anwendung kopieren in Wartung Anwendung, kann eine Anwendung
dupliziert werden.
B EN UT ZERHA ND BUC H 297
Eingabe-Felder

Von Anwendung
Die Anwendung, die umbenannt werden soll muss angegeben werden.
Durch Klick auf den Button wird die SQL-Abfrage DWAPP aufgerufen und alle Anwendungen angezeigt. Die gewünschte Anwendung kann ausgewählt und übernommen
werden.

Nach Anwendung
Der neue Name der Anwendung muss angegeben werden.
Sofern eine Anwendung mit dem neuen Namen bereits existiert, wird ein Fehler ausgegeben. Um eine bereits vorhandene Anwendung ersetzten zu können, Ersetzen
Ja/Nein angegeben werden.

Ersetzten Ja/Nein
B EN UT ZERHA ND BUC H 298
Gibt an ob eine eventuell vorhandene Anwendung überschrieben werden darf.
Buttons

Speichern
Beim Speichern wird die vorhandene Anwendung, sowie alle abhängigen Datensätze
und anwendungsspezifischen IFS-Verzeichnisse und Dokumente.
Sofern die neue Anwendung bereits existiert und ersetzt werden darf, werden alle vorhandenen zur neuen Anwendung gehörenden Informationen (abhängige Datensätze
und IFS-Verzeichnisse und -Dokumente) zunächst gelöscht.

Abbrechen Die Erfassung der Daten wird abgebrochen
Anmerkung:
7.6
Die Anwendungen DIRWEB und IBM_I können nicht umbenannt werden.
Anwendungsmenü
Der Haupt-Menü-Punkt, unter dem alle zur Anwendung gehörenden Menü-Punkte bzw. ProgrammAufrufe angesiedelt werden sollten, wird bereits beim Erstellen der Anwendung automatisch erzeugt.
Anwendungsspezifische Unter-Menü-Verzeichnisse und Menü-Punkte für Programm-Aufrufe können
über den Kontext-Menü-Punkt Menü in Wartung Anwendungen aufgelistet und bearbeitet werden.
Abbildung 68: Aufruf List-Anzeige Anwendungsmenü
B EN UT ZERHA ND BUC H 299
7.6.1
List-Anzeige Anwendungsmenü
Der Aufruf der List-Anzeige Anwendungsmenü erfolgt über Kontext-Menü-Auswahl Menü in der ListAnzeige der Anwendungsdaten
Abbildung 69: List-Anzeige Anwendungsmenü

Spalten
Menü-Struktur
Zeigt die Menü-Struktur und die Position der Menü-Punkte innerhalb der Struktur an.
Anmerkung:
Unter Release V5R4 werden nur die Menü-Punkte aufgelistet. Die
Darstellung der Menü-Struktur (Rekursion in Verbindung mit Mehrsprachigkeit) ist unter Release V5R4 noch nicht möglich.

Übergeordneter Menü-Punkt
Folge-Nr. des übergeordneten Menü-Punkts innerhalb des Anwendungsmenüs.
Die Folgen-Nr. des aktuellen und des übergeordneten Menü-Punkts sind insbesondere unter Release V5R4 wichtig, da die Anzeige der Menü-Struktur noch nicht unterstützt wird.

Beschreibung des übergeordneten Menü-Punkts
Bezeichnung/Beschreibung des übergeordneten Menü-Punkts innerhalb des Anwendungsmenüs.

Folge-Nr.
Folge-Nr. des aktuellen Menü-Punkts
B EN UT ZERHA ND BUC H 300

Programm
Programm, das bei Auswahl des Menü-Punkts ausgeführt wird.
Die Angabe eines Programms ist nicht zwingend erforderlich.
Menü-Unterpunkte können sowohl unter Menü-Punkten mit als auch ohne ProgrammDefinition angesiedelt werden.

Export erlaubt
Werden (Test-)Programme in dem Menü hinterlegt, für die kein Export erlaubt ist, so
werden diese Menü-Punkte beim Exportieren der Anwendung nicht mitgesichert. Folglich können solche Menü-Punkte auf anderen Systemen auch nicht installiert werden.

Benutzer-Klasse
Zur Ausführung berechtigte Benutzer-Klasse (Benutzer, Systembediener, Administrator oder Gruppen-Profil)

Session
Buttons

Erstellen
Erfassen von neuen Menü-Punkten
Kontext-Menü

Ändern
Detail-Informationen für den Menü-Punkt ändern, z.B. Text/Message-Id ändern, zum
Export freigeben, an neue Position innerhalb des Menü-Baums der Anwendung verschieben etc.

Eigenschaften
Detail-Informationen für Menü-Punkt anzeigen

Untermenü-Punkt erstellen
Die Erfassungsmaske für Untermenü-Punkte wird geöffnet. Die Position des MenüPunktes wird basierend auf der Position des Menü-Punktes auf dem der KontextMenü-Punkt ausgewählt wurde ermittelt und vordefiniert.

Menü-Punkt löschen
Menü-Punkt löschen
Wird ein Kontext-Menü-Punkt gelöscht so werden ebenfalls alle untergeordneten Menü-Punkte gelöscht.
Das Löschen von Kontext-Menü-Punkten muss über die folgende Meldung explizit bestätigt werden.
B EN UT ZERHA ND BUC H 301
Abbildung 70: Löschen von Kontext-Menü-Punkten bestätigen
Anmerkung:
Wird der Haupt-Menü-Punkt einer Anwendung ausgewählt, so werden nur die untergeordneten Menü-Punkte gelöscht. Der HauptMenü-Punkt, der auch automatisch angelegt wird, kann nicht manuell gelöscht werden.
Wird die komplette Anwendung gelöscht wird, wird auch der
Haupt-Menü-Punkt entfernt.
7.6.1.1 Anwendungsmenü bearbeiten
Die Bearbeitung des Anwendungsmenüs, d.h. Erstellen, Ändern und Löschen von AnwendungsmenüPunkten erfolgt durch Klicken auf entsprechende Buttons oder Kontext-Menü-Punkte in der ListAnzeige Anwendungen (7.1.1 List-Anzeige Anwendungen)
7.6.1.2 Anwendungsmenü-Punkt erstellen
Ein Anwendungsmenü-Punkt kann aus dem List-Programm Menü auf zwei Arten erfolgen:


Button Erfassen
Kontext-Menü-Auswahl Unter-Menü-Punkt erstellen
Erfolgt die Auswahl über den Button Erfassen, kann sowohl der übergeordnete Menü-Punkt als auch
der Menü-Punkt, nachdem der neue Menü-Punkt eingeordnet werden soll ausgewählt werden.
Sofern die Auswahl über das Kontext-Menü erfolgt wird der übergeordnete Menü-Punkt aufgrund der
Position des Auswahl-Punktes ermittelt und kann nicht geändert werden.
Das folgende Beispiel zeigt die Erfassungsmasken für beide Auswahl-Optionen.
B EN UT ZERHA ND BUC H 302
Abbildung 71: Anwendungs-Menü-Punkt erstellen
Die Anwendung für die der Menü-Punkt angelegt werden soll wird ermittelt und im Header angezeigt.
Eingabe-Felder

In (Unter-)Menü
Die Position des neuen Menü-Punktes muss angegeben werden. Zunächst muss der
Menü-Punkt, unterhalb dem der neue Menü-Punkt eingeordnet werden soll.
Die Auswahl des Kontext-Menü-Punktes kann über die folgende Combo-Box erfolgen,
in der alle Kontext-Menü-Punkte der Anwendung aufgelistet sind.
B EN UT ZERHA ND BUC H 303
Abbildung 72: Combo-Box Auswahl übergeordnete Menü-Punkte

Nach Auswahl
Sofern sich unterhalb des ausgewählten übergeordneten Menü-Punkt mehrere MenüPunkte auf der gleichen Ebene befinden, muss angegeben werden nach welchem der
gleichberechtigten Menü-Punkte der neue Menü-Punkt eingeordnet werden soll.
Die Auswahl erfolgt über eine Combo-Box analog der Auswahl des übergeordneten
Menü-Punkts.

Beschreibung
Für den anzulegenden Menü-Punkt kann entweder eine Beschreibung oder eine Message-Id angegeben werden.

Message-Id für Text
Wird eine Message-Id angegeben, so wird der Text des Menü-Punktes über diese
Message-Id aus der Message-File, in der Objekt-Bibliothek ermittelt.

Message-Id für Tipp
Zusätzlich kann eine Message-Id, über die ein Tipp-Text ermittelt wird angegeben
werden.

Programm
B EN UT ZERHA ND BUC H 304
Es können Unter-Menü-Punkte, die nur besseren Strukturierung der Menü-Punkte
verwendet werden angelegt werden.
In diesem Fall wird Programm nicht ausgewählt.

Programm-Name
Sofern dem Menü-Punkt ein Programm zugeordnet werden soll, muss zunächst Programm ausgewählt und dann das gewünschte Programm angegeben werden.
Das ausgewählte Programm sollte sich in der Objekt-Bibliothek der Anwendung befinden.
Durch Klick auf den Button wird die SQL-Abfrage DWLISTPGM aufgerufen.
Achtung:



Berechtigung
Gibt die Berechtigungsgruppe an, die mit dem Menü-Punkt arbeiten können

Benutzer:
Minimale Rechte

Systembediener:
Kann alle Menü-Punkte, die mit der SystemBediener-Berechtigung angelegt wurden.
Des Weiteren kann er alle mit der BenutzerBerechtigung angelegten Menü-Punkte aufrufen

Administrator:
Hat alle Rechte und kann alle Menü-Punkte aufrufen

Gruppen-Menü
Sofern das Gruppen-Menü, dem der Benutzer
Zugeordnet ist berechtigt ist, kann der Benutzer den
Menü-Punkt aufrufen
Symbol
Zusätzlich zur Anzeige im Menü-Baum kann ein Icon ausgewählt werden.
Export erlaubt
Gibt an, ob der Menü-Punkt exportiert werden darf
Buttons

Speichern

Der erste Aufruf des Match-Codes/SQL-Abfrage kann etwas länger
u.U. sogar ein paar Minuten dauern.
Beim Speichern werden die erfassten Informationen geprüft und gespeichert, dabei
werden die einzelnen Menü-Punkte für die Anwendung resequenziert.
Abbrechen Die Erfassung der Daten wird abgebrochen
7.6.1.3 Anwendungsmenü-Punkt anzeigen/ändern
Über Kontext-Menü-Auswahl in List-Anzeige Anwendungsmenü (7.1.1 List-Anzeige Anwendungen)
können die erfassten Anwendungsmenü-Punkte angezeigt (Eigenschaften) oder bearbeitet werden (Ändern)
B EN UT ZERHA ND BUC H 305
Abbildung 73: Anzeigen/Ändern Anwendungsmenü-Punkt
Ein Anwendungsmenü-Punkt kann keiner anderen Anwendung zugeordnet werden, d.h. die Anwendung kann nicht geändert werden. Sofern ein Anwendungsmenü-Punkt einer anderen Anwendung zugeordnet werden muss, muss er in der alten Anwendung gelöscht und für die andere Anwendung neu
erfasst werden.
Innerhalb der Anwendung können die Anwendungsmenü-Punkte neu angeordnet oder in andere SubMenüs verschoben werden.
Die übrigen Informationen, die erfasst werden konnten, können auch geändert werden.
7.6.1.4 Anwendungsmenü-Punkt löschen
Das Löschen eines Anwendungsmenü-Punktes erfolgt über Kontext-Menü-Auswahl in List-Anzeige Anwendungsmenü.
B EN UT ZERHA ND BUC H 306
Beim Löschen eines Kontext-Menü-Punktes, werden alle untergeordneten Menü-Punkte ebenfalls gelöscht.
Wurde der Haupt-Menü-Punkt zum Löschen ausgewählt, werden untergeordneten Menü-Punkte gelöscht. Der Haupt-Menü-Punkt, der automatisch angelegt wird, wird nicht gelöscht. Das manuelle Löschen des Haupt-Menü-Punkts der Anwendung ist nicht möglich. Beim Löschen der Anwendung wird
auch der Haupt-Menü-Punkt der Anwendung gelöscht.
Das Löschen muss explizit bestätigt oder abgebrochen werden.
Abbildung 74: Anwendungsmenü-Punkt löschen
Wurde das Löschen bestätigt wird der ausgewählte Menü-Punkt, sowie alle untergeordneten MenüPunkte gelöscht.
7.7
Sprachen
Die Informationen für die Standard-Sprache (Sprache und Message-File) werden bereits beim Erstellen
der Anwendung automatisch erzeugt.
Sofern nicht mit mehrsprachigen Anwendungen gearbeitet wird, ist keine weitere Bearbeitung erforderlich.
B EN UT ZERHA ND BUC H 307
Für mehrsprachige Anwendungen können weitere Sprachen erfasst bzw. die entsprechenden MessageFiles zugeordnet werden.
Der Aufruf der List-Anzeige für Sprachen erfolgt über den Kontext-Menü-Punkt Sprachen in Wartung
Anwendungen.
Abbildung 75: Aufruf List-Anzeige Sprachen
7.7.1
List-Anzeige Sprachen
Der Aufruf der List-Anzeige Sprachen erfolgt über Kontext-Menü-Auswahl Sprachen in der List-Anzeige
der Anwendungsdaten (7.1.1 List-Anzeige Anwendungen).
B EN UT ZERHA ND BUC H 308
Abbildung 76: List-Anzeige Sprachen

Spalten
Sprache
Die Sprache wird durch die entsprechende Länderflagge dargestellt. Die Aufbereitung
basiert auf der Parameter/Combobox-Option CTL(Language).

Nachrichtendatei
Nachrichten-Datei in der die sprachenspezifischen Texte hinterlegt sind.

Bibliothek Nachrichten-Datei
Bibliothek in der sich die Message-File befindet
Buttons

Erstellen



Eine weitere Sprache kann erfasst werden.
Kontext-Menü
Ändern
Änderung der erfassten sprachenspezifischen Informationen
Löschen
Löschen der Sprache
Eigenschaften
Anzeigen der sprachenspezifischen Informationen
7.7.2
Sprachen bearbeiten
Die Bearbeitung/Zuordnung der Sprachen, d.h. Erstellen, Ändern und Löschen erfolgt durch Klicken auf
entsprechende Buttons oder Kontext-Menü-Punkte in der List-Anzeige Anwendungen (6.1.1 ListAnzeige Anwendungen)
B EN UT ZERHA ND BUC H 309
7.7.2.1 Sprachen erfassen
Nach Klick auf den Button Erfassen in der List-Anzeige Sprachen (7.7.1 List-Anzeige Sprachen) wird die
folgende Eingabe-Maske geöffnet.
Abbildung 77: Erfassen Anwendungssprachen
Eingabe-Felder

Anwendung
Bei der Anwendung handelt es sich um ein reines Ausgabefeld. Die Anwendung wird
aus dem vorhergehenden Programm übergeben.

Sprache

Bibliothek Nachrichtendatei
Bibliothek in der sich die Nachrichtendatei befindet
Bei Klick auf den Button wird die SQL-Abfrage LIBLIST aufgerufen, in der alle Bibliotheken aufgelistet werden und die gewünschte Bibliothek ausgewählt werden kann.

Nachrichtendatei
Die Nachrichten-Datei in der sich die Nachrichten in der gewünschten Sprache befinden kann erfasst werden.
Bei Klick auf den Button wird die SQL-Abfrage DWMSGF ausgeführt, über die alle
Message-Files aufgelistet und ausgewählt werden können.
Buttons
Die gewünschte Sprache kann über die bereitgestellte Combobox ausgewählt werden. Pro Anwendung kann eine Sprache nur einmalig angegeben werden.
B EN UT ZERHA ND BUC H 310

Speichern

Abbrechen Die Erfassung der Daten wird abgebrochen
Beim Speichern werden die erfassten Informationen geprüft und gespeichert.
7.7.2.2 Sprachen anzeigen/ändern
Über Kontext-Menü-Auswahl in List-Anzeige Sprache (7.7.1 List-Anzeige Sprachen) können die erfassten Sprachen angezeigt (Eigenschaften) oder bearbeitet werden (Ändern).
Abbildung 78: Anzeigen/Ändern Sprachen
7.7.2.3 Sprachen löschen
Das Löschen einer Sprache erfolgt über Kontext-Menü-Auswahl in List-Anzeige Sprachen. Das Löschen
muss bestätigt oder abgebrochen werden.
B EN UT ZERHA ND BUC H 311
Abbildung 79: Sprache löschen
7.8
Parameter-Control-Informationen
In WOPiXX sind diverse Möglichkeiten zur Hinterlegung von Matchcode-Daten ohne zusätzliche Programmierung enthalten. Die hinterlegten Informationen können einfach über Schlüssel-Wort bei der Definition von Filtern, Ein-/Ausgabe-Feldern und Spalten in List-Anzeigen integriert werden.
Eine dieser Möglichkeiten sind die Parameter-Control-Informationen.
Die Parameter-Control-Daten können auf Anwendungsebene hinterlegt werden und auch von einer Anwendung in eine andere Anwendung kopiert werden.
Die Parameter-Control-Daten werden zunächst in der Anwendungs-Objekt-Bibliothek gesucht. Wird in
der Objekt-Bibliothek kein Eintrag gefunden wird geprüft, ob ein entsprechender Eintrag in der dirweb/WOPiXX-Umgebung vorhanden ist. Werden in der dirweb/WOPiXX-Umgebung entsprechende Einträge gefunden werden diese verwendet.
Damit können die Parameter-Control-Daten, die in WOPiXX integriert sind, von jeder beliebigen Anwendung verwendet werden.
Parameter-Control-Daten, die von WOPiXX zur Verfügung gestellt werden können auch modifiziert werden. Es ist jedoch zu beachten, dass Änderungen zum Auswirkung auf die vorhandenen WOPiXXAdministrations-Programme haben können, in denen diese Parameter-Daten verwendet werden. Zum
anderen werden bei einem Produkt-Update die geänderten Parameter-Control-Daten wieder durch die
Original-WOPiXX-Daten ersetzt. Um einen Datenverlust und sonstige Probleme an dieser Stelle zu vermeiden, sollten die zu modifizierenden Parameter-Control-Daten aus WOPiXX/dirweb in eine andere
(jede beliebige) Anwendung kopiert und dort modifiziert werden.
B EN UT ZERHA ND BUC H 312
Matchcodes, die auf Parameter-Control-Daten basieren werden im RPG-Code über Schlüssel-Wort
CTL in Verbindung mit der gewünschten Kennung hinterlegt, z.B. für Kennung COUNTRY wird
CTL(Country) angegeben, wobei Groß/Klein-Schreibung ignoriert werden kann.
■ Filter mit Parameter-Control-Daten
 Schlüssel-Wort CTL(Country)
■ Spalte mit Parameter-Control-Daten
 Schlüssel-Wort CTL(Country)
Abbildung 80: Verwendung von Parameter-Control-Daten
Das folgende Beispiel zeigt den zugehörigen Quell-Code
■ Parameter-ControlInformationen
Abbildung 81: Source Code mit Parameter-Control-Informationen
B EN UT ZERHA ND BUC H 313
7.8.1
List-Anzeige Parameter-Control-Daten
Der Aufruf zur Wartung der Parameter-Control-Daten für eine Anwendung erfolgt entweder pro Anwendung über die Kontext-Menü-Auswahl Parameter oder direkt aus dem WOPiXX-Menü über den MenüPunkt Einstellungen  Parameter verwalten.
Erfolgt der Aufruf über das Kontext-Menü der Anwendung, wird die Anwendung fix übergeben und kann
nicht geändert werden. Erfolgt der Aufruf aus dem WOPiXX-Menü, so können entweder die ParameterControl-Gruppen aller Anwendungen angezeigt werden, oder eine einzelne Anwendung kann über eine
Combo-Box ausgewählt werden.
Die folgende Abbildung zeigt den Aufruf der Parameter-Control-Daten über Kontext-Menü-Auswahl auf
Anwendungsebene.
Abbildung 82: Aufruf Parameter-Control-Daten über Kontext-Menü-Auswahl
Nach Auswahl des Kontext-Menü-Items Parameter werden die Parameter-Control-Header, die für die
ausgewählte Anwendung angelegt wurden angezeigt.
B EN UT ZERHA ND BUC H 314
Abbildung 83: Auflistung der Parameter-Control-Header-Informationen
Die Anwendung wird übergeben und im Header angezeigt. Die Anwendung kann weder ausgewählt
noch geändert werden.


Filter
Parameter-Gruppe
Über den Filter Parameter-Gruppe kann eine einzelne Parameter-Gruppe ausgewählt
werden.
Werteliste
Über den Filter Werteliste können die Parameter-Gruppen nach einzelnen Werten gescannt werden.
Die Suche erfolgt über eine LIKE-Anweisung und gibt alle Werte-Listen aus, in der die
angeforderte Buchstaben/Zeichen-Kombination gefunden wird. Sofern % oder _ in
dem zu suchenden String angegeben werden, werden sie nicht als Platzhalter behandelt, stattdessen es wird nach diesen Werten gescannt.
Spalten

Parameter-Gruppe
B EN UT ZERHA ND BUC H 315
Auflistung der einzelnen Parameter-Gruppen in der vorgegebenen Anwendung

Export
Gibt an, ob die Parameter-Gruppe beim Export gesichert und später auf anderen Maschinen installiert werden darf.

Import
Sofern eine Anwendung exportiert werden kann, kann festgelegt werden, ob und wie
die Daten installiert werden.

Hinzufügen und Ersetzten

Nur Hinzufügen

Sortierung
Gibt an ob die Parameter-Daten innerhalb der Combobox nach in einer vorgegebenen
Reihenfolge (Sequenz) oder nach dem Text sortiert werden sollen.
Bei der Sortierung nach Text wird auch die Mehrsprachigkeit berücksichtigt, so wird

Werteliste
In der Werte-Liste, werden die zur Parametergruppe zusammengefassten Detail-Werte
als String aufbereitet und ausgegeben.
Buttons

Erstellen
Bei Klick auf den Button wird eine Erfassungsmaske geöffnet über die sowohl der Parameter-Control-Header als auch der erste Satz der Detail-Informationen angelegt
werden.
Kontext-Menü

Ändern
Die Parameter-Control-Header-Informationen können geändert werden.
Detail-Informationen können nur über die Auswahl Parameter-Detail geändert werden.

Löschen
Beim Löschen werden sowohl die Parameter-Control-Header als auch die zugehörigen Detail-Informationen gelöscht.
Das Löschen der Parameter-Control-Daten muss explizit bestätigt werden.

Parameter-Detail
Die zur Parameter-Gruppe gehörenden Detail-Informationen werden aufgelistet und
können über Kontext-Menü-Auswahl bearbeitet werden.

Parameter übernehmen
Parameter-Control-Informationen (Header and Detail-Informationen) können von einer
Anwendung in eine andere Anwendung übernommen werden.
B EN UT ZERHA ND BUC H 316
7.8.2
Parameter-Control-Header bearbeiten
Über die Kontext-Menü-Auswahl Ändern können die Parameter-Control-Header-Daten bearbeitet werden.
Abbildung 84: Ändern Parameter-Control-Header-Informationen

Ein-/Ausgabe-Felder
Anwendung
Die Anwendung wird übergeben und angezeigt, kann jedoch nicht geändert werden.

Parameter-Gruppe
Die Parameter-Gruppe wird übergeben und kann nicht geändert werden.
Eine Kurzbeschreibung der Parameter-Gruppe kann jederzeit hinzugefügt und geändert werden.

Export erlaubt
Gibt an, ob die Parameter-Gruppe mit allen Detail-Einträgen exportiert werden darf
oder nicht.

Art des Imports
Sofern die Parameter-Gruppe exportiert werden kann, muss die Art des Imports angegeben werden. Die Auswahl Art des Imports wird nur angezeigt, wenn Export erlaubt
ist.
B EN UT ZERHA ND BUC H 317

Nicht Hinzufügen
Diese Option wird automatisch gesetzt, wenn
die Parameter-Gruppe nicht exportiert werden kann.

Nur Hinzufügen
Bei dieser Option wird die Parameter-Gruppe
sowie die zugehörigen Detail-Sätze bei der Installation
nicht ausgetauscht, sondern lediglich die fehlenden Informationen hinzugefügt.

Hinzufügen und Ersetzen
Bei dieser Option wird bei der Installation zunächst die
eventuell vorhandene Parameter-Gruppe mit allen abhängigen Datensätze gelöscht und im Anschluss komplett neu übernommen.

Sortierung Die Auflistung der hinterlegten Parameter-Control-Informationen kann wahlweise in einer vorgegebenen Reihenfolge (Sequenz) oder nach der Beschreibung/Text sortiert
werden.
Bei der Sortierung nach Beschreibung/Text wird die Mehrsprachigkeit berücksichtigt.
stet. Wird dagegen mit der englischen Sprache
aufgelistet.
Die Art der Sortierung kann jederzeit geändert werden.


Buttons
Speichern
Beim Klick auf den Button Speichern werden die geänderten Daten zurückgeschrieben.
Abbrechen Die Verarbeitung wird abgebrochen.
7.8.3
Parameter-Control-Daten erstellen
Beim Klick auf den Erstellen-Button kann sowohl eine neue Parameter-Gruppe als auch der erste DetailVerarbeitungs-Satz erstellt werden.
Detail-Informationen können auch über die Auswahl Parameter-Detail und anschließendem Klick auf den
Erstellen Button erfasst werden.
B EN UT ZERHA ND BUC H 318
Abbildung 85: Erfassen Parameter-Control-Header und Detail-Informationen

Ein-/Ausgabe-Felder
Anwendung
Sofern die Auswahl der List-Anzeige über das Kontext-Menü der Anwendung erfolgt,
wird die Anwendung übergeben und kann nicht geändert werden.
Sofern die List-Anzeige direkt über das WOPiXX-Menü (WOPiXX  Einstellungen
Parameter verwalten, kann die Anwendung nicht übergeben werden, d.h. die Anwendung muss beim Erfassen der Parameter-Control-Daten angegeben werden.

Parameter-Gruppe
Sofern die Auswahl der List-Anzeige über das Kontext-Menü der Anwendung oder direkt aus dem WOPiXX-Menü heraus erfolgt, kann die Parameter-Gruppe erfasst werden. Sofern es sich um eine neue Parameter-Gruppe handelt wird diese angelegt.
Erfolgt der Aufruf über Kontext-Menü aus der Detail-Anzeige der Parameter, ist die Parameter-Gruppe bekannt, wird vorgegeben und kann nicht geändert werden.

Beschreibung Parameter-Gruppe
Die Beschreibung der Parameter-Gruppe kann jederzeit, unabhängig davon, ob die
Parameter-Gruppe angegeben bzw. geändert werden kann, geändert werden. Die geänderte Beschreibung wird im Parameter-Control-Satz aktualisiert.
B EN UT ZERHA ND BUC H 319

Typ

Wert

Abweichende Daten
Sofern von den anzuzeigenden Werten abweichende Werte in die Tabellen geschrie-Werte an dieser Stelle hinterlegt werden,
z.B. der Status in der Datei ist 01, in der Combowerden.

Nachrichten-Id
Zusätzlich zu dem Wert kann eine Beschreibung angegeben werden.
Anzeige-Wert der Parameter-Control-Daten
Die Angabe eines Wertes ist zwingend erforderlich
Die Beschreibung kann entweder in Form einer Message-Id oder, sofern nicht mit
Mehrsprachigkeit gearbeitet wird direkt als Text hinterlegt werden.
Wird eine Message-Id angegeben, so wird die Beschreibung zur Laufzeit aus der
sprachenabhängigen Message-File der Anwendung ermittelt.
Sofern für die Sortierung Text ausgewählt wurde, werden die Daten in der Combo-Box
zur Laufzeit basierend auf den aus der Nachrichten-Datei ermittelten Beschreibungen
sortiert ausgegeben.

Symbol

Sortierung Die Sortierung kann wahlweise nach der vorgegebenen Sequenz oder nach der Beschreibung erfolgen.
Die Art der Sortierung wird nur angezeigt und kann für einen Detail-Satz nicht geändert
werden. Sofern eine Änderung der Sortierreihenfolge erforderlich ist, muss die über die
Parameter-Gruppe erfolgen (Ändern Parameter-Gruppe)

Sequenz

Export erlaubt
Gibt an ob die Parameter-Control-Daten exportiert werden können

Art des Imports
Gibt an, ob und wie die Parameter-Control-Daten importiert werden können

Nicht importieren
Wenn Export nicht erlaubt ist, kann auch kein
Import erfolgen
Für jeden Kontext-Menü-Punkt kann ein Icon hinterlegt werden.
Reihenfolge in der die Combo-Box-Einträge angezeigt werden. Die Reihenfolge kann
beliebig, unabhängig von Wert und Beschreibung festgelegt werden.

Hinzufügen

Hinzufügen und Ersetzten
Beim Update werden nur neue Einträge hinzugefügt
B EN UT ZERHA ND BUC H 320
Beim Update werden die Parameter-Control-Daten ersetzt
7.8.4
Parameter-Control-Daten löschen
Beim Löschen der Parameter-Control-Daten werden sowohl die Parameter-Control-Gruppen, als auch
die zugehörigen Detail-Informationen (Parameter-Control-Sätze) gelöscht.
Das Löschen muss explizit bestätigt werden.
Abbildung 86: Löschen Parameter-Control-Gruppe
7.8.5
Parameter-Control-Detail-Informationen
Aus der List-Anzeige für Parameter-Control-Gruppen können über die Kontext-Menü-Auswahl Parameter-Detail die Parameter-Control-Daten für die ausgewählte Parameter-Gruppe angezeigt und bearbeitet
werden.
Die folgende Abbildung zeigt, wie die Parameter-Control-Detail-Informationen aufgerufen werden.
B EN UT ZERHA ND BUC H 321
Abbildung 87: Aufruf List-Anzeige Parameter-Control-Detail-Informationen
Nach Auswahl des Kontext-Menü-Items Parameter Detail werden die Parameter-Control-Informationen,
die für die ausgewählte Anwendung und Parameter-Gruppe hinterlegt sind angezeigt.
Abbildung 88: Listanzeige - Parameter-Control-Daten
Detail
B EN UT ZERHA ND BUC H 322
Header-Informationen
Informationen über die Parameter-Gruppe werden im Header angezeigt und können nicht geändert oder
ausgewählt werden.





Anwendung Anwendung für die die Parameter-Gruppe angelegt wurde
Gruppe
Name der Parameter-Gruppe
Export
Export der Parameter-Gruppe zulässig
Import
Art des Imports, sofern Export der Parameter-Gruppe zulässig ist
Sortierung Art der Sortierung, entweder in vorgegebener Reihenfolge oder nach Beschreibung
Sofern die Details für eine andere Parameter-Gruppe angezeigt werden sollen, muss das Fenster geschlossen und erneut Parameter-Details für die gewünschte Parameter-Gruppe ausgewählt werden.
Spalten

Gruppe
Parameter-Gruppe
für alle Einträge identisch

Beschreibung
Beschreibung, die in der Combo-Box angezeigt wird

Angezeigte Werte
Werte, die in der Combo-Box zur Auswahl angezeigt werden

Werte in Datei
Sofern abweichende Werte angegeben wurden, werden diese abweichenden Werte
angezeigt.
Sofern keine abweichenden Werte angegeben wurden, werden die (angezeigten) Werte angezeigt.

Icon
Buttons

Erstellen

Sofern ein Icon angezeigt werden soll, wird der relative Pfad, unter dem das Icon hinterlegt ist angezeigt.
Erfassen eines neuen Parameter-Control-Detail-Satzes
Resequenzierung
Der Button Resequenzierung ist bei Aufruf des Programms zunächst ausgegraut.
Die Reihenfolge in der die Parameter-Control-Detail-Sätze in der Combobox angezeigt
werden, kann in dieser List-Anzeige durch drag und drop verändert werden.
Sobald die Reihenfolge geändert wurde, wird der Button Resequenzierung aktiviert.
Beim anschießenden Klick auf den Button wird die neue Reihenfolge (Sequenz) der
Parameter-Control-Detail-Sätze gespeichert.
Anmerkung:
Die Reihenfolge, in der die Parameter-Control-Detail-Sätze angeordnet sind, wird bei der Anzeige der Combobox nur berücksichtigt,
B EN UT ZERHA ND BUC H 323
wenn die Sortierung nach Sequenz für die Parameter-Gruppe angegeben wurde.
Kontext-Menü-Auswahl

Ändern
Änderung eines Parameter-Control-Detail-Satzes

Löschen
Löschen eines Parameter-Control-Detail-Satzes

Eigenschaften
Anzeige eines Parameter-Control-Detail-Satzes
7.8.5.1 Parameter-Control-Details erstellen
Beim Klick auf den Erstellen-Button kann ein neuer Parameter-Control-Detail-Satz erfasst werden. Die
Parameter-Gruppe, sowie die Parameter-Gruppen-Informationen, wie Anwendung, Parameter-Gruppe,
Export etc. werden nur angezeigt und können nicht geändert werden.
Abbildung 89: Erfassen Parameter-Control-Detail-Informationen
Ein-/Ausgabe-Felder
B EN UT ZERHA ND BUC H 324

Anwendung
Wird durch die Auswahl fest vorgegeben und kann nicht geändert werden.

Parameter-Gruppe
Wird durch die Auswahl fest vorgegeben und kann nicht geändert werden.

Beschreibung Parameter-Gruppe
Sofern für die Parameter-Gruppe keine Beschreibung hinterlegt wurde, kann sie jederzeit beim Erfassen oder Ändern von Parameter-Control-Sätzen erfasst werden.
Sofern bereits eine Beschreibung hinterlegt wurde, kann sie weder beim Erfassen
noch Ändern von Parameter-Control-Sätzen geändert werden.

Typ

Wert

Abweichende Daten
Sofern von den anzuzeigenden Werten abweichende Werte in die Tabellen geschrie-Werte an dieser Stelle hinterlegt werden,
z.B. der Status in der Datei ist 01, in der Combowerden.

Nachrichten-Id
Zusätzlich zu dem Wert kann eine Beschreibung angegeben werden.
Anzeige-Wert der Parameter-Control-Daten
Die Angabe eines Wertes ist zwingend erforderlich
Die Beschreibung kann entweder in Form einer Message-Id oder, sofern nicht mit
Mehrsprachigkeit gearbeitet wird direkt als Text hinterlegt werden.
Wird eine Message-Id angegeben, so wird die Beschreibung zur Laufzeit aus der
sprachenabhängigen Message-File der Anwendung ermittelt.
Sofern für die Sortierung Text ausgewählt wurde, werden die Daten in der Combo-Box
zur Laufzeit basierend auf den aus der Nachrichten-Datei ermittelten Beschreibungen
sortiert ausgegeben.

Symbol

Sortierung Die Sortierung kann wahlweise nach der vorgegebenen Sequenz oder nach der Beschreibung erfolgen.
Wird durch die Parameter-Gruppe fest vorgegeben und kann nicht geändert werden.

Sequenz
Für jeden Kontext-Menü-Punkt kann ein Icon hinterlegt werden.
Reihenfolge in der die Combo-Box-Einträge angezeigt werden. Die Reihenfolge kann
beliebig, unabhängig von Wert und Beschreibung festgelegt werden.
Eine Sequenz kann nur erfasst werden, wenn die Sortierung nach Sequenz erfolgt. Bei
einer anderen Sortierung ist die Sequenz weder sichtbar, noch kann sie erfasst oder
geändert werden.
B EN UT ZERHA ND BUC H 325

Export erlaubt
Gibt an ob die Parameter-Control-Daten exportiert werden können
Das Export-Kennzeichen ist durch die Parameter-Gruppe vorgegeben und kann nicht
geändert werden.

Art des Imports
Gibt an, ob und wie die Parameter-Control-Daten importiert werden können

Nicht importieren
Wenn Export nicht erlaubt ist, kann auch kein
Import erfolgen

Hinzufügen

Hinzufügen und Ersetzten
Beim Update werden nur neue Einträge hinzugefügt
Beim Update werden die Parameter-Control-Daten ersetzt
Die Art des Imports ist durch die Parameter-Gruppe vorgegeben und kann nicht geändert werden.
7.8.5.2 Parameter-Control-Details ändern/anzeigen
Über Kontext-Menü-Auswahl in List-Anzeige Parameter-Control-Detail-Informationen können die erfassten Parameter- Control-Detail-Informationen angezeigt (Eigenschaften) oder bearbeitet werden (Ändern).
Abbildung 90: Anzeigen / Ändern Parameter-Control-Detail-Informationen
B EN UT ZERHA ND BUC H 326
7.8.5.3 Parameter-Control-Details löschen
Bei Kontext-Menü-Auswahl Löschen aus den Parameter-Control-Detail-List-Anzeige, wird jeweils nur
der ausgewählte Detail-Satz gelöscht. Sofern der letzte Detail-Satz einer Parameter-Gruppe gelöscht
wird, wird auch die zugehörige Parameter Gruppe gelöscht.
Das Löschen muss explizit bestätigt werden.
Abbildung 91: Löschen Parameter-Control-Detail-Informationen
7.9
Parameter übernehmen
Die Auswahl Parameter übernehmen kann an mehreren Stellen aufgerufen werden:



WOPiXX  Anwendung  Kontext-Menü: Parameter übernehmen
WOPiXX  Anwendung  Kontext-Menü: Parameter  Kontext-Menü: Parameter übernehmen
WOPiXX  Einstellungen  Parameter verwalten  Kontext-Menü: Parameter übernehmen
Über die Auswahl Parameter übernehmen kann wahlweise eine einzelne Parameter-Gruppe oder alle
Parameter-Gruppen von einer Anwendung in eine andere kopiert werden.
Des Weiteren ist es möglich eine Parameter-Gruppe innerhalb der Anwendung mit einem neuen Namen
zu kopieren.
Vorhandene Parameter-Gruppen werden nur überschrieben, wenn Ersetzten Ja/Nein explizit angegeben
wurde.
B EN UT ZERHA ND BUC H 327
Anmerkung:
Parameter-Gruppen in der dirweb/WOPiXX-Anwendung dürfen/können
nicht überschrieben werden!
Bei der Übernahme werden sowohl die Parameter-Gruppen als auch die zugehörigen ParameterControl-Detail-Informationen kopiert.
Abbildung 92: Parameter-Gruppe übernehmen

Ein-/Ausgabe-Felder
Von Parameter-Gruppe Anwendung
Anwendung aus der die gewünschte Parameter-Gruppe oder alle Parameter-Gruppen
kopiert werden sollen.
Matchcode-Auswahl erfolgt über die SQL-Abfragen DWAPP

Nach Parameter-Gruppe Anwendung
.Anwendung in die die Parameter-Gruppe oder alle Parameter-Gruppen übernommen
werden soll.
Sofern einzelne Parameter-Gruppen kopiert werden sollen, kann die Kopie innerhalb
der gleichen Anwendung erzeugt werden. In diesem Fall muss für die neue ParameterGruppe ein anderer Name verwendet werden.
Matchcode-Auswahl erfolgt über die SQL-Abfragen DWAPP

Von Parameter-Gruppe
Parameter-Gruppe in der ausgewählten Anwendung, die kopiert werden soll.
Matchcode-Auswahl erfolgt über die SQL-Abfrage DWPRMCTL

Nach Parameter-Gruppe
Name der neuen Parameter-Gruppe
Beim Kopieren in eine andere Anwendungen kann der für die kopierte Parameter-
B EN UT ZERHA ND BUC H 328
Gruppe der gleiche Name den auch die Original-Parameter-Gruppe hatte verwendet
werden.
Sollen alle Parameter-Gruppen kopiert werden, kann der Sonderwert *ALL angegeben
werden
Matchcode-Auswahl erfolgt über die SQL-Abfrage DWPRMCTL.

Ersetzten Ja/Nein
Vorhandene Parameter-Gruppen werden nur ersetzt, wenn Ersetzten Ja/Nein explizit
angegeben wurde.
Anmerkung:
Parameter-Gruppen in den WOPiXX-Anwendungen werden auch
dann nicht überschrieben, wenn explizit Ersetzten Ja/Nein angegeben wurde.
Stattdessen wird eine entsprechende Fehlermeldung ausgegeben.
7.10 SQL-Abfrage
In WOPiXX sind diverse Möglichkeiten zur Hinterlegung von Matchcode-Daten ohne zusätzliche Programmierung enthalten. Die hinterlegten Informationen können einfach über Schlüssel-Wort bei der Definition von Filtern, Ein-/Ausgabe-Feldern und Spalten in List-Anzeigen integriert werden.
Eine dieser Möglichkeiten sind die SQL-Abfragen, d.h. die Matchcodes werden als SQL-SelectStatements hinterlegt. Die anzuzeigenden Spalten werden basierend auf dem SQL-Statement ermittelt.
Eine Nachbearbeitung der Spalten ist möglich. So können z.B. für die Spalten zusätzlich Filter integriert
oder Aufbereitungsoptionen angegeben werden.
Die SQL-Abfragen können auf Anwendungsebene hinterlegt werden, aber auch von einer Anwendung in
eine andere Anwendung kopiert werden.
Die SQL-Abfragen werden zur Laufzeit zunächst in der Anwendungs-Objekt-Bibliothek gesucht. Wird in
der Objekt-Bibliothek kein Eintrag gefunden wird geprüft, ob ein entsprechender Eintrag in der dirweb/WOPiXX-Umgebung vorhanden ist. Werden in der dirweb/WOPiXX-Umgebung entsprechende Einträge gefunden werden diese verwendet.
Damit können die SQL-Abfragen, die in WOPiXX integriert sind, von jeder beliebigen Anwendung verwendet werden.
SQL-Abfragen, die von WOPiXX zur Verfügung gestellt werden können auch modifiziert werden. Es ist
jedoch zu beachten, dass Änderungen zum Auswirkung auf die vorhandenen WOPiXX-AdministrationsProgramme haben können, in denen die Abfragen verwendet werden. Zum anderen werden bei einem
Produkt-Update die geänderten SQL-Abfragen wieder durch die Original-WOPiXX-Abfragen ersetzt
werden. Um einen Datenverlust und sonstige Probleme an dieser Stelle zu vermeiden, sollten die zu
modifizierenden SQL-Abfragen aus WOPiXX/dirweb in eine andere (jede beliebige) Anwendung kopiert
und dort modifiziert werden.
B EN UT ZERHA ND BUC H 329
Anmerkung:
Sofern in WOPiXX integrierte Abfragen modifiziert werden sollen, sollte diese Anpassung nicht an den Original-WOPiXX-Abfragen erfolgen.
Vielmehr sollten die gewünschte WOPiXX-Abfrage in eine Anwendung
übernommen und dort modifiziert werden.
Matchcodes, die auf SQL-Abfragen basieren werden im RPG-Code über Schlüssel-Wort ExecSQL in
Verbindung mit der gewünschten Kennung hinterlegt, z.B. für Kennung DWAPP wird ExecSQL(DWAPP)
angegeben, wobei Groß/Klein-Schreibung ignoriert werden kann.
■ SQL-Abfrage hinterlegt
■ Anzeige SQL-Abfrage
nach Klick auf
Abbildung 93: Verwendung von SQL-Abfragen
Das folgende Beispiel zeigt den zugehörigen Source Code
B EN UT ZERHA ND BUC H 330
■ SQL-Abfragen
Abbildung 94: Source-Code: Einbindung von SQL-Abfragen
7.10.1 List-Anzeige SQL-Abfragen
Der Aufruf zur Wartung der SQL-Abfragen-Daten für eine Anwendung erfolgt entweder pro Anwendung
über die Kontext-Menü-Auswahl SQL-Abfrage oder direkt aus dem WOPiXX-Menü über den MenüPunkt Einstellungen  Abfrage verwalten.
Erfolgt der Aufruf über das Kontext-Menü der Anwendung, wird die Anwendung fix übergeben und kann
nicht geändert werden. Erfolgt der Aufruf aus dem WOPiXX-Menü, so können entweder die SQLAbfragen aller Anwendungen angezeigt werden, oder eine einzelne Anwendung kann über eine ComboBox ausgewählt werden.
Die folgende Abbildung zeigt den Aufruf der SQL-Abfragen über Kontext-Menü-Auswahl auf Anwendungsebene.
B EN UT ZERHA ND BUC H 331
Abbildung 95: : Aufruf SQL-Abfragen über Kontext-Menü-Auswahl
Nach Auswahl des Kontext-Menü-Items SQL-Abfrage werden die SQL-Abfragen, die für die ausgewählte Anwendung erstellt wurden angezeigt.
B EN UT ZERHA ND BUC H 332
Abbildung 96: List-Anzeige SQL-Abfragen
Die Anwendung wird übergeben und im Header angezeigt. Die Anwendung kann weder ausgewählt
noch geändert werden.
Filter

Anwendung
Der Filter Anwendung wird nur angezeigt, wenn der Aufruf direkt aus dem WOPiXXMenü erfolgt.
Beim Aufruf auf Anwendungsebene wird die Anwendung übergeben und im Header
angezeigt. Eine Änderung der Anwendung oder die Anzeige aller SQL-Abfragen für alle
Anwendungen ist bei diesem Aufruf nicht möglich.


SQL Abfrage
Über den Filter SQL-Abfrage kann nach einer oder mehreren Abfragen gesucht werden. Die Spalte SQL-Abfrage wird über eine LIKE-Anweisung durchsucht.
Spalten
Anwendung
B EN UT ZERHA ND BUC H 333
Die Spalte Anwendung wird nur angezeigt, wenn der Aufruf direkt aus dem WOPiXXMenü erfolgt, da bei diesem Aufruf die Anwendung ausgewählt oder die Anzeige der
SQL-Abfragen aller Anwendungen möglich ist.

SQL-Abfrage
Name der SQL-Abfrage
Der Name der SQL-Abfrage muss innerhalb der Anwendung eindeutig sein.
Der Name der SQL-Abfrage wird bei der Verwendung im RPG-Programm in Verbindung mit dem Schlüssel-Wort ExecSQL(NameSQLAbfrage) angegeben.

Beschreibung
Kurz-Beschreibung der SQL-Abfrage

Nachrichten-Nr.
In mehrsprachigen Umgebungen kann anstatt der Kurz-Beschreibung auch eine Message-Id, hinter der sich die Kurzbeschreibung verbirgt angegeben werden.

Anzahl Spalten
Gibt die Anzahl der Spalten, die in dem SQL-Statement hinterlegt sind und im Matchcode angezeigt werden.

Export
Gibt an, ob die SQL-Abfrage exportiert werden darf, oder nur zu Test-Zwecken angelegt wurde.

Import
Gibt an, ob und wie eine exportierte SQL-Abfrage importiert werden darf.

Nicht hinzufügen

Nur hinzufügen

Hinzufügen und ersetzen.

Beispiel
Beim Klick auf den Beispiel-Button wird das Ergebnis SQL-Abfrage wie zur Laufzeit
aufbereitet und angezeigt.
Abbildung 97: Auswahl - Beispiel
Buttons

Erstellen
Erstellen einer neuen SQL-Abfrage
Kontext-Menü

Ändern
Ändern einer vorhandenen Abfrage

Löschen
Löschen einer vorhandenen Abfrage incl. aller abhängigen Informationen (SpaltenInformationen, Berechtigungen)
Das Löschen muss explizit bestätigt werden.
B EN UT ZERHA ND BUC H 334

Eigenschaften
Zeigt die Header-Informationen für die ausgewählte SQL-Abfrage an.

Spalten

Berechtigungen
Listet Detail-Informationen über die berechtigten Benutzer auf.
Über Kontext-Menü-Auswahl können weitere Benutzer berechtigt werden, oder die
Berechtigungen der eingetragenen Benutzer geändert werden.

SQL-Abfrage umbenennen
Der Name der ausgewählten SQL-Abfrage kann geändert werden.
Auch der neue Name muss innerhalb der Anwendung eindeutig sein.

SQL-Abfrage übernehmen
Eine vorhandene SQL-Abfrage kann entweder aus einer anderen Anwendung übernommen werden, oder innerhalb der gleichen Anwendung kopiert werden.
Listet Detail-Informationen über die einzelnen Spalten, die im Matchcode angezeigt
werden sollen auf.
Über Kontext-Menü-Auswahl ist dann eine Nachbearbeitung der Spalten möglich.
7.10.2 SQL-Abfrage Erstellen
Nach dem Klick auf den Erstellen-Button kann eine neue SQL-Abfrage erstellt werden.
Basis für die Matchcodes über SQL-Abfragen, sind SQL-SELECT-Statement, die eine Spalte mit einem
eindeutigen Schlüssel haben. Dieser eindeutige Schlüssel wird als Haupt-Schlüssel-Spalte definiert und
bei Doppelklick ausgegeben. Das eindeutige Schlüssel-Feld sollte als erste Spalte im SELECTStatement definiert sein.
Ansonsten kann/darf das SELECT-Statement alles (außer Common Table Expressions) beinhalten, was
für das aktuelle IBM i Release unterstützt wird.
Beim Speichern der neuen SQL-Abfrage werden für die ausgewählten Spalten Detail-Informationen generiert, die über Kontext-Menü-Auswahl Spalten nachbearbeitet werden können. So können z.B. die
Überschriften geändert oder Filter hinzugefügt werden. Die erste Spalte wird automatisch als Hauptschlüssel-Feld deklariert.
Neben den Spalten-Informationen werden auch automatisch die Berechtigungen für die SQL-Abfrage
erstellt. Per Default wird das Benutzer-Profil QSECOFR, sowie das aktuelle Benutzer-Profil mit allen
Rechten ausgestattet. *PUBLIC hat nur die Berechtigung zur Verwendung und Anzeige der Daten. Die
Benutzer-Berechtigungen können über Kontext-Menü-Auswahl angezeigt und nachbearbeitet werden.
Sofern keine Nachbearbeitung gewünscht ist, kann die SQL-Abfrage direkt nach dem Sichern in Programme eingebunden werden.
Die folgende Abbildung zeigt den Erfassungs-Bildschirm für SQL-Abfragen beim Aufruf aus der Auflistung der SQL-Abfragen auf der Anwendungsebene.
B EN UT ZERHA ND BUC H 335
Abbildung 98: Erfassen SQL-Abfragen
Ein-/Ausgabe-Felder

Anwendung
Erfolgt der Aufruf auf Anwendungsebene, wird die Anwendung übergeben und angezeigt, kann jedoch nicht geändert werden.
Sofern der Aufruf über WOPiXX  Einstellungen Abfragen verwalten  Button erstellen erfolgt, muss eine gültige Anwendung angegeben werden.
Eine gültige Anwendung kann über Matchcode/SQL-Abfrage DWAPP angezeigt und
ausgewählt werden.

SQL-Abfrage
Für jede SQL-Abfrage muss ein innerhalb der Anwendung eindeutiger Name vergeben
werden.
Im Änderungs-Modus kann der eindeutige Name nicht geändert werden.
Sofern die SQL-Abfrage umbenannt werden muss, muss dies über die Kontext-MenüAuswahl Abfrage umbenennen erfolgen.

Beschreibung
Kurzbeschreibung der SQL-Abfrage

Message-Id für Text
Sofern mit Mehrsprachigkeit gearbeitet wird kann anstatt der Kurzbeschreibung eine
B EN UT ZERHA ND BUC H 336
Message-Id, die in der Message-File in der Objekt-Bibliothek hinterlegt ist angegeben
werden.

Zuerst Filter erfassen
Sofern die SQL-Statements auf große Tabellen zugreifen, oder die anzuzeigenden Daten zuerst über Filter-Auswahl eingeschränkt werden sollen, kann die Option Zuerst Filter erfassen angegeben werden.

SQL-Befehl
SELECT
SQL-Select-Befehl, der in der Matchcode-Anzeige verwendet werden soll.
Das SELECT-Statement kann (fast) alles beinhalten, was in einem SELECT-Statement
möglich ist. Common Table Expressions werden aktuell nicht direkt unterstützt. SubSelects in der From-Anweisung sind dagegen erlaubt.
Zeilenumbruchzeichen werden entfernt, aus diesem Grund muss entweder vor oder
nach dem Zeichenumbruch muss ein Blank angegeben werden.
Sofern eine ORDER BY-Anweisung angegeben wurde, wird diese entfernt.
Das SQL-Statement muss direkt eingegeben oder kopiert werden, eine Bedienerführung ist an dieser Stelle nicht vorgesehen.
Vor dem Sichern wird das SQL-Select-Statement geprüft und nur gültige SELECTStatements (ohne Common Table Expressions) akzeptiert. Im Fehlerfall wird die gleiche Fehlermeldung, die auch im STRSQL oder IBM i Navigator angezeigt wird, ausgegeben.
Achtung:
Die erste oder letzte Spalte muss einen eindeutigen Schlüssel-Wert,
der bei Auswahl zurückgegeben wird beinhalten.
Werden neue Spalten generiert (z.B. Menge * Preis) muss diese
Spalte einen Namen (z.B. as Gesamt) erhalten.
Alphanumerische Spalten werden nur bis zu einer Länge von 999
Zeichen unterstützt. Ggf. muss eine größere Spalte explizit gecastet
werden (z.B. VarChar(MyLongText, 999) oder Cast(MyLongText as
VarChar(999))
aktuell nicht
unterstützt. Sub-Selects in der FROM-Anweisung sind dagegen erlaubt.

Darstellung als Combo-Box
Die Darstellung der Matchcode-Auswahl kann in einem der folgenden Formate erfolgen:

Normales Eingabe-Feld
B EN UT ZERHA ND BUC H 337
Abbildung 99: SQL-Abfrage als normales Eingabe-Feld

Combobox mit Werte Liste
Abbildung 100: SQL-Abfrage als Combo-Box mit Werte-Liste

Export erlaubt
Gibt an, ob die SQL-Abfrage mit allen Spalten-Informationen und Berechtigungen exportiert werden darf oder nicht. Unter Export versteht man das isolierte Bereitstellen
der Anwendung mit allen Komponenten zur Installation auf einem anderen System oder zur Bereitstellung im WOPiXX-App-Store. Abfragen, die für den Export nicht erlaubt sind, werden in der exportierten Anwendung nicht ausgeliefert; auf diese Weise
können Testabfragen oder ungetestete Abfragen von einer Auslieferung ausgeschlossen werden.

Art des Imports
Sofern die SQL-Abfrage exportiert werden kann, muss die Art des Imports angegeben
werden. Die Auswahl Art des Imports wird nur angezeigt, wenn Export erlaubt ist.
B EN UT ZERHA ND BUC H 338
7.10.3 SQL-Abfragen Ändern/Anzeigen
Über die Kontext-Menü-Auswahlen Eigenschaften und Ändern können die SQL-Abfragen geändert werden.
Anwendung und der Name der SQL-Abfrage können im Änderungsmodus nicht (mehr) geändert werden. Im Bedarfsfall kann jedoch die Anwendung umbenannt werden oder in eine andere Anwendung
kopiert werden.
Das SQL-Statement kann jederzeit geändert werden. Beim Sichern wird geprüft ob die einzelnen Spalten bereits in der vorherigen Version der SQL-Abfrage vorhanden waren. Bereits angelegte Spalten
werden mit allen hinterlegten Bearbeitungskriterien übernommen, neue Spalten werden generiert und
nicht mehr benötigte Spalten entfernt. Die Spalten werden in der Reihenfolge, wie sie im SQLStatement angegeben wurden angelegt.
Die folgende Abbildung zeigt die SQL-Abfrage im Anzeige und Änderungsmodus.
■ Klick auf
 Anzeige Matchcode
B EN UT ZERHA ND BUC H 339
Abbildung 101: Anzeigen / Ändern SQL-Abfragen
Im Änderungs- und Anzeige-Modus kann über Klick auf den Beispiel-Button die Matchcode-Abfrage,
wie sie nach dem Einbinden ins Programm dargestellt wird, angezeigt werden.
Des weiteren werden im Änderungs- bzw. Anzeige-Modus gegenüber der Erfassungsmaske noch zwei
zusätzliche Buttons bereitgestellt, über die zum einen die zum SQL-Statement gehörenden Spalten und
zum anderen die zugeordneten Berechtigungen angezeigt und bearbeitet werden können.

Zusätzliche Ein-/Ausgabe-Felder
Beispiel
Bei diesem Feld handelt es sich um kein Eingabe-Feld. Beim Klick den kleinen Button
wird die Abfrage, wie sie später auch in den Programmen angezeigt wird ausgegeben.
Bei Combo-Boxen wird die Combo-Box dargestellt. Eine Auswahl von Werten ist an
dieser Stelle jedoch nicht möglich.
Zusätzliche Buttons

Spalten
Beim Klick auf den Button wird in die List-Anzeige der über das SQL-Statement definierten Spalten verzweigt.
Die Bearbeitung kann dann direkt aus der List-Anzeige (über Kontext-Menü-Auswahl)l
erfolgen.

Berechtigungen
Beim Klick auf den Buttonwird in die List-Anzeige der für das SQL-Select-Statement
vergebenen Berechtigungen verzweigt.
Die Bearbeitung der Berechtigungen kann direkt aus der List-Anzeige (über KontextMenü-Auswahl) erfolgen.
7.10.4 SQL-Abfragen Löschen
Beim Löschen der SQL-Abfragen, werden alle zugehörigen Informationen wie Spalten und Berechtigungen gelöscht.
Das Löschen von SQL-Abfragen muss explizit bestätigt werden.
B EN UT ZERHA ND BUC H 340
Abbildung 102: Bestätigen - Löschen SQL-Abfrage
7.10.5 SQL-Abfragen Spalten
List-Anzeige
Beim Erstellen oder Ändern werden basierend auf dem SELECT-Statement die neuen bzw. ausgewählten Spalten mit Default-Werten angelegt. Im Änderungsmodus werden die vorhandenen Spalten übernommen bzw. sofern sich z.B. nur die Spalten-Größe ändert angepasst.
Die erste Spalte wird dabei immer als Haupt-Schlüssel-Feld angelegt.
Die zu dem SELECT-Statement gehörenden Spalten werden inklusive der Überschrift, den Datentypen
und Längenangaben, sowie einigen weiteren Eigenschaften aufgelistet. Über Kontext-Menü-Auswahl
können die einzelnen Spalten nachbearbeitet werden.
Die folgende Abbildung zeigt die Spalten-Definition für die Abfrage TESTSUBS in Anwendung WXEXAMPLES
B EN UT ZERHA ND BUC H 341
Abbildung 103: List-Anzeige - Spalten für SQL-Abfrage
Header-Informationen
Anwendung
Anwendung sowie die Kurzbeschreibung der Anwendung in der die SQL-Abfrage hinterlegt ist.

SQL-Abfrage
Der innerhalb der Anwendung eindeutige Name der SQL-Abfrage


Select-Statement
SQL-Statement auf dem die Abfrage basiert


Export
Import


Spalten
Folge
Spalte

Gibt an, ob die Abfrage exportiert werden kann
Gibt die Art des Imports an, sofern die Abfrage exportiert werden kann
Wird nur angezeigt, wenn Export erlaubt.
Gibt die Reihenfolge der Spalten, wie sie im SELECT-Statement hinterlegt wurden an.
Spalten-Name
Entspricht dem System-Spalten-Name oder dem im SELECT-Statement festgelegten
Spalten-Name
Beschreibung
Gibt die Spalten-Überschrift an
Wurde die Spalte automatisch generiert, so entspricht die Überschrift dem SpaltenNamen.
B EN UT ZERHA ND BUC H 342

Nachrichten-Nr.
In mehrsprachigen Umgebungen kann anstatt der Überschrift eine Message-Id hinterlegt werden.

Datentyp
Datentyp der Spalte

Länge
Länge der Daten bei numerischen und alphanumerischen Spalten

Dezimal-Positionen
Anzahl der Dezimal-Positionen bei numerischen Feldern

Filter

Schlüssel-Feld
Kennzeichnet die Spalte, die den eindeutigen Schlüssel-Wert enthält.

Trefferliste


Gibt an, ob die Spalten-Werte über Filter selektiert werden können.
Kontext-Menü und Buttons
Ändern
Nachbearbeitung der Spalten
Eigenschaften
Anzeige der detaillierten Spalten-Informationen
Die angelegten Spalten können nur bearbeitet oder angezeigt werden. Es können jedoch weder Spalten
gelöscht, noch zusätzlichen Spalten generiert werden.
Anmerkung:
Hinzufügen oder Entfernen von Spalten ist nur durch die Änderung des
SELECT-Statements möglich
7.10.5.1 SQL-Abfragen Spalten bearbeiten
Über Kontext-Menü-Auswahl können die Detail-Informationen für die einzelnen Spalten bearbeitet werden.
In der Ausgabe werden zunächst die folgenden Informationen angezeigt, die nicht geändert werden
können:


Anwendung
SQL-Abfrage
Der innerhalb der Anwendung eindeutige Name der SQL-Abfrage

Select-Statement
SELECT-Statement auf der die Abfrage basiert


Sequenz
Spalte
Position der Spalten (in 10-er Schritten)
Name der Spalte
B EN UT ZERHA ND BUC H 343


Datentyp
Länge

Dezimal-Positionen
Anzahl der Dezimal-Positionen (Anzeige erfolgt nur für numerische Spalten)
Datentyp der Spalte
Länge (Anzeige erfolgt abhängig davon, ob eine Länge angegeben wurde, bzw. ob für
den Datentypen eine Längenangabe erforderlich ist.
Die zu bearbeitenden Detail-Informationen werden in 3 Blöcke gruppiert, die in der Anzeige unter den
folgenden Reitern angeordnet sind:



Allgemein
Ausgabe
Suche
Allgemeine Informationen wie Beschreibung, Schlüssel und Sortierung
Aufbereitung, z.B. Ausrichtung
Hinzufügen und bearbeiten von Filter-Feldern
Die folgende Abbildung zeigt die allgemeinen Detail-Informationen:
■ SQL-Abfrage  Ändern Spalten
■ Reiter: Allgemein
Abbildung 104: SQL-Abfragen - Ändern Spalten - Reiter Allgemein
Ein-/Ausgabe-Felder

Beschreibung
Spalten-Überschrift in der Matchcode-Ausgabe

Message-Id für Text
B EN UT ZERHA ND BUC H 344
Anstatt einer Überschrift kann in mehrsprachigen Umgebungen auch eine Message-Id
hinterlegt werden.

Hauptschlüssel-Feld
Kennzeichnet die Spalte mit dem eindeutigen Key.
Bei Auswahl werden diese Informationen zurückgegeben.

Standard-Sortierfeld
Sofern keine vorhergehende Sortierung der Daten vorhanden ist, wird die Ausgabe
nach dieser Spalte sortiert.

Standard-Sortierfolge absteigend
Auswahl kann nur erfolgen, wenn Standard-Sortierfeld ausgewählt wurde.

Sortieren erlauben
Die Spalte darf nach Klick auf die Überschrift aufsteigend/absteigend sortiert werden.
Die folgende Abbildung zeigt die Detail-Informationen, die unter dem Reiter Ausgabe bearbeitet werden
kann. Abhängig vom Datentypen der Spalte werden unterschiedliche Ein-/Ausgabe-Felder angezeigt.
■ SQL-Abfrage  Ändern Spalten
■ Reiter: Ausgabe
■ Unterscheidliche Auswahl-Möglichkeiten
abh. vom Datentypen
Abbildung 105: SQL-Abfragen - Ändern Spalten - Reiter Ausgabe
B EN UT ZERHA ND BUC H 345

Ein-/Ausgabe-Felder
In Liste anzeigen
Spalte wird nicht angezeigt (hidden)

Groß/Kleinschreibung
Wird nur bei alphanumerischen Spalten angezeigt
Aufbereitung der Texte in Großbuchstaben oder Kleinbuchstaben oder unverändert

CCSID der Spalte
Bei alphanumerischen Spalten kann die CCSID angegeben werden

Spezielle Anzeige als:
Diverse Aufbereitungsoptionen, z.B. CheckBox, Telefon-Nr., E-Mail-Adresse. Die
Funktion dieser Aufbereitung bewirkt, dass bei
Checkbox = Das Feld wird als Checkbox(Häkchen) dargestellt, wenn der Inhalt ein
Y(es) oder O(ui) oder J(a) oder 1 ist.
Telefonnummer = Die Nr. wird als Link (klickbar) angezeigt. Wird darauf geklickt, wird
die Nummer mit dem Programm gewählt, das im Benutzerprofil eingestellt ist.
www-Adresse = Der Feldinhalt ist eine Webseite und wird als Link (klickbar) angezeigt. Wird darauf geklickt, wird ein weiteres Browser-Fenster gestartet.
E-Mail-Adresse = Der Feldinhalt wird als Link (klickbar) angezeigt. Wird darauf geklickt, wird mit mailto: der E-Mail-Client des Benutzers gestartet.
Mobiltelefon = Die Telefon-Nr. wird als Link (klickbar) angezeigt. Wird darauf geklickt,
wird die Nummer mit dem Programm gewählt, das im Benutzerprofil eingestellt ist.
Die folgende Abbildung zeigt die Detail-Informationen, die unter dem Reiter Suche bearbeitet werden
können. Über diese Optionen können für die einzelnen Spalten Filter-Felder hinterlegt werden. Dies ist
ender kann das Ergebnis wird von
vornherein einschränken. Mit den richtigen Zugriffswegen (Indices / logische Dateien) sollte dann auch
der Zugriff auf große Tabellen sehr performant sein.
B EN UT ZERHA ND BUC H 346
■ SQL-Abfrage  Ändern Spalten
■ Reiter: Suche
Abbildung 106: SQL-Abfrage - Ändern Spalten - Reiter: Suche

Ein-/Ausgabe-Felder
Volltext-Suche
Kann nur bei alphanumerischen Spalten ausgewählt werden.
Wurde die Volltext-Suche ausgewählt, wird ein generisches Filter-Feld integriert

Filter-Auswahl
Für die entsprechende Spalte wird ein Filter generiert

Erweiterter Filter
Gibt an, ob das Filter-Feld immer sichtbar sein soll, oder als erweiterter Filter angelegt
werden soll.
Die Auswahl ist nur sichtbar, wenn Filter-Auswahl angegeben wurde.

Eingabe erforderlich
In dem Filter-Feld ist eine Eingabe erforderlich.
Bei großen und komplexen SQL-Abfragen kann die Vorgabe eines Filter-Wertes die
Abfrage massiv beschleunigen. Wird eine Eingabe gefordert, können versehentliche
Ausführungen der Abfrage über alle Datensätze vermieden werden.
Die Auswahl ist nur sichtbar, wenn Filter-Auswahl angegeben wurde.

WOPiXX (directweb) SQL-Abfrage
Für Filter-Auswahlen können ebenfalls SQL-Abfragen angegeben werden.
B EN UT ZERHA ND BUC H 347
z.B. für den Filter Bibliothek kann die SQL-Abfrage DWSCHEMAS hinterlegt werden.
Zur Laufzeit kann dann die Bibliothek über diese Abfrage ausgewählt und in das FilterFeld übertragen werden.
Die Auswahl ist nur sichtbar, wenn Filter-Auswahl angegeben wurde.

Filter Combobox mit Werteliste
Gibt an, ob die Aufbereitung der SQL-Abfrage in einem Fenster oder als Werte-Liste
erfolgen soll.
Die Auswahl ist nur sichtbar, wenn Filter-Auswahl angegeben wurde.

Generische Suche
Gibt an, ob nur Werte, die den Filter-Eingaben exakt entsprechen selektiert werden,
oder ob eine generische Suche (LIKE!) implementiert werden soll.
Die Auswahl ist nur sichtbar, wenn Filter-Auswahl angegeben wurde.

Schreibweise ignorieren
Gibt bei alphanumerischen Filter-Feldern an, ob die Suche case sensitive sein soll oder
nicht.
7.10.6 SQL-Abfragen Berechtigungen
List-Anzeige
Beim Erstellen der SQL-Abfragen werden automatisch Berechtigungen angelegt. Das Benutzer-Profil
QSECOFR und das Benutzer-Profil, das die Abfrage angelegt hat erhalten alle Berechtigungen, d.h. diese Profile können die Abfrage nicht nur Anzeigen und Verwenden, sondern auch Ändern und Löschen.
Die übrigen Anwender (Jeder/*PUBLIC) können die Abfrage nur Anzeigen und Verwenden.
Weitere Benutzer bzw. Berechtigungen können den Button Erstellen erfasst werde. Ebenso ist es möglich die vorhandenen Berechtigungen über Kontext-Menü-Auswahl zu bearbeiten.
Berechtigungen können nur von Benutzern mit Administrator-Rechten bearbeitet werden.
Anmerkung:
Berechtigte Benutzer und Benutzer-Gruppen werden automatisch angelegt und können auch manuell bearbeitet werden.
Aktuell werden die Berechtigungen jedoch nicht geprüft.
Die folgende Abbildung zeigt die Berechtigungen für die Abfrage TESTSUBS in Anwendung WXEXAMPLES.
B EN UT ZERHA ND BUC H 348
Abbildung 107: List-Anzeige Berechtigungen für SQL-Abfrage
Header-Informationen

Anwendung
Anwendung sowie die Kurzbeschreibung der Anwendung in der die SQL-Abfrage hinterlegt ist.

SQL-Abfrage
Der innerhalb der Anwendung eindeutige Name der SQL-Abfrage

Select-Statement
SQL-Statement auf dem die Abfrage basiert


Export
Import

Spalten
Benutzer
Gibt an, ob die Abfrage exportiert werden kann.
Gibt die Art des Imports an, sofern die Abfrage exportiert werden kann
Wird nur angezeigt, wenn Export erlaubt ist.
Berechtigte Benutzer und Benutzer-Gruppen

Beschreibung
Benutzer Name oder Kurzbeschreibung der Benutzer-Gruppe

Verwenden Gibt an, ob der Benutzer/-Gruppe die SQL-Abfrage verwenden darf

Ändern
Gibt an, ob der Benutzer/-Gruppe die SQL-Abfrage ändern darf
B EN UT ZERHA ND BUC H 349

Daten anzeigen
Gibt an, ob der Benutzer/-Gruppe die Ergebnisse aus der SQL-Abfrage anzeigen darf.

Daten ändern
Gibt an, ob die Daten aus der SQL-Abfrage geändert werden können.

Daten löschen
Gibt an, ob die Daten aus der SQL-Abfrage gelöscht werden können.
7.10.6.1 SQL-Abfragen Berechtigungen erfassen
Nach Klick auf den Button Erfassen in der List-Anzeige SQL-Abfragen Berechtigungen, können Benutzer-Berechtigungen über die folgende Erfassungsmaske angelegt werden.
Abbildung 108: SQL-Abfragen - Erfassen Benutzer-Berechtigungen

Header-Informationen
Anwendung
Anwendung sowie die Kurzbeschreibung der Anwendung in der die SQL-Abfrage hinterlegt ist.

SQL-Abfrage
Der innerhalb der Anwendung eindeutige Name der SQL-Abfrage

Select-Statement
SQL-Statement auf dem die Abfrage basiert

Export
Gibt an, ob die Abfrage exportiert werden kann
B EN UT ZERHA ND BUC H 350


Import
Gibt die Art des Imports an, sofern die Abfrage exportiert werden kann
Wird nur angezeigt, wenn Export erlaubt ist
Eingabe-Felder
Benutzer
Auswahl des Benutzers oder der Benutzer-Gruppe.
Der Benutzer bzw. die Benutzer-Gruppe muss in directweb/WOPiXX angelegt sein.

Alle Rechte Gibt an, ob der Benutzer alle Rechte zum Verwalten der Abfrage und zum Ändern der
Daten hat.
Die Auswahlen Abfrage verwalten und Daten verwalten werden nur dann zur Auswahl
angezeigt, wenn der Benutzer nicht alle Rechte hat.

Abfrage verwalten
Sofern der Benutzer/die Gruppe nicht alle Rechte hat, können für die Verwaltung der
Abfrage die folgenden Berechtigungen vergeben werden.

Verwenden
Gibt an, ob der Benutzer die Abfrage verwenden
kann

Ändern
Gibt an, ob der Benutzer die Abfrage ändern kann

Daten verwalten
Sofern der Benutzer/die Gruppe nicht alle Rechte hat, können für die Verwaltung der
Daten die folgenden Berechtigungen vergeben werden.

Daten anzeigen

Daten ändern

Daten löschen
7.10.6.2 SQL-Abfragen Berechtigungen anzeigen/ändern
Über Kontext-Menü-Auswahl in List-Anzeige SQL-Abfrage Berechtigungen können die erfassten Berechtigungen der einzelnen Benutzer/-Gruppen angezeigt (Eigenschaften) oder bearbeitet werden (Ändern).
B EN UT ZERHA ND BUC H 351
Abbildung 109: Anzeigen/Ändern SQL-Abfragen
Berechtigungen
7.10.6.3 SQL-Abfragen Berechtigungen löschen
Das Löschen von Berechtigungen für SQL-Abfragen erfolgt über Kontext-Menü-Auswahl in List-Anzeige
SQL-Abfragen Berechtigungen.
Die Berechtigungen für das Benutzer-Profil QSECOFR und *PUBLIC(Jeder) können nicht gelöscht werden.
Das Löschen muss bestätigt oder abgebrochen werden.
B EN UT ZERHA ND BUC H 352
Abbildung 110: SQL-Abfragen - Berechtigungen löschen
7.11 SQL-Abfragen umbenennen
SQL-Abfragen können umbenannt werden. Es ist jedoch zu berücksichtigen, dass der innerhalb der
Anwendung eindeutige Name der SQL-Abfrage in den Programmen hinterlegt wird, um die SQLAbfrage zur Laufzeit zu finden und aufzurufen.
Anmerkung:
Beim Umbenennen einer SQL-Abfrage werden zwar alle abhängigen Datensätze (Spalten, Berechtigungen) auf den neuen Namen umgeswitcht,
der Quell-Code von WOPiXX-Programmen kann jedoch nicht angepasst
werden.
Eine SQL-Abfrage kann unter Anwendung  Kontext-Menü-Auswahl SQL Abfragen  Kontext-MenüAuswahl Abfrage umbenennen umbenannt werden.
Sofern bereits eine Abfrage mit dem neuen Namen existiert wird eine Fehlermeldung ausgegeben, d.h.
eine vorhandene Abfrage kann nicht versehentlich überschrieben werden.
Die folgende Abbildung zeigt die Eingabe-Maske
B EN UT ZERHA ND BUC H 353
Abbildung 111: SQL-Abfrage umbenennen
Eingabe-Felder

Von SQL Abfrage

Anwendung


Name der Abfrage
Nach SQL-Abfrage

Anwendung

Name der Abfrage
Anwendung, aus der die Abfrage umbenannt werden
soll.
Die Anwendung ist fix vorgegeben und kann nicht geändert werden
Abfrage, die umbenannt werden soll
Anwendung, in die die Abfrage umbenannt werden
Soll.
Die Anwendung ist fix vorgegeben und kann nicht geändert werden.
Der neue Name der Abfrage
7.12 SQL-Abfragen übernehmen (kopieren)
Die Auswahl SQL Abfragen übernehmen kann an mehreren Stellen aufgerufen werden:



WOPiXX  Anwendung  Kontext-Menü: SQL Abfrage übernehmen
WOPiXX  Anwendung  Kontext-Menü: SQL Abfragen  Kontext-Menü: SQL Abfrage übernehmen
WOPiXX  Einstellungen  Abfrage verwalten  Kontext-Menü: SQL Abfrage übernehmen
Über die Auswahl SQL Abfrage übernehmen kann wahlweise eine einzelne Abfrage oder alle Abfragen
von einer Anwendung in eine andere kopiert werden.
Des Weiteren ist es möglich eine Abfrage innerhalb der Anwendung auf einem neuen Namen zu kopieren.
B EN UT ZERHA ND BUC H 354
Vorhandene SQL Abfragen werden nur überschrieben, wenn Ersetzten Ja/Nein explizit angegeben wurde.
Anmerkung:
SQL-Abfragen in der dirweb/WOPiXX-Anwendung dürfen/können nicht
überschrieben werden!
Bei der Übernahme werden sowohl die SQL Query-Header-Informationen als auch die SpaltenInformationen und die Berechtigungen kopiert.
Abbildung 112: SQL-Abfragen übernehmen

Ein-/Ausgabe-Felder
Von SQL-Abfrage Anwendung
Anwendung aus der die gewünschte SQL-Abfrage oder alle SQL-Abfragen kopiert
werden sollen.
Matchcode-Auswahl erfolgt über die SQL-Abfragen DWAPP

Nach SQL-Abfrage Anwendung
.Anwendung in die die SQL-Abfrage oder alle SQL-Abfragen übernommen werden sollen.
Sofern einzelne SQL-Abfragen kopiert werden sollen, kann die Kopie innerhalb der
gleichen Anwendung erzeugt werden. In diesem Fall muss für die neue SQL-Abfrage
ein abweichender Name angegeben werden.
Matchcode-Auswahl erfolgt über die SQL-Abfragen DWAPP

Von SQL-Abfrage - Name der Abfrage
SQL-Abfrage in der ausgewählten Anwendung, die kopiert werden soll.
B EN UT ZERHA ND BUC H 355
Sonderwert *ALL für alle Anwendungen ist zulässig
Matchcode-Auswahl erfolgt über die SQL-Abfrage DWSQLQRY

Nach Parameter-Gruppe Name der Abfrage
Name der neuen SQL-Abfrage
Sonderwert *ALL für alle Anwendungen ist zulässig
Beim Kopieren in eine andere Anwendung kann der für die kopierte SQL-Abfrage der
gleiche Name den auch die Original-SQL-Abfrage hatte verwendet werden.
Matchcode-Auswahl erfolgt über die SQL-Abfrage DWSQLQRY.

Ersetzen Ja/Nein
Vorhandene SQL-Abfragen werden nur ersetzt, wenn Ersetzen explizit angegeben
wurde.
Anmerkung:
SQL-Abfragen in den WOPiXX-Anwendungen werden auch dann
nicht überschrieben, wenn explizit Ersetzen angegeben wurde.
Stattdessen wird eine entsprechende Fehlermeldung ausgegeben.
7.13 Parameter/Combo-Boxen
Directweb und WOPiXX stellen eine Reihe von vordefinierten Combo-Boxen (z.T. auch Parameter genannt) zur Verfügung.
Diese Combo-Boxen können über das Schlüssel-Wort CTL(Parameter) im Parameter Option in allen
WOPiXX-Funktionen über die Filter-Felder (Work Table), Spalten (Work Table) oder Ein-/Ausgabe-Felder
(Change Table) definiert werden eingebunden werden.
Die von Toolmaker zur Verfügung gestellten Combo-Boxen können in die kundenindividuellen Anwendungen kopiert und dort verändert werden.
Es ist auch möglich für die kundenindividuellen Anwendungen beliebige eigene Combo-Boxen zu definieren und in die kundenindividuellen WOPiXX-Programme zu integrieren.
Bei der Aufbereitung der Web-Oberfläche wird der Parameter/die Combo-Box zunächst in der individuellen Umgebung gesucht. Sofern die Combo-Box in der individuellen Anwendung gefunden wird, wird
diese verwendet. Wurde die Combo-Box nicht in der individuellen Umgebung gefunden, wird geprüft ob
sich in der WOPiXX oder Directweb-Umgebung eine entsprechende Combo-Box definiert wurde.
B EN UT ZERHA ND BUC H 356
7.13.1 Vorhandene Comboboxen/Parameter
Von Toolmaker werden z.Zt. die folgenden Comboboxen/Parameter zur Verfügung gestellt, die kopiert
und/oder in WOPiXX-Anwendungen eingebunden werden können.
Parameter / Comboboxen
Parameter /
Anwendung
Combobox
DIRWEB
ADJUST
DIRWEB
CALC
Bezeichnung
Ausrichtung
Berechnung
Alphanumerische
Aufbereitung
Character Set Id
Datei-Typen
ComboboxAufbereitung
Vergleichsoperatoren
Länder
Telefon-Art
Datums-Formate
Datums-Trennzeichen
Beschreibung
Rechtsbündig, linksbündig, zentriert
Mathematische Operatoren und arithmetische Funktionen
Großschrift (Upper Case), Kleinschrift (Lower Case) und
Groß/Kleinschreibung (Mixed Case)
z.B. 273, 1151, 37, 65535
z.B. PDF, HTML, GIF, JPG, TXT
DIRWEB
CASE
DIRWEB
DIRWEB
CCSID
CNTTYP
DIRWEB
COMBOBOX
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
COMPARE
COUNTRY
CTI
DATFMT
DATSEP
DSPOPT
EMLADRTYP
EMLSYS
FLDTYP
FLDTYPDDS
FLDTYPSQL
GRPMBRTYP
JDBCDRV
LANGUAGE
MAILPTY
OBJTYP
DIRWEB
PRISEC
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
DIRWEB
ROLMBRTYP
SEARCH
SMSMODE
SMSPROV
SMSTYP
TIMEZONE
TIMSEP
USRCLASS
eMail Adress-Typ
eMail System
Datentypen
Datentypen - DDS
Datentypen - SQL
Benutzer-Profil-Typ
JDBC Driver
Sprache
eMail Priorität
Objekt-Art
Priorität
Rollenmanagement
Rollenmitglieder-Typ
Art der Suche
SMS Modus
SMS Provider
SMS Type
Zeitzone
Zeit-Trennzeichen
Benutzer-Klasse
DIRWEB
WXPGMLNK
Wopix-Menüverwaltung z.B. Programm, (Unter-)Menü
Keine, Reguläre, Autocomplete Combobox
Vergleichsoperatoren in CL-Schreibweise (z.B. EQ, LT, GE)
z.B. *DIRECTDIAL, *SKYPE, *TAPI
z.B. *YMD, *DMY, *MDY, *SYSVAL
z.B. . / z.B. *PHONE, *EMAIL, *WWW
z.B. To (T), CC (C), BCC (B), From (F)
z.B. *SMTP, *DIRMAIL
z.B. A (alphanumerisch), S (gezont), P (gepackt), T (Zeit)
z.B. CHAR, DECIMAL, SMALLINT, DATE, TIME
Gruppenprofil, User oder Rolle
für Mehrsprachigkeit (z.B. DEU, ENG, FRA)
z.B. Normal, High, Low
z.B. *FILE, *PGM, *OUTQ
z.B. Role, Primary, Secondary
z.B. User, Role
z.B. Exact Match, Scan, Matchcode
z.B. Send, Receive, Send & Receive
z.B. Received SMS, Sent SMS
z.B. . :
z.B. User, Operator, Administrator, Group
Tabelle 5: Übersicht Comboboxen/Parameter
7.13.2 List-Anzeige
Parameter / Comboboxen verwalten
Die List-Anzeige der Parameter/Comboboxen erfolgt über die Menü-Auswahl Parameter verwalten.
Die List-Anzeige kann außerdem aus der List-Anzeige Anwendungen (7.1.1 Anwendungen List) über
Kontext-Menü-Auswahl Parameter aufgerufen werden.
B EN UT ZERHA ND BUC H 357
Abbildung 113: List-Anzeige Parameter/Comboboxen

Filter
Anwendung
Durch Auswahl der Anwendung können die für eine Anwendung definierten Parameter/Comboboxen selektiert werden


Spalten
Anwendung
Parameter-Gruppe
Eindeutige Kennung des Parameters/Combobox
Buttons

Erstellen
Erstellen einer neuen Parameter-Gruppe/Combobox oder einer neuen Ausprägung innerhalb einer Combobox
Kontext-Menü
Parameter-Detail
Auflistung der einzelnen Ausprägungen

Parameter übernehmen
Combobox(en)/Parameter aus anderen Anwendungen übernehmen

Löschen
Parameter-Gruppe für Anwendung löschen

Herunterladen