Webgate400_Converter_Tutorial_ITA

Transcript

Webgate400_Converter_Tutorial_ITA
COMPILATORE WEBGATE
Manuale di programmazione
COMPILATORE WEBGATE – Manuale di programmazione
INDICE
PREFAZIONE .................................................................................................................. 6
1
INTERPRETAZIONE DEL DISPLAY F ILE ...................................................................... 7
1.1
Come agire inizialmente.......................................................................................................................... 7
1.2
Limitazioni e note .................................................................................................................................. 7
1.3
Keyword supportate ............................................................................................................................... 8
1.4
Interpretazione delle costanti descriventi i tasti funzionali ............................................................................. 9
1.5
Interpretazione di Attributi di visualizzazione dei campo (DSPATR e COLOR). ................................................. 10
1.5.1
Color Attributes.............................................................................................................................. 10
1.5.2
Display Attributes ........................................................................................................................... 10
2
ELEMENTI GRAF IC I NATIVI IBM ............................................................................. 11
2.1
Radio-Button....................................................................................................................................... 11
2.2
Check-Box .......................................................................................................................................... 12
2.3
Text-Box ............................................................................................................................................ 12
2.4
Push-Button........................................................................................................................................ 13
2.5
Wdwtitle ............................................................................................................................................ 14
3
ELEMENTI GRAF IC I SPEC IF IC I DI WEBGATE ........................................................... 15
3.1
Riferimento MsgId per text lunghe .......................................................................................................... 16
3.2
Ignora campo in grafica ........................................................................................................................ 16
3.3
Nasconde campo in grafica .................................................................................................................... 16
3.4
Impostazioni Layout............................................................................................................................. 16
3.5
Ignora impostazioni Layout per progetto .................................................................................................. 16
3.6
Tasto funzionale variabile ...................................................................................................................... 16
3.7
Copyright ........................................................................................................................................... 17
3.8
Visualizza in grafica campo hidden .......................................................................................................... 17
3.9
Imposta scambio tastiera ...................................................................................................................... 17
3.10
Web Browser ...................................................................................................................................... 17
3.11
Espansione orizzontale e verticale di un frame .......................................................................................... 18
3.12
Valorizzazione campi hidden tramite MSGID ............................................................................................. 18
3.13
Valorizzazione campi hidden tramite MSGCON .......................................................................................... 18
3.14
Valorizzazione campi hidden tramite DEFAULT .......................................................................................... 18
3.15
Intestazione di subfile........................................................................................................................... 18
3.15.1
Intestazioni con riferimento a un campo presente in un altro formato ...................................................... 18
3.15.2
Intestazioni condivise (//)................................................................................................................ 18
3.16
Frame................................................................................................................................................ 19
3.17
Allineamento costante o campo di output ................................................................................................. 19
3.18
Modifica occupazione campo a video ....................................................................................................... 19
3.19
HyperLink........................................................................................................................................... 20
3.20
Testo scorrevole .................................................................................................................................. 21
3.21
3.22
Immagini ........................................................................................................................................... 22
Text Icons .......................................................................................................................................... 22
3.23
Extended Icons ................................................................................................................................... 24
3.24
Icone generiche, immagini JPG e SWF ..................................................................................................... 25
3.25
Button Image...................................................................................................................................... 25
3.26
Command Icons .................................................................................................................................. 27
3.27
Messaggi variabili ................................................................................................................................ 27
3.28
Ricerca con tasto destro ........................................................................................................................ 28
3.29
Micro-Grafici contestuali........................................................................................................................ 28
3.29.1
Tipo 0: freccia su una scala a tre colori .............................................................................................. 29
3.29.2
Tipo 1: istogramma a un solo colore .................................................................................................. 29
3.29.3
Tipo 2: istogrammi impilati .............................................................................................................. 29
3.29.4
Tipo 3: stato di avanzamento ........................................................................................................... 29
3.29.5
Tabella colori................................................................................................................................. 29
3.30
LOBS ................................................................................................................................................. 30
3.30.1
Definizione dei campi LOBS .............................................................................................................. 30
Pagina 2 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.30.2
Memorizzazione ............................................................................................................................. 30
3.30.3
Indice .......................................................................................................................................... 31
3.30.4
Salvataggio e ripristino dei lobs ........................................................................................................ 31
3.30.5
API FOR RPG ................................................................................................................................. 31
3.31
Campi SQL ......................................................................................................................................... 32
3.32
Check Box .......................................................................................................................................... 33
3.33
Combo List ......................................................................................................................................... 34
3.33.1
3.33.2
Composizione della text................................................................................................................... 34
Caratteristiche del Campo ................................................................................................................ 35
3.33.3
Valori di ritorno.............................................................................................................................. 35
3.33.4
Parzializzazione dei valori disponibili nella lista. ................................................................................... 36
3.33.5
API complementare creazione lista .................................................................................................... 36
3.34
Date Handler ...................................................................................................................................... 38
3.34.1
Sintassi TEXT senza formattazione dell’output ..................................................................................... 38
3.34.2
Sintassi TEXT con formattazione dell’output ........................................................................................ 38
3.35
Charts ............................................................................................................................................... 39
3.35.1
Informazioni Generali...................................................................................................................... 39
3.35.2
Sintassi ........................................................................................................................................ 39
3.35.3
API Coinvolte................................................................................................................................. 40
3.35.4
Gestione semplificata C HARTS .......................................................................................................... 40
3.36
Font .................................................................................................................................................. 41
3.37
Drag &Drop ........................................................................................................................................ 41
3.38
Campi a valorizzazione remota ............................................................................................................... 42
3.39
Extended Button.................................................................................................................................. 43
3.40
File Manager e File Chooser ................................................................................................................... 44
3.40.1
3.41
3.41.1
Programma di generazione .............................................................................................................. 48
3.41.2
Api WGUITC .................................................................................................................................. 51
3.42
4
Riepilogo TEXT .................................................................................................................................... 52
ATTRIBUTI DI FORMATO ........................................................................................ 54
4.1
Informazioni Generali ........................................................................................................................... 54
4.2
Riepilogo FMTATR ................................................................................................................................ 55
5
GESTIONE SUBF ILE ................................................................................................ 57
5.1
Riconoscimento subfile ......................................................................................................................... 57
5.1.1
5.1.2
Riconoscimento delle intestazioni colonna ........................................................................................... 57
Riconoscimento delle opzioni ............................................................................................................ 57
5.2
Ottimizzazione dello spazio nelle righe orizzontali ...................................................................................... 57
5.3
Paginazione ........................................................................................................................................ 58
5.4
Espansione subfile nelle windows............................................................................................................ 58
5.5
Posizionamento ................................................................................................................................... 59
5.5.1
Comportamenti in base ai parametri .................................................................................................. 59
5.5.2
Forzatura a programma ................................................................................................................... 59
5.5.3
6
Sintassi ........................................................................................................................................ 44
Menu a piastrelle ................................................................................................................................. 47
Limitazioni .................................................................................................................................... 59
5.6
Videate con due subfile ......................................................................................................................... 59
5.7
Gerarchizzazioni da programma ............................................................................................................. 59
5.7.1
Visualizzazione Gerarchica DINAMICA ................................................................................................ 59
5.7.2
Visualizzazione Gerarchica STATICA................................................................................................... 60
5.7.3
5.7.4
Viste gerarchiche con salvataggio dello stato di apertura e/o collassamento dei singoli nodi......................... 60
Casi pratici di utilizzo ...................................................................................................................... 60
PERSONALIZZAZIONE SUBF ILE E SQL..................................................................... 64
6.1.1
1 Funzione Grafici in TAB ................................................................................................................. 64
6.1.2
Funzione UPDATE........................................................................................................................... 66
6.1.3
3 Funzione gerarchizzazione............................................................................................................. 67
6.1.4
4 Funzioni di riepilogo ..................................................................................................................... 67
6.1.5
5 Funzioni di grafico sui riepiloghi...................................................................................................... 68
Pagina 3 di 108
COMPILATORE WEBGATE – Manuale di programmazione
6.1.6
7
Riepilogo Format Attribute applicabili a griglia ed SQL e grafici ............................................................... 71
CONF IGURAZIONE PROGRAMMI ............................................................................. 72
7.1
Variabile ambientale............................................................................................................................. 72
7.1.1
Dichiarazione in RPG3 ..................................................................................................................... 72
7.1.2
Dichiarazione in RPG4 ..................................................................................................................... 72
7.2
Keyword ROLLUP e ROLLDOWN.............................................................................................................. 72
7.3
Interpretazione struttura dati INFDS ....................................................................................................... 73
7.4
Interpretazione video in SHARE .............................................................................................................. 73
8
SERVIZI APPLICATIVI ........................................................................................... 74
8.1
Command Service................................................................................................................................ 74
8.1.1
Standard e Custom......................................................................................................................... 74
8.1.2
8.2
Command Icon .............................................................................................................................. 74
Script e WGEXEIOUT ............................................................................................................................ 75
8.2.1
8.3
9
Gestire un oggetto output di un comando ........................................................................................... 75
Supporto esecuzione programmi PC ........................................................................................................ 75
MENU .................................................................................................................... 77
9.1
Comando di conversione o d’integrazione ........ Errore. Il segnalibro non è definito.Errore. Il segnalibro non è
definito.
9.2
Il Dbmenu .......................................................................................................................................... 77
9.2.1
Struttura del database .................................................................................................................... 77
9.3
Setting globale .................................................................................................................................... 80
9.4
Reperimento menu da WEBGATE ............................................................................................................ 80
9.4.1
Reperimento menu unico ................................................................................................................. 80
9.4.2
Reperimento menu al cambio del sistema informativo ........................................................................... 81
9.4.3
Menu da visualizzare al Logon .......................................................................................................... 81
9.4.4
Api per scrivere/leggere i parametri ambientali .................................................................................... 81
10
GESTIONE MESSAGGI .......................................................................................... 82
10.1
Messaggi tra utenti .............................................................................................................................. 82
10.2
Messaggi a programma ......................................................................................................................... 84
10.3
11
Emulazione SNDBRKMSG e SNDUSRMSG ................................................................................................. 84
GESTIONE COMPANY ........................................................................................... 85
11.1
Premessa ........................................................................................................................................... 85
11.2
File.................................................................................................................................................... 85
11.2.1
WGCOMP ...................................................................................................................................... 85
11.2.2
WGCOMPT .................................................................................................................................... 85
12
HELP APPLICAZIONE ........................................................................................... 86
12.1
Generalità .......................................................................................................................................... 86
12.2
Punti di Ancoraggio Help ....................................................................................................................... 86
12.3
Informazioni Tecniche........................................................................................................................... 86
12.3.1
Struttura Directory salvataggio documenti .......................................................................................... 86
12.3.2
Templates ..................................................................................................................................... 86
12.3.3
Archivi coinvolti ............................................................................................................................. 87
12.4
Gestione Pannelli Help .......................................................................................................................... 87
12.5
Migrazione Help esistenti....................................................................................................................... 88
12.5.1
Funzionamento .............................................................................................................................. 88
12.5.2
Riesecuzione della migrazione .......................................................................................................... 88
12.5.3
API WEBGATE400/WGFHLP01........................................................................................................... 88
12.5.4
Esempio di file HTML: (sorgente in WEBGATE400/WGSAMPLES/WGHLPHTML) ........................................... 91
13
UTILITA’ ............................................................................................................. 92
13.1
Estrazione e ripristino di uno o più file video: comando WGDSPSND.............................................................. 92
13.2
Comando di salvataggio e ripristino customizzazioni................................................................................... 93
13.3
Eliminazione specifiche grafiche di un display -file ...................................................................................... 94
13.4
Debug di un programma compilato in modalità Webgate............................................................................. 94
14
VERSIONI WEBGATE (RXXXX) .............................................................................. 96
15
GLOBALIZZARE LE APPLIC AZIONI CON WEBGATE400 ........................................... 97
Pagina 4 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15.1
Prefazione .......................................................................................................................................... 97
15.2
Definizioni .......................................................................................................................................... 97
15.2.1
Globalizzazione/Localizzazione .......................................................................................................... 97
15.2.2
Glyphs e caratteri (characters) ......................................................................................................... 97
15.2.3
Script........................................................................................................................................... 97
15.2.4
Set di caratteri (Character set) ......................................................................................................... 97
15.2.5
SBCS / DBCS / MBCS...................................................................................................................... 97
15.2.6
15.2.7
Code Page .................................................................................................................................... 97
Sistema di codifica dei dati (Character Encoding) ................................................................................. 98
15.2.8
Unicode ........................................................................................................................................ 99
15.2.9
Universal C haracter Set (UCS)......................................................................................................... 100
15.2.10
Unicode Transformation Format (UTF) ............................................................................................ 100
15.2.11
UTF-EBCDIC .............................................................................................................................. 101
15.3
La strategia ....................................................................................................................................... 102
15.3.1
Approccio globale .......................................................................................................................... 102
15.3.2
Considerazioni sui dati ................................................................................................................... 102
15.4
Tattiche di Data Managment ................................................................................................................. 102
15.5
Progetti Pilota .................................................................................................................................... 102
15.6
La globalizzazione e l’iSeries ................................................................................................................. 103
15.7
Definizione di campi Unicode in Webgate400 ........................................................................................... 103
15.7.1
Assegnazione di un CCSID tramite keyword TEXT ............................................................................... 103
15.7.2
CCSID Variabile ............................................................................................................................ 103
16 ............................................................................................................................. 105
17
Tabs Control...................................................................................................... 105
17.1
Modifiche al display file ........................................................................................................................ 105
17.1.1
Overlay ....................................................................................................................................... 105
17.1.2
Definizione del formato di controllo................................................................................................... 105
17.1.3
Definizione campi nel formato di controllo.......................................................................................... 106
17.2
Modifiche al programma....................................................................................................................... 107
17.3
Posizionamento del cursore .................................................................................................................. 108
Pagina 5 di 108
COMPILATORE WEBGATE – Manuale di programmazione
PREFAZIONE
L’applicazione Webgate400 è sviluppata come “SISTEMA PER LO SVILUPPO DELLA INTERFACCIA GRAFICA” .
Il compilatore Webgate (che di fatto si comporta come un ”pre-compilatore”) è uno strumento che consente di sfruttare
anche sui vecchi programmi le nuove funzionalità di base. L’obiettivo del prodotto non è quindi quello di eseguire una banale
conversione fine a se stessa, ma di rendere disponibili molte funzionalità grafiche adatte ad affrontare il mercato e le esigenze
degli utenti negli anni a venire.
Nonostante alla data il compilatore Webgate abbia affrontato con successo centinaia di applicazioni diverse, scritte da diversi
programmatori, riteniamo di aver implementato solo l’80% delle tecniche possibili per gestire un file video. Per il restante
20%, è necessaria un’attenta valutazione in merito all’opportunità di riprodurre tecniche attualmente non gestite, che
potrebbero però costituire un ostacolo al completo utilizzo delle funzionalità disponibili.
In sostanza, se si vogliono sfruttare tutte le potenzialità di Webgate400, è necessario ricondurre i sorgenti di display file e
RPG in questa situazione:

I display file devono essere definiti esternamente.

La paginazione dei subfile (lette e visualizzate n righe invece del completo riempimento dello stesso prima della
emissione). Dove fosse utile, mantenendo questa modalità, si perderebbe (o risulterebbe limitata) la possibilità di
visualizzare grafici, di eseguire ordinamenti, di eseguire gerarchizzazioni e raggruppamenti.
Pagina 6 di 108
COMPILATORE WEBGATE – Manuale di programmazione
1 INTERPRETAZIONE DEL DISPLAY FILE
1.1 Come agire inizialmente.
In generale, possono essere evitate modifiche al codice preesistente. Tuttavia, si possono ottenere risultati decisivi dal punto
di vista estetico e funzionale con poco sforzo in modo da sostenere con successo il confronto con applicazioni PC e indurre i
vecchi utenti all’aggiornamento di sistema e software. Il miglior rapporto costi/benefici lo si ottiene, per e sempio,
aggiungendo i Frames alle videate e, dove queste sono particolarmente “piene”, portandole a 132 colonne.
Opzionalmente, dove sono presenti i subfile, si può valutare l’implementazione delle funzioni di Gerarchizzazione Statica e
Dinamica.
A livello di programmi RPG, in genere non sono richiesti interventi.
1.2 Limitazioni e note

L’operazione READC viene emulata correttamente; se in un programma fosse necessario eseguire più cicli di READC
sullo stesso subfile, tali operazioni devono essere eseguite su tutte le righe di subfile.

La keyword DSPMOD definita a livello di formato in un video non è supportata in quanto non è possibile gestire in
modo dinamico l’occupazione di un formato: se è specificata questa keyword, nelle dimensioni dei formati video
viene forzato il valore 27x132.

La keyword CHECK (= opzione di immissione abbinata a un campo a video) è gestita esclusivamente per i valori:
ER, RB, RZ, LC. E’ inoltre gestita la keyword CHECK(AB) (=spazi consentiti) abbinata ad un subfile

La keyword IGNORE, se abbinata ad un subfile, va abbinata anche al rispettivo subfile -control e viceversa.

Non è possibile codificare, all’interno dello stesso video, windows che abbiano la stessa posizione e la stessa
dimensione.

Il compilatore Webgate crea automaticamente una serie di variabili internamente al sorgente RPG: per evitare
problemi in fase di conversione è necessario non utilizzare variabili che iniziano con ‘WA’, ‘WB’, ‘WC ’, ‘WE’, ‘WF’,
‘WG’, ‘WL’, 'WP', 'WL', ‘WQ’, 'WR', ‘WS’, 'WT', ‘WW’.

Esistono alcune limitazioni sui nomi delle variabili a video o interne al programma da compilare in ambiente Webgate
e dei formati nei video: non possono essere utilizzati i seguenti nomi: KIDX, K18P18WG, K18toFMT, K18WG, P18WG,
DSPFNWG, FMTNWG, KTYPEWG, SFLRRNWG, DATAXH, FMTTYPE, wWIN, RECA, CSFL, FMTIND99, SFLPAG,
SFLTOPRR, SFLLSTRR, SFLEOF, Q512, Q58, QMSG, Q59to382, Qw, Qwtop, Qwleft, Qwheight, Qwweigth, QdspfLIB,
QthisPgm, Qerrmsg, QcsrFmt, QcsrFld, QcsrPosF, QcsrLin, QcsrCol, QcsrLinW, QcsrColW, QcsrSFLr, Qdummy, IND24 ,
IND99, FMTCYCL, wgs*, win*, FMTFLDSZ, I, F, readcRRN, SFLNXTin, memIND, dspfLIB, memCOD, memWGfmt,
IND24DS, IND99DS, MSGID7, MSGLIB, MSGFIL, MSGDTA, MSGTXT, MSGFLD, A1, A13, i8, memKIDX, memH,
memRRN, B0, B1, B2, B3, B4, B5, B6, B7, IDXAPI, IDXREADC, INACTION, LICRR, RCVMSG, ADDMSG, ADDMSGID,
RTVMSGID, ENDJOB, RUNFMT, SEXEC, DATAXD, dSFLC, dSFLEOF, dFMTIND9, dFMTFLD, RRN, $ARR, $ARR3, $SPEC,
$SPEC2, $COMMENT, $SPACE, $DSPF, $Fdesc, $Dname, $Dfrom, $DfromN, $Dto, $DtoN, $Dtype, $Ifmt, $INFDSn,
$INFDSds, $Ifrom, $Ifrom29, $Ifrom30, $Ito, $Ito36, $Ito37, $Itype, $Idec, $IBLANK1, $InputP, $IfmtInd, $IfldExt,
$IBLANK2, $IBLANK3, $IfldInt, $Ifldind, $WORKSTN, $Fkwords, $IN01, $condition, $condOR, $LINE, $F1, $CODE,
$F2, $RESULT, $HI, $LO, $EQ, memSRCDTA, mIfldExt, mIfldInt, mF1, WDTA, $WBEF, $WSPEC , $WCOM,
$WcondOR, $Wconditio, $Wproc, $NAME, $WIN01, $WLINE, $WF1, $TYPE, $WCODE, $LENGH, $WF2, $WF2L,
$WTYP, $DECIM, $WINZ, $WRESULT, $WLEN, $WDEC , $WHIloEQ, $WHI, $WLO, $WEQ, $WCOMM, TWINX,
WINspec, WGWLINP, WGWCOLP, WGWLIN, WGWCOL, $$HLE, $$HI, $$LO, $$EQ, SCRn, SCRa, WGWn, WGWa,
WGBUFFa, WGBUFF, WGTOa, WGTO, WGFLDB, WGFLDBa, WGFLDP, WGFLDPa, WGSFLP, WGSFLPa, K2a, K2,
WGDSmax, WGDSmaxa, T24, T24p, T24A, T300, T100, TIND, T405, TDSP, TDSPl, TDSPu, TDSPi, TDSPp, TDSPpr ,
TfDSP, TfDSPl, TfDSPu, TfDSPi, TfFMT, TfFMTr, TfFMTs, TfFMTi, TfFMTw, TfFMTa, TfPAGv, TfPAGa, TfTYP, TfSFLr,
TfWIN, TfWspe, TfVLDK, Tffir, Tflas, TsflE, TfSHAR, TfRRN, TfRRC, TfPAG, TfTOP, TfTOPW, TfLST, TfEOF,
TdspfINDDS, NOTE, TF, TDUI, TDQ, TDM, TP, TC, TCX, TbSND, TSND, TRCV, TaRCV, RMVB, CLRK24, TSNDm,
TEXFR, TRUNF, TINDDS, TZIPI, TCXC, TGETLB, TSHARE, TRMVC, TLST, TCP, TINK24, TDFTa, TDFTn, LC, UC,
bnumeric.

Negli array a tempo di compilazione è meglio evitare stringhe con i caratteri “H”, “F”, “D”, “I”, “C”, “O” (anche
minuscoli) in posizione 6, perché, in alcuni casi particolari, in fase di conversione vengono confusi con i caratteri di
definizione della specifica.
Pagina 7 di 108
COMPILATORE WEBGATE – Manuale di programmazione
1.3 Keyword supportate
Di seguito presentiamo l’elenco delle parole chiave che vengono emulate da Webgate400:
CAnn
REF
C Fnn
REFFLD
CHANGE
ROLLDOWN
CHCCTL
ROLLUP
CHECK
RTNCSRLOC
CHIOC E
SETOF
CLRL
SETOFF
CMP
SFL
CNTFLD
SFLC LR
COLOR
SFLCSRRRN
COMP
SFLCTL
CSRLOC
SFLDSP
DATE
SFLDSPCTL
DFT
SFLEND
DFTVAL
SFLINZ
DSPATR
SFLLIN
DSPSIZ
SFLMSG
EDTCDE
SFLMSGID
EDTWRD
SFLNXTC HG
ERRMSG
SFLPAG
ERRMSGID
SFLRCDNBR
ERRSFL
SFLSIZ
INDARA
SLNO
MLTC HC FLD
SNGCHC FLD
MSGCON
SYSNAME
MSGID
TIME
OVERLAY
USER
PAGEDOWN
VALUES
PAGEUP
VLDC MDKEY
PROTECT
WINDOW
RANGE
WDWTITLE
Pagina 8 di 108
COMPILATORE WEBGATE – Manuale di programmazione
1.4 Interpretazione de lle costanti descriventi i tasti funzionali
Le costanti che descrivono i tasti funzionali vengono interpretate in base alla configurazione layout eseguita a livello di
progetto, distintamente per formati “full screen” e “window”:

Si può specificare il numero di righe, partendo dal basso, destinate a contenere tali costanti.

Si specificano i caratteri iniziali, per esempio F03 o CMD03, etc.

Se si trovano tutte nella stessa stringa, devono essere separate da due spazi vuoti; se ogni costante è in una stringa
singola, basta un carattere di separazione.

E’ possibile interpretare come tasti funzionali anche dei campi hidden o di solo output in cui a programma viene
impostato il valore: è necessario che a video abbiano la TEXT <w>*fkeyvar</w> e possono essere situ ate in un
punto qualunque del video.

E’ possibile abbinare a un formato la TEXT <w>*nofkey</w> che permette di ignorare le condizioni poste a livello di
progetto sull’interpretazione delle righe in basso di tale formato.
Pagina 9 di 108
COMPILATORE WEBGATE – Manuale di programmazione
1.5 Interpretazione di Attributi di visualizzazione dei campo (DSPATR e
COLOR).
I Color Attributes, se attivi, comandano sugli altri attributi grafici, altrimenti contano i Display Attributes.
1.5.1 Color Attributes
Attributo
RI
Color Attribute
OFF
BLUE
OFF
GREEN
Testo
Sfondo
Colore testo RGB(0, 0, 255)
Nessuno
Colore testo RGB(51, 149, 53)
Nessuno
OFF
RED
Colore testo RGB(0, 0, 255)
Nessuno
OFF
PINK
Colore testo RGB(255, 0, 255)
Nessuno
OFF
YELLOW
Colore testo RGB(252, 128, 3)
Nessuno
OFF
TURQUISE
Colore testo RGB(3, 188, 250)
Nessuno
Colore testo RGB(0, 0, 255)
Colore sfondo RGB(221, 221, 255)
Colore testo RGB(51, 149, 53)
Colore sfondo RGB(221, 255, 221)
ON
BLUE
ON
GREEN
ON
RED
Colore testo RGB(0, 0, 255)
Colore sfondo RGB(255, 207, 159)
ON
PINK
Colore testo RGB(255, 0, 255)
Colore sfondo RGB(255, 221, 255)
ON
YELLOW
Colore testo RGB(252, 128, 3)
Colore sfondo RGB(255, 255, 221)
ON
TURQUISE
Colore testo RGB(3, 188, 250)
Colore sfondo RGB(222, 254, 253)
1.5.2 Display Attributes
HI
RI
UL
BL
ON
ON
Colore testo
Nessuno
Colore testo
Colore Sfondo
Colore testo
Nessuno
ON
Colore testo
Colore Sfondo
ON
Colore testo
Colore Sfondo
ON
Colore testo
Nessuno
Bianco
Colore Sfondo
ON
Colore testo
NESSUNO
ON
Colore testo
Colore Sfondo
ON
Colore testo
Colore Sfondo
ON
ON
ON
ON
ON
ON
ON
ON
ON
ON
Sfondo
Nessuno
ON
ON
Testo
Colore testo
ON
ON
CS
ON
ON
ON
Colore testo
Colore Sfondo
ON
ON
ON
Colore testo
Colore Sfondo
ON
ON
ON
Bianco
Colore Sfondo
ON
ON
ON
Colore testo
Nessuno
Pagina 10 di 108
ON
COMPILATORE WEBGATE – Manuale di programmazione
2 ELEMENTI GRAFICI NATIVI IBM
Queste keywords, in modalità 5250, sono ottimizzate per l’emulatore IBM C lient-Access. Hanno una struttura comune:

è presente un campo che rappresenta il gestore dei singoli oggetti;

è presente un campo di controllo hidden, collegato a ciascun oggetto (opzionale nel caso dei Radio-Button);

è presente una serie di attributi che accompagnano gestore e controlli e definiscono le proprietà di visualizzazione
degli oggetti.
Link documentazione IBM – DDS reference:
http://publib.boulder.ibm.com/pubs/html/as400/v4r5/ic2924/info/db2/rbafpmst02.htm
Esempio:
CALL WEBGATE400/RADIOC
(da modalità 5250 o grafica)
I sorgenti si trovano in
WEBGATE400/QDDSSRC
RADIOD
WEBGATE400/QRPGLESRC
RADIO
WEBGATE400/QC LSRC
RADIOC
2.1 Radio-Button
E’ un campo che contiene un numero fisso di scelte tra le quali l’utente può selezionarne solo una: si usa quando
si deve impostare una selezione in cui le varie scelte si escludono logicamente a vicenda . Il campo appare a video
come una lista verticale di scelte con un campo di input a sinistra, o come un gruppo di bottoni.
Le keywords obbligatorie e gestite dal compilatore Webgate sono le seguenti:

SNGCHCFLD (Single-Choice Selection Field): è un campo di tipo Y, dimensione 2 con 0 decimali. La sua
posizione identifica la posizione della prima scelta. In input contiene l’indice della scelta effettuata (o 0 se nessuna
scelta è stata eseguita); in output contiene la scelta di default.
I parametri non sono obbligatori: se non sono impostati, le scelte vengono emesse su un’unica colonna. I
parametri gestiti dal compilatore Webgate sono: *NUMC OL, *NUMROW, *GUTTER. Il parametro *NUMC OL
contiene il numero di colonne sulle quali devono essere distribuite le scelte. Deve essere un intero positivo e
deve essere in grado di contenere tutte le scelte.
Per esempio, le scelte:
scelta1
scelta2
scelta3
scelta4
scelta5
scelta6
se indicato *NUMCOL=2, vengono distribuite in questo modo:
scelta1
scelta2
scelta3
scelta4
scelta5
scelta6
Analogamente, il parametro *NUMROW indica il numero di righe in cui vengono visualizzate le scelte. Se indicato
*NUMROW=2, le scelte si sviluppano sulle colonne:
scelta1
scelta3
scelta5
scelta2
scelta4
scelta6
Il parametro *GUTTER indica il numero di spazi vuoti da collocare tra una colonna e l’altra (se è stato specificato il
parametro *NUMCOL) o tra un riga e l’altra (se è stato specificato il parametro *NUMROW). Deve essere alme no un
intero di 2. Se non specificato, viene assunto = 3 spazi.

CHCCTL (Choice Control): si usa in un Selection Field per controllare la validità delle scelte. La sintassi è la
seguente: CHCCTL(nr-scelta &control-field). Il numero scelta è obbligatorio e può assumere un valore da 0 a 99. Il
campo di controllo è obbligatorio e specifica il nome di una variabile (preceduto dal carattere ‘&’) che deve essere
definita nello stesso formato, di tipo Y, lunghezza 1, 0 decimali e uso H (hidden). Di seguito presentiamo i valori del
Control Field e il loro significato:
Pagina 11 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Valore
Significato in Output
Significato in Input
0
Disponibile
Non selezionato
1
Selezionato
Selezionato
2 – 3- 4
Non disponibile (tasto grigio)

CHOICE (Select Field Choice): serve per definire una scelta per il Selection Field. La sintassi è: CHOICE(nr -scelta
testo-scelta). Il simbolo ‘>’ permette di attivare la scelta rapida digitando il tasto Alt insieme alla lettera sottolineata
(la lettera sottolineata è quella immediatamente successiva al simbolo ’>’).
Esempio:
A
A
INT01H
INT02H
1Y 0H
1Y 0H
A
A
A
A
A
A
OPINTV
2Y 0B 13 45SNGCHCFLD
CHCAVAIL((*COLOR BLU))
CHOICE(1 '>> >Sì')
CHCCTL(1 &INT01H)
CHOICE(2 '>> >No')
CHCCTL(2 &INT02H)
2.2 Check-Box
È un campo che contiene un numero fisso di scelte tra le quali l’utente può selezionarne una o più di una . Il campo
appare a video come una lista verticale di scelte con un campo di input a sinistra, o come un gruppo di bottoni.
Le keywords obbligatorie e gestite dal compilatore Webgate sono le seguenti:

MLTCHCFLD (Multiple-Choice Selection Field): è un campo di tipo Y, dimensione 2 con 0 decimali. La sua
posizione identifica la posizione della prima scelta. In input contiene il numero delle scelte effettuate (o 0 se nessuna
scelta è stata eseguita); in output contiene la scelta di default. La definizione e il funzionamento sono analoghi a
quelli del SNGCHC FLD.

CHCCTL (Choice Control) già descritto

CHOICE (select Field Choice) già descritto
Esempio:
A
A
A
A
A
A
OPSELV
2Y 0B
5
4MLTCHCFLD
CHCAVAIL((*COLOR BLU))
CHOICE(1 ‘>Prima Selezione’)
CHCCTL(1 &SEL01H)
CHOICE(2 ‘>Seconda Selezione’)
CHCCTL(2 &SEL02H)
A
A
CHOICE(3 ‘>Terza Selezione’)
CHCCTL(3 &SEL03H)
A
A
CHOICE(4 ‘>Quarta Selezione)
CHCCTL(4 &SEL04H)
2.3 Text-Box
Pagina 12 di 108
COMPILATORE WEBGATE – Manuale di programmazione
È un singolo campo che l’utente vede come una serie di campi nella fase di entrata e di editazione. Il formato del testo è
esteticamente migliore rispetto a un singolo campo che si estende su più righe.
Le parole chiave sono:

CNTFLD (Continued-Entry Field): E’ un campo alfanumerico di dimensione uguale alla lunghe zza totale del testo.
Richiede come parametro obbligatorio il numero di colonne utilizzate che non deve essere superiore alla dimensione
totale del display o della window.

N.B: non può essere utilizzato nei sub-file.
Esempio:
NOTEV
60A
B 17 56CHECK(LC)
CNTFLD(020)
DSPATR(HI)
Il campo NOTEV di 60 caratteri viene emesso a video su tre righe di 20 caratteri ciascuna.
Nota: Webgate400 garantisce che lo spazio occupato a video e il numero di caratteri inputabili coincide con il 5250, mentre
l'allineamento del testo non è garantito.
2.4 Push-Button


Si usa per definire una scelta tramite un bottone o un tasto di comando racchiuso tra “<>”.

Le keywords sono:

PSHBTNFLD (Push Button Field): è un campo contenente un numero fisso di bottoni che l’utente può utilizzare. Deve
essere definito come un campo di tipo Y, dimensione 2 e 0 decimali. Il campo contiene in input il numero della scelta
effettuata, in output non ha nessun valore. I parametri gestiti dal compilatore Webgate sono: *NUMCOL, *NUMROW,
*GUTTER.

PSHBTNCHC (Push Button Choice): descrive una scelta per il Push Button. La sintassi è: PSHBTNC HC(nr -scelta testoscelta).
Esempio:
A
A
A
BUTF01
2Y 0B 22
4PSHBTNFLD((*NUMCOL 2))
CHCAVAIL((*COLOR BLU))
PSHBTNCHC(1 'F3->Uscita')
A
A
PSHBTNCHC(2 'F5->Riprist')
PSHBTNCHC(3 'F6->Noused')
A
PSHBTNCHC(4 'F21->Noused')
NOTA:
La keyword C HCCTL definita a livello di “Radio-Button” e “Check-Box” è utilizzabile anche abbinata ai “Push-Button”.
Per esempio:
Pagina 13 di 108
COMPILATORE WEBGATE – Manuale di programmazione
A
A
XBUTENT
2Y 0B 14
8PSHBTNFLD((*NUMROW 2))
CHCAVAIL((*COLOR RED))
A
A
A
A
A
10
A
A
12
PSHBTNCHC(3 '>Riprova' CF03)
CHCCTL(3 &CTLF3)
A
A
13
PSHBTNCHC(4 '>Esci' CF04)
CHCCTL(4 &CTLF4)
11
PSHBTNCHC(1 '>Ignora e Prosegui' CF01)
CHCCTL(1 &CTLF1)
PSHBTNCHC(2 '>Conferma' CF02)
CHCCTL(2 &CTLF2)
2.5 Wdwtitle
La keyword WDWTITLE permette di visualizzare un testo (costante o variabile) nel bordo della window:
WDWTITLE((*TEXT 'Titolo della
window') *TOP)
WDWTITLE((*TEXT 'F3 Fine')
*BOTTOM)
In 5250, se è specificato il parametro *TOP accanto al testo, il testo viene visualizzato nel bordo superiore della window; se è
specificato *BOTTOM, il testo viene visualizzato nel bordo inferiore della window. In grafica, i testi con specificato *TOP
vengono interpretati come titoli della window e quelli con *BOTTOM vengono interpretati come tasti funzionali e vengono
collocati nell’apposita barra.
N.B: Non vengono interpretati i parametri *LEFT e *RIGHT relativi all’allineamento.
Pagina 14 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3 ELEMENTI GRAFICI SPECIFICI DI WEBGATE
Esistono molti elementi grafici che non sono definiti tramite keywords native IBM, ma sono specifici del compilatore Webgate:
vengono riconosciute specifiche sequenze di caratteri all’interno della stringa di TEXT del campo a video. Il fatto di definire i
campi all’interno della TEXT del campo rende trasparenti tali elementi al video 5250: l’intervento ha influenza solo sulla
videata grafica, mentre l’aspetto del video 5250 resta invariato.
Come supporto alla programmazione, collegandosi a Webgate con il profilo WEBGATECVT, sono disponibili le funzioni “Tutorial
Interattivo” e “Sorgenti Tutorial Interattivo”, che presentano una panoramica delle TEXT esistenti. Tramite queste funzioni è
possibile copiare le varie sintassi ed inserire i propri campi per verificarne la correttezza.
Possiamo definire a livello generale la sintassi che deve essere rispettata perché il compilatore Webgate riconosca le
specifiche.
1.
La stringa di TEXT deve SEMPRE iniziare con i caratteri <w> (o <W>) e finire con </w> (o </W>).
2.
La sigla che identifica il tipo di oggetto (LINK, IMG, SCROLL, …) o è preceduta o dal carattere ‘*’ (per esempio,
*IMG) o si trova tra i caratteri ‘<’ e ‘>’ (per esempio, <IMG>).
3.
In seguito vengono definiti gli attributi che si trovano più frequentemente:
4.
Note:
1.

l: linea (in unità carattere);

c: colonna (in unità carattere);

w: ampiezza (in pixel);

h: altezza (in pixel);

v: valore della variabile a video;

n: numero.
Nel caso in cui la TEXT sia stata aperta con i caratteri < … >, è necessario anche il codice di chiusura della sintassi:
per esempio, </IMG>.
Attenzione alle TEXT che superano i 50 caratteri: la manutenzione del video tramite SDA le tronca.
Quando fosse inevitabile superare i 50 caratteri è possibile utilizzare la text <MT> che permette di specificare il
contenuto della text completa in un MsgId.
2.
Se vengono utilizzati degli elementi grafici in un subfile, normalmente basta specif icarne la colonna. Può essere utile
specificare la riga solo quando, nei subfile multiriga, si vuole che l’elemento grafico venga visualizzato su una riga
diversa dalla prima.
3.
Ove non è necessario, uno dei due parametri tra ampiezza (“w:”) e altezza (“h:”) può essere ignorato:il suo valore
viene automaticamente impostato uguale a quello dell’altro parametro.
Pagina 15 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.1 Riferimento MsgId per text lunghe
É disponibile la text:
<MT>MsgFile/MsgId</MT>
che permette di inserire una text lunga in un msgid.
3.2 Ignora campo in grafica
La text:
*ignore (o *IGNORE)
fa in modo che il campo definito nel formato video venga ignorato a livello di grafica e non appaia sulla videata grafica.
A
DCODAR
13A
O 13 35TEXT('<w>*IGNORE</w>')
3.3 Nasconde campo in grafica
La TEXT
*hide (o *HIDE)
fa in modo che il campo definito nel formato video venga considerato all’interno del programma compilato in modalità
Webgate, ma non venga passato all’Applet, in modo da essere ignorato sulla videata grafica.
Questa text è utile quando nei subfile sono presenti tanti campi hidden che non hanno una valenza in grafica: i dati vengono
memorizzati, ma il CGI non li trasmette alla grafica accelerando notevolmente le operazioni di scrittura e lettura del subfile.
A
DCODAR
13A
O 13 35TEXT('<w>*hide</w>')
3.4 Impostazioni Layout
Esistono una serie di TEXT da abbinare a un campo o ad una costante del display file che permettono di definire tali campi
come titolo, company, status per il formato video.

TITOLO
*title (o *TITLE)

COMPANY
*company (o *COMPANY)

STATUS
*status (o *STATUS)
Per esempio:
A
A
5 18‘Gestione Anagrafica Articoli’
TEXT('<w>*title</w>')
3.5 Ignora impostazioni Layout per progetto
Esistono una serie di TEXT da aggiungere a livello di formato del display file che permettono di ignorare il riconoscimento
automatico del Layout definito nel progetto di conversione del display file.

TITOLO
*notitle (o *NOTITLE)

COMPANY
*nocomp (o *NOCOMP)

STATUS
*nostatus (o *NOSTATUS)

TASTI FUNZIONE
*nofkey (o *NOFKEY)
A
TEXT('<w>*notitle</w>')
Oppure anche concatenate:
A
TEXT('<w>*notitle*nofkey</w>')
3.6 Tasto funzionale variabile
La TEXT
*fkeyvar (o *FKEYVAR)
Pagina 16 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Permette di definire una campo variabile come tasto funzionale.
3.7 Copyright
La TEXT
*cpyright (o *CPYRIGHT)
abbinata a un campo del formato video, ne sposta il contenuto al posto della dicitura ‘Powered by IBM ISeries’ (se questa
dicitura è disabilitata a livello di configurazione runtime).
3.8 Visualizza in grafica campo hidden
La TEXT
<sh>L:Riga C:Colonna E:edtcde</sh>
Serve per visualizzare in grafica un campo che nel 5250 è stato definito come hidden.
Dove

L: è il numero della riga dove verrà visualizzato il campo

C: è il numero della colonna

E: è il codice di editazione (solo se il campo è numerico)
Sarà possibile aggiungere questa text solo a campi di subfile.
La text può essere abbinata alla keyword<h> per impostare una intestazione del campo a subfile: <H> </H> <SH> </SH>.
Annotazioni
Impostare la colonna esatta in modo da evitare sovrapposizioni.
Se il subfile è su più righe, è necessario impostare anche la riga.
Esempio:
<H>Header</H><SH>C:3 E:2</SH>
3.9 Imposta scambio tastiera
La text:
<KS>M</KS>
Permette di ridefinire in grafica l’attributo di „scambio tastiera” (keyboard shift) del campo a video.
3.10
Web Browser
Web Browser: abbinata a un campo (hidden o visualizzato), permette di visualizzare una pagina html il cui valo re viene
impostato a programma o tramite MSGID.
<W>*WB L:07 C:30 W:120 H:30 </W>
oppure
<W>*WB HIWEBB </W>
Quando la text è abbinata a un campo non hidden mantiene le sue posizioni e quindi non è necessario specificare i parametri
“l:” e “c:”.
Aggiungendo dopo il valore dell’altezza (h) e dell’ampiezza (w) il carattere “E” si demanda all’applet l’ottimizzazione del
campo in base allo schermo corrente.
Il riferimento a un campo hidden all’interno della text (seconda sintassi) permette di gestire dinamicamen te tutti i parametri
di definizione della finestra.
Pagina 17 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.11
Espansione orizzontale e verticale di un frame
La TEXT
*we (o *WE)
permette di demandare all’applet l’espansione orizzontale di un frame (costante o variabile) in base allo schermo corrente.
Allo stesso modo,
*he (o *HE)
abilita l’espansione verticale a runtime.
3.12
Valorizzazione campi hidden tramite MSGID
Un campo hidden in 5250 deve essere valorizzato a programma. Per consentire la valorizzazione a livello di display file, è
stata introdotta la text
<W><MI>Nome MsgF/MsgID</MI></W>
Il valore del msgid viene reperito dinamicamente in fase di esecuzione del programma.
3.13
Valorizzazione campi hidden tramite MSGCON
Tramite la text
<W><MC>Nome MsgF/MsgID</MC></W>
è possibile applicare il concetto di MSGCON ai campi hidden. Il valore del msgid viene reperito staticamente in fase di
conversione del display file.
3.14
Valorizzazione campi hidden tramite DEFAULT
La text:
<DF>Valore</DF>
Permette di associare una stringa costante di default a un campo hidden direttamente nel display file.
3.15
Intestazione di subfile
Esiste un attributo speciale che si usa per forzare l’intestazione di un campo all’interno di un subfile. La sintassi è la se guente:
<h> Intestazione </h>
Per esempio, se per il campo ‘codice articolo’ (definito a subfile come DCODAR) si vuole visualizzare l’intestazione
‘C od.Articolo’, gli si associa la TEXT di questo tipo:
<h>Cod.Articolo</h>
3.15.1Intestazioni con riferimento a un campo presente in un altro formato
Un utilizzo particolare della TEXT <H> consiste nello specificare il riferimento (hidden o output) ad un campo presente in
un formato che verrà emesso in abbinamento al subfile: questo campo diventa l’intestazione della colonna e, se è di
output, viene automaticamente nascosto:
<h>CTL01.HDESC</h>
3.15.2Intestazioni condiv ise (//)
E’ possibile raggruppare diverse intestazioni:
A
SFXSC1
4
2O 22 59TEXT('<w><h>Sconto//Articolo</h></w>')
A
SFXSC2
4
2O 22 66TEXT('<w><h>Sconto//Cli/For</h></w>’)
A
SFXSC3
4
2O 22 73TEXT('<w><h>Sconto//Ordine</h></w>')
Tutto ciò che nell’intestazione di colonna di un subfile precede i caratteri “//”, se si ripete in due (o più) colonne consecutive,
diventa l’intestazione comune alle due (o più) colonne.
Pagina 18 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.16
Frame
I frame sono riquadri che consentono di raggruppare e riorganizzare le informazioni presenti a video. Potenzialmente, su una
videata così organizzata si possono introdurre più campi senza penalizzare la leggibilità e migliorando la comprensibil ità dei
contenuti.
E’ possibile definire sia frame variabili che frame costanti:

Per i frame variabili (campi di output valorizzati a programma) è sufficiente abbinare la TEXT
‘*FRAMEVAR’.

i frame costanti non sono definiti da una TEXT: sono semplicemente stringhe delimitate a sinistra dal
carattere “[“ (parentesi quadra aperta) o “I” (i maiuscola) sottolineato ( DSPATR(UL)) e a destra dal
carattere “]” (parentesi quadra chiusa) o “I” (i maiuscola) sottolineato ( DSPATR(UL)).

esiste anche la possibilità di abbinare la TEXT *FRAMEVAR ad una costante senza utilizzare i caratteri
particolari “[“, “]”, “I”.
In entrambe i casi, le regole per l’utilizzo dei frame riguardano solo il video e sono le seguenti:

La fine del frame è identificata con la prima riga vuota, appartenente al formato record corrente, verso il basso, di
larghezza pari alla distanza tra top-left e top-right.

Una colonna bianca è necessaria lungo tutta l’altezza del frame, a sinistra e a destra. La colonna 1 e la colonna 80 (o
132 per schermi a 132 colonne) devono dunque essere sempre vuote.

I frame possono essere uno dentro l’altro.

Una costante nascosta (ex: ‘*’ con DSPATR(ND) o con indicatori 99N99 è considerata come uno spazio non bianco e
questo permette l’allungamento di un frame per motivi estetici.

Il testo compreso tra i caratteri “[“ e “]” (o il campo di output con associata la text ‘*FRAMEVAR’) diventa la legenda
del frame; i suoi attributi di colore o di reverse image vengono mantenuti.
Note:
1.
Per definire un frame in modo indipendente dal CCSID è possibile utilizzare il carattere ‘I’ sottolineato al posto delle
parentesi quadre (‘[‘ e ‘]’) che hanno un valore binario variabile in base al CCSID.
2.
La tabulazione risulta modificata: non viene eseguita in modo lineare, ma vengono fatti scor rere prima tutti i campi
interni a una frame.
3.17
Allineamento costante o campo di output
La TEXT
<a>C/R</a>
permette di modificare rispetto al default (=sinistra) l’allineamento di una costante o di un campo di output. I parametri
sono:


C: allineamento al centro
R: allineamento a destra
L’effetto a video è il seguente:
In 5250:
In grafica:
3.18
Modifica occupazione campo a video
La TEXT
<sx>xxxx</sx>
Pagina 19 di 108
COMPILATORE WEBGATE – Manuale di programmazione
permette di differenziare l’occupazione orizzontale di un campo a video rispetto alla sua dimensione. Il pa rametro xxxx deve
essere un numerico 4.0 e indica la nuova occupazione.
Questa text permette di recuperare spazio a video senza dover rinunciare alla dimensione desiderata per i campi.
Esempio:
I campi a video sono entrambi lunghi 50 caratteri, ma il primo ha abbinata la text:
<sx>0020</sx>
e il secondo ha la text:
<sx>0100</sx>
Ecco l’effetto in grafica:
3.19
HyperLink
Servono per:

Eseguire un programma;

Visualizzare un oggetto;


Visualizzare un SQL;
Richiamare un URL.
È necessario definire due campi nel formato video:

Un campo hidden che viene valorizzato a programma con il percorso del link;

Un campo con abbinata la TEXT *LINK (o <LINK>) ed il riferimento al campo hidden: se questo campo è una
costante, il link è fisso, se è una variabile, il link è variabile.
A
A
LINKH
DBOAT
100A
35A
H
O
7 2TEXT('<w>*link v:LINKH </w>')
Possono essere definiti sia in formati video normali che all’interno di subfile.
A livello di programma RPG, viene eseguita la valorizzazione del campo hidden ed eventualmente del campo variabile.
LINKH
TIPO
‘http://www.webgate400.com’
URL
‘/webgate400/images/dds.gif’
URL – IFS iSeries Server
‘exec://CALL PGM(ABCV) PARM(‘1’ ‘DD’)’
CALL RPG con emissione nuova finestra
‘exeb://CALL PGM(ABCV) PARM(‘1’ ‘DD’)’ CALL RPG batch (senza video)
‘exei://CALL PGM(ABCV) PARM(‘1’ ‘DD’)’
CALL RPG che produce un output da gestire
(vedere inserzione script)
‘sqli:// SELECT’
SQL su nuova finestra
Esempio: Link costante
DDS:
A
A
A
RPG:
Pagina 20 di 108
LINKH
256A
H
9
2'vai a Google'
TEXT(<w> *link v:LINKH </w>)
ESEMPIO
COMPILATORE WEBGATE – Manuale di programmazione
LINKH = 'http://www.google.it'
Esempio: Link variabile
DDS:
A
A
A
LINKH
TESTO
256A
50A
H
O
9
2
TEXT'<w> *link v:LINKH </w>)
RPG:
LINKH = 'http://www.google.it'
TESTO= ‘ Vai a Google'
3.20
Testo scorrevole
È un testo che scorre in una regione fissa del video; è utile per visualizzare entro spazi contenuti informazioni o menu di
opzioni estesi.
Si definisce a video tramite un campo hidden con la parola chiave ‘*SCROLL’ nella TEXT.
A
SCROLH
300A
H
TEXT('<w>*scroll l:3 c:106 h:1 w:20 </w>')
A programma viene valorizzato il contenuto del campo hidden con il valore della stringa da visualizzare.
Sempre a livello di programma, è possibile impostare il colore del carattere e il colore dello sfondo. Sono disponibili i seguenti
colori : BLU, GRN, PNK, RED, TRQ, WHT, YLW. La sintassi per la definizione dei colori è questa:
bc="RED"
colore sfondo
tc="TRQ"
colore testo
È inoltre possibile far interpretare il testo come un hiperlink, anche multiplo, e consentire quindi lo sviluppo di un menu di
funzioni vero e proprio. La sintassi è la seguente:
<A tc: … HREF: … > testo da visualizzare </A>
Esempio:
A livello di DDS si definisce il campo con testo scorrevole sulla riga 2, colonna 5, altezza 1 carattere, larghezza visibile di 50
caratteri.
A
SCROH
256A
H
TEXT’<w> *scroll l:2 c:5 h:1 w:50 </w>)
A livello di programma RPG si definisce il contenuto del campo hidden.

I caso: testo costante senza colori
SCROH = 'Testo scorrevole’

II caso: testo costante con carattere rosso
SCROH = ‘<A tc=”RED”>Testo scorrevole</A>’

III caso: link a un sito con carattere rosso
SCROH = '<A HREF="www.yahoo.com">vai a Google</A>
si vede scorrere il testo ” vai a Google” di colore rosso ed il link è http://www.google.it/

IV caso: manda una mail
SCROH = <A HREF="mailto:[email protected]" >mail webmaster</A>

V caso: Viene richiamato un programma, il testo è verde e lo sfondo è rosso
SCROH = <A HREF="exec://CALL WGICONER" bc="RED" tc="GRN">Lista icone status </A>'
Pagina 21 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.21
Immagini
Le immagini possono essere utilizzate per scopi puramente estetici, oppure come pulsanti per eseguire comandi, o per
visualizzare animazioni.
Un’immagine si definisce a video tramite un campo hidden contrassegnato dalla TEXT *IMG e valorizzato a programma con il
percorso per reperire l’immagine da visualizzare
È possibile visualizzare immagini di vario tipo (fotografie, disegni, grafici, file swf…) sia in formati normali che all’interno di
subfile.
Le immagini vengono caricate in modo asincrono rispetto al resto della videata per motivi di efficienza (stessa tecnica usata
dai Browser). Se si ha necessità di caricare le immagini in modo s incrono al video, è necessario salvarle nel percorso ifs
/WGPUBLIC/SYNCIMA GES/ (o una sottocartella dello stesso).
Esempio1: immagine semplice
A
XXXPALNK
256A
H
TEXT('<w> *img l:12 c:32 w:9 h:9 </w>')
Esempio 2: immagine in un subfile, con text per subfile-header
A
XXXPALNK
256A
H
TEXT('<w><h>L</h>-*img c:32 w:9 h:9 </w>')
Esempio 3: immagine con abbinato un link
A
XXXPALNK
256A
H
TEXT('<w>*link v:XXXPALNK *img l:12 c:32 w:9 </w>')
Legenda:
c (column)
Colonna in cui è situato il campo;
l (line)
Riga in cui è situato il campo (non necessaria dentro un SFL);
h (high)
altezza in pixel;
w (width)
larghezza in pixel.
Aggiungendo dopo il valore dell’altezza (h) e dell’ampiezza (w) il cara ttere “E” si demanda all’applet l’ottimizzazione del
campo in base allo schermo corrente.
3.22
Pagina 22 di 108
Text Icons
COMPILATORE WEBGATE – Manuale di programmazione
Sono piccoli simboli utilizzati per descrivere degli stati o delle situazioni e consentono all’applicazione di trasmettere
informazioni in modo immediato e intuitivo.
Sono definite a video tramite un campo hidden contrassegnato dalla TEXT‘ *IMG e riempito a programma con i codici delle
icone da visualizzare (quelle gestite sono fornite insieme a Webgate400). E’ possibile definire in un o stesso campo più icone
di questa famiglia, separate dal carattere “;” (punto e virgola); i parametri di ogni singola icona devono essere separati da l
carattere “:”.Il nome di tali icone è preceduto dal carattere ‘#’ o dal carattere ‘%’ (se si vuole che la definizione sia
indipendente dal CCSID).
Possono essere utilizzate sia nei formati video semplici, che nelle righe di subfile. Sono estremamente leggere da elaborare e
non impegnano risorse del sistema.
Queste icone possono avere una valenza puramente estetica ed essere visualizzate semplicemente come indicatori di stato,
oppure possono essere definite come bottoni (TEXT *BMG) per modificare il valore di un campo, o essere associate ad un
comando (definito come “COMMAND ICON”, per la definizione del quale , rimandiamo alla apposita sezione del manuale).
Dal menu principale dell’utente WEBGATECVT, richiamando la funzione “Catalogo Text Icons”, è possibile visualizzare l’elenco
delle icone disponibili con i relativi codice di identificazione e significato.
Per modificare le descrizioni di default è possibile intervenire sul file XFIMG (che si trova nella libreria dei display file ) ed
inserire le proprie descrizioni (anche in lingua).
Esempio:
Nel seguente esempio è definita la visualizzazione di tre icone di stato affiancate dentro un SFL, partendo alla colonna 10.
DDS:
A
ICOH
50A
H
TEXT'<w><h>S</h>*img c:10 n:3 </w>)
RPG:
ICOH = '%0010;%0011;%0012'
Esempio:
Nel seguente esempio, il campo hidden ICOH viene valorizzato con sette icone:
ICOH='%0010:Evaso;%0012::;%0011::%001101;%0013;%0520::OPZIONE=D;%0777::F01:OPZIONE=D;
% 0678::FORMATO1.OPZIONE=D’
1.
La prima (%0010:Evaso) sostituisce la descrizione standard con il testo “Evaso” e non esegue alcun comando.
2.
La seconda (%0012::) non sostituisce il testo standard ed esegue il comando di default associato all’icona (stesso
nome).
Pagina 23 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.
La terza (%0011::%001101) non sostituisce il testo ed esegue il comando %001101.
4.
La quarta (%0013) visualizza solo l’icona con il testo standard.
5.
La quinta (%0520::OPZIONE=D) visualizza l’icona con il testo standard, assegna al campo “OPZIONE” del formato
cui appartiene il campo con le icone il valore “D” e simula l’ENTER.
6.
La sesta (%0777::F01:OPZIONE=D) è simile alla precedente , ma invece dell’ENTER simula l’ F1.
7.
La settima (%0678::FORMATO1.OPZIONE=D) visualizza l’icona con il testo standard e assegna al campo “OPZIONE”
del formato FORMATO1 il valore “D”.
3.23
Extended Icons
Ognuna di tali icone è disponibile nei formati: 16*16, 24*24, 32*32, 48*48. A differenza delle text icons, ogni campo può
contenere una sola icona di questa famiglia.
Nel menu principale dell’utente WEBGATECVT è possibile visualizzare l’elenco delle 1250 EXTENDED ICONS.
Per informazioni sulle licenze consultare il sito www.iconexperience.com.
Per codificare le descrizioni di default è possibile intervenire sul file XFIMG (che si trova nella libreria dei display file ) ed
inserire le proprie descrizioni (anche in lingua).
La sintassi di questa funzione é la seguente :
nomeicona.wdf:descrizione
Come le Text Icons, anche queste icone possono avere una valenza puramente estetica ed essere visualizzate semplicemente
come indicatori di stato, oppure possono essere definite come bottoni per modificare il valore di un campo.
Esempi:
Nel seguente esempio è definita la visualizzazione dell’icona add.wdf alla riga 5 e colonna 12 nel formato 32*32
Pagina 24 di 108
COMPILATORE WEBGATE – Manuale di programmazione
DDS:
A
ICOH
50A
H
TEXT'<w>*img l:5 c:12 w:32 h:32 </w>)
RPG:
ICOH = 'add.wdf:Aggiungi’
Nel caso seguente, viene visualizzata l’icona con il testo standard ed assegnata al campo “OPTION” del subfile il valore “A” e
simula l’ENTER.
DDS:
A
ICOH
50A
H
TEXT'<w>*img C:12 W:16</w>)
RPG:
ICOH = 'add.wdf:OPTION=A’
3.24
Icone generiche, immagini JPG e SWF
E’ possibile utilizzare proprie icone (tipo .*ICO) create da software di creazione icone per windows.
E’ necessario che queste icone siano installate all’interno dell’ifs, all’interno della directory WGPublic (è possibile creare anche
sottodirectory per meglio identificare le proprie icone).
La sintassi di questa funzione é la seguente :
/percorso/nomeicona.ico
Esempio:
Nel seguente esempio è definita la visualizzazione dell’icona prova.ico alla riga 5 e colonna 14 nel formato 16*16
DDS:
A
ICOH
50A
H
TEXT'<w>*img l:5 c:14 w:16 h:16 </w>)
RPG:
ICOH = '/Wgpublic/prova.ico’
NB: in termini di velocità di visualizzazione le più prestanti sono le text-icons e le icone wdf; le icone di tipo ico sono caricate
in modo asincrono, similmente alle immagini.
3.25
Button Image
Le “Button Image” sono immagini a cui è associata un’azione in corrispondenza dell’evento di click. Si distinguono a video
dalle immagini standard perché il puntatore del mouse cambia quando si posiziona su di esse.
Per far intercettare al programma RPG la pressione del pulsante, è sufficiente testare il contenuto della variabile WGQcsrFld,
che, quando l’Applet restituisce il controllo al programma RPG, contiene il nome del campo corrente. Il programma RPG dovrà
eseguire un’azione se tale variabile è valorizzata con il nome del campo “Button Image”
Per utilizzare tale informazione è sufficiente definire la variabile WGQcsrFld lunga 10 caratteri. Nel caso si programmi
utilizzando l’RPG3, è possibile utilizzare la variabile WGCSFL sempre di 10 caratteri.
La sintassi di definizione a livello di display file è identica a quella delle immagini: l’unica dif ferenza consiste nel fatto che sono
di tipo *BMG.
Al posto di immagini, possono essere utilizzate, utilizzando la sintassi definita precedentemente, icone di tipo WDF e di tip o
ICO.
Esempio:
Nel Display file:
A
Pagina 25 di 108
XMNIH01
40A
H
TEXT('<w>*bmg l:04 c:39 w:16 h:16 </w>')
COMPILATORE WEBGATE – Manuale di programmazione
Nel programma:
* Caricamento contenuto button image (non obbligatorio)
C
……
*
* Emissione video ……
*
……
EVAL
XMNIH01=’add.wdf:Aggiungi’
*
* Sezione controllo tasti funzionali premuti
C
C
WGQcsrFld
IFEQ
CALL
'XMNIH01
'RIQI10'
'
C
C
C
PARM
PARM
PARM
K0XAZIEN
K0XWORKC
K0XACTIO
C
C
PARM
ENDIF
K0XARGOM
20
3
1
15
In seguito alla descrizione, si possono aggiungere i “:” e riportare il tasto funzione da eseguire:
about.wdf:Descrizione:TASTO
Valorizzando in maniera diversa il campo TASTO, si ottengono risultati diversi:

Se TASTO non è specificato, esegue l'ENTER.

C F01 --> C F24 viene premuto il tasto funzione corrispondente.

ROLLUP --> viene eseguito lo scorrimento pagina indietro.

ROLLDOWN --> viene eseguito lo scorrimento pagina in avanti.

C F25 --> Lancia il PrintBox.

C F26 --> Espande completamente un subfile gerarchizzato (come il bottone nella toolbar).

C F27 --> Collassa completamente un subfile gerarchizzato (come il bottone nella toolbar).

C F28 --> Espande un livello di un subfile gerarchizzato (come il bottone nella toolbar).

C F29 --> Collassa un livello di un subfile gerarchizzato (come il bottone nella toolbar).

C F30 --> Lancia il WRKACTJOB.

C F31 --> Lancia la visualizzazione dei lavori dell'utente.

C F32 --> Lancia la gestione messaggi tra utenti.

C F33 --> Lancia la gestione messaggi QSYSOPR.

C F34 --> Visualizza la finestra del menu (quella con il menu SPI).

C F35 --> Lancia l'Instant Report

C F36 -->la gestione SharedNotes.

Può essere eseguita la CALL a un programma.

Tramite la sintassi:
FLD001=val001
viene assegnato un valore (val001) a un campo (FLD001) e viene automaticamente eseguito un ENTER.
A livello di display file, nella TEXT della Button Image è possibile indicare il nome del MSGF e l’identificativo del messagg io
con il contenuto della variabile.
Questo offre due vantaggi:
1.
2.
non è più necessario valorizzare il campo hidden a programma;
il contenuto del campo hidden può essere modificato dinamicamente senza che sia necessario eseguire conversioni
ed è possibile, mettendo in linea le librerie dei MSGF in lingua, visualizzare le descrizioni in lingua d elle varie
immagini.
La sintassi è la seguente:
m:NomeMsgF/NomeMsgID
Esempio:
A
Nota:
Pagina 26 di 108
XMNIH01
40A
H
TEXT('<w>*bmg m:MsgF/MsgID l:04 c:39 w:16 </w>')
COMPILATORE WEBGATE – Manuale di programmazione
La gestione dei button image attualmente non è utilizzabile sui subfile.
3.26
Command Icons
Sono icone definite per lanciare automaticamente dei Command Service: vedere manuale System Administration.
Si accede a questa funzionalità dal menu principale dell’utente WEBGATECVT.
Questi comandi si definiscono con modalità analoghe a quelle dei “command service”, ma possono essere eseguiti solo in
abbinamento ad una Text Icon.
La sintassi é la seguente :
#nnnn:descrizione sostituente:#nome Command Icon
Le singole icone devono essere separate dal carattere “;”.
I parametri devono essere separati dal carattere : (due punti).
La presenza del carattere : (due punti) attiva la ricerca del comando associato (vedi esempio).
#nnnn = Codice dell’icona
Obbligatorio
Descrizione sostituente
Facoltativo
Se presente, sostituisce la descrizione standard
dell’icona.
#C ommand Icon
Facoltativo
Se non specificato, viene assunto il nome dell’icona.
3.27
Messaggi variabili
E’ disponibile una TEXT che permette di riconoscere i campi di output contenenti messaggi di errore e visualizzare tali
messaggi nella prima parte dell’ultima riga della schermata grafica.
La sintassi è la seguente:
A
Pagina 27 di 108
MSGERR
128A
B
26
2TEXT('<W>*MSGVAR</W>')
COMPILATORE WEBGATE – Manuale di programmazione
Il campo di output MSGERR, che viene impostato a programma col messaggio di errore, scompare dalla videata e il suo
contenuto viene visualizzato nella riga in basso con sfondo giallo.
3.28
Ricerca con tasto destro
Questa TEXT consente di impostare la ricerca su un campo mediante il menu attivabile col tasto destro del mouse.
La sintassi più semplice è la seguente:
A
XCODAR
13A
B
26
2 TEXT('<W>*put:char t:testo a:*FKEY i:texticon </W>')

Char: può essere un carattere qualsiasi; se non viene specificato viene assunto ‘?’.

Testo: singola parola che identifica la voce di menu che lancia la ricerca; se non specificata viene impostato
“ricerca”.


Texticon: specifica quale text icon deve affiancare la voce di menu; per default è un punto di domanda rosso.
*FKEY: azione da eseguire per il lancio della funzione, può assumere i valori: *ENTER, *F1, …, *F24.
Specificando *put, il valore del campo viene sostituito con il carattere specificato e viene simulato il tasto funzione specificato.
Esistono poi altre 4 possibilità di definizione della ricerca, che consentono di incrementare i diversi tipi di ricerca dispo nibili
oltre a quello standard:

*putL: se il campo è valorizzato, aggiunge il carattere impostato per la ricerca come primo carattere del campo in
esame;

*putR: il carattere indicato viene aggiunto alla destra del valore del campo;

*putLR: comprende le due precedenti in un’unica text;

*putL_R: come la precedente, con in più la possibilità di aggiungere il carattere di ricerca come primo e ultimo
carattere del valore corrente del campo.

*put: non forza alcun valore nel campo ed attiva il tasto di funzione associato.
3.29
Micro-Grafici contestuali
Esiste la possibilità di visualizzare dei grafici all’interno di una videata o di una riga di subfile.
I Micro-grafici sono definiti a video tramite un campo hidden riempito a programma con i parametri del grafico da v isualizzare
e con la parola chiave ‘*IMG’ nella TEXT.
A
GRAH
50A
H
TEXT'<w>*img c:10 l:2 h:8 w:180 </w>)
Legenda:
c (column)
colonna;
l (line)
riga (non necessaria dentro un subfile);
h (high)
altezza;
w (width)
larghezza in pixel.
Nel programma RPG si imposta il valore di questo campo hidden, che deve seguire un sintassi pre -stabilita:

Il primo carattere deve essere *;

il secondo carattere è un numero tra 0 e 3 e indica il tipo di grafico;

il resto dipende del formato del grafico.
GRAH = '*0;3000;1500:2;1000;2000’
tipo 0
GRAH = '*1;300;1;100;150’
tipo 1
GRAH = '*2;300;30;1;60;2;90;3;100;4’
tipo 2
GRAH = '*3;300;1;200’
tipo 3
Esistono 4 tipi di minigrafici, tutti con sintassi posizionale.
Pagina 28 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.29.1Tipo 0: freccia su una scala a tre colori
Sintassi:
*0
; 3000
tipo di
grafico
; valore massimo ;
che il grafico
può
raggiungere
(scala)
;
1500:2
;
1000
; 2000
valore a cui
posizionare la
freccia
;
soglia valore
pessimo(dove
far finire la
scala rossa)
; soglia valore
ottimo(dove
inizia la scala
verde)
300
;
2
; 100
150
valore
massimo
;
colore
; valore di
partenza
Valore finale
:
colore della
freccia
3.29.2Tipo 1: istogramma a un solo colore
Sintassi:
*1
; 300
tipo di
grafico
; valore di
:
partenza della
scala
(opzionale; per
default parte da
zero)
:
Esempi:
3.29.3Tipo 2: istogrammi impilati
Possono essere al massimo 10.
Sintassi:
*2
; 300
;
30:1
;
60:2
; 90:3
;
100:4
tipo di
grafico
; scala
complessiva
;
valore del
primo grafico
;
valore del
secondo
grafico
; valore del
terzo grafico
;
valore del
quarto grafico
:
:
colore
colore
:
:
colore
colore
3.29.4Tipo 3: stato di avanzame nto
Sintassi:
*3
; 300
;
1
;
200
tipo di
grafico
; valore della
scala
;
colore
;
valore del
grafico
3.29.5Tabe lla colori
Il parametro colore nella sintassi dei micro-grafici può assumere i valori compresi tra 1 e 9, cui corrispondono i colori riportati
nella seguente tabella:
Pagina 29 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.30
LOBS
Gestione di oggetti complessi all'interno di applicazioni 5250 compilate Webgate400.
L'obiettivo è quello di poter gestire oggetti esterni come fossero dati nativi delle applicazioni, utilizzando una tecnica si mile a
quella utilizzata per la gestione dei LOB dal DB/2, ma semplificata dal punto di vista della programmazione.
Esempi di LOBs possono essere: testo semplice, testo RTF, testo HTML (mail body), oggetti Office.
3.30.1De finizione de i campi LOBS
I campi lob sono campi di input-output che devono avere il nome con il prefisso WLOB_.
Devono avere la TEXT <lob> … </lob>, qualificante come negli esempi seguenti:

<lob>txt h:10 w:80 s:F1 d:F4 l:F5 </lob>

<lob>mht h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>rtf h:10 w:80 s:F1 d:F4 l:F5 </lob>

<lob>doc h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>xls h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>sql h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>dgm h:10 w:80 s:F1 d:F4 l:F5</lob>

<lob>xml h:10 w:80 s:F1 d:F4 l:F5</lob>
Oppure, volendo gestire dinamicamente il lob, è possibile riportare la sintassi in un campo hidden:
A
A
HIWEBB
WEBB
256A H
520A H
TEXT('<W><LOB> HIWEBB </LOB></W>')
Estensioni disponibili alla data: TXT, MHT, SQL, DOC.
Dove:
h = altezza campo lob a video (in righe)
w = ampiezza campo lob a video (in colonne)
s (save) = tasto funzione abbinato alla funzione di salvataggio (lasciando la sintassi “s: “ corrisponde a ENTER)
d (delete) = tasto funzione abbinato alla funzione di cancellazione
l (lose changes) = tasto funzione abbinato alla funzione di ripristino (annulla modifiche)
Aggiungendo dopo il valore dell’altezza (h) e dell’ampiezza (w) il carattere “E” si demanda all’applet l’ottimizzazione del
campo in base allo schermo corrente.
È possibile aggiungere il parametro “G:Y” se si vuole che il lob mantenga esattamente la stessa dimensione come su AS400;
viene però aggiunta la dimensione necessaria per la scrollbar.
Per i lob di tipo DGM, è possibile aggiungere il parametro “TY: tipo” per specificare il tipo di diagramma che si vuole inserire.
E' possibile specificare:
1
diagramma generico (default)
2
diagramma di flusso
Per il corretto funzionamento dei lob di tipo DGM, è obbligatorio specificare i parametri s e l.
3.30.2Memorizzazione
I campi di tipo LOB vengono salvati in cartelle IFS così composte:

/WGPublic/Lobs/lobstore_subdir/annomese/UNIDE.xxx
Pagina 30 di 108
COMPILATORE WEBGATE – Manuale di programmazione
dove:

lobstore_subdir rappresenta la sottodirectory corrente cui è legata l’applicazione che usa il LOB

xxx è l’estensione del file
3.30.2.1 Determinazione della lobstore_subdir
Il valore della lobstore_subdir viene reperito dalla procedura di memorizzazione del lob da una variabile ambientale del
processo, identificata dalla parola chiave WGLOB_STORE_SUBDIR.
Tale variabile può essere impostata anche dall’applicazione che intende utilizzare le funzionalità legate ai lobs tramite l’API
WGLOBSETST, per esempio CALL PGM(WGLOBSETST) PARM(‘SPIFIEP’).
In assenza di impostazioni il sistema utilizza il valore dlobstore.
3.30.3Indice
Creazione di un file indice in WEBG4FD.
CAMPO
DESCRIZIONE
Tipo Dimensione
XUNIDE
Identificatore univoco LOB
A
18
XCOMPID
Codice company
A
10
XLEXT
Estensione (tipo) del file
A
10
XLSIZE
Dimensione file
S
10
XLPATH
Percorso file
A
256
XUSERC
Utente creazione lob
A
10
XDATEC
Data creazione
S
8
XTIMEC
Ora creazione
S
6
XUSERU
Utente aggiornamento lob
A
10
XDATEU
Data aggiornamento creazione
S
8
XTIMEU
Ora aggiornamento creazione
S
6
L’identificatore univoco XUNIDE viene calcolato richiamando l’API “EGETUNID”:
CALL
'EGETUNID'
PARM
PUNIDE
18
3.30.4Salvataggio e ripristino dei lobs
I lobs possono essere trasportati da un sistema all’altro semplicemente salvando e ripristinando la directory IFS che li
contiene.
L’indice non deve mai essere salvato.
Dopo il ripristino si deve eseguire la procedura di ricostruzione dell’indice WGLOBRBIDX.
Se viene lanciata senza argomenti, rigenera l’indice a partire della root di salvataggio dei lobs (/WGPublic/Lobs), in caso
contrario lo rigenera per il ramo di IFS richiesto.
3.30.5API FOR RPG
3.30.5.1 Set Storage - WGLOBSETST
Consente di impostare, per il job corrente, la directory IFS di memorizzazione dei lobs generati ( lobstore_subdir).
PARAMETRO
DESCRIZIONE
L
XLOBST
Nome directory di memorizzazione dei
lobs. Non deve contenere caratteri
speciali, ma solo numeri o lettere
18
D
TIPO
I/O
alfanumerico
I
3.30.5.2 Rebuild Index - WGLOBRBIDX
Utilità di ricostruzione indice dei lobs.
Parametri di chiamata: nessuno
3.30.5.3 Get LOB Text – WGLOBGTXT (tested)
Estrazione di testo da un lob di tipo txt.
Restituisce il testo del lob in una schiera di stringhe, il testo viene normalizzato nel senso che viene eseguito un padding a
blank di tutte le righe e le righe vengono troncate alla lunghezza indicata mantenendo le parole intere.
Pagina 31 di 108
COMPILATORE WEBGATE – Manuale di programmazione
PARAMETRO
DESCRIZIONE
L
XUNIDE
ID LOB di testo
18
XMAXNL
Numero di linee di testo (max)
4
XMAXLL
Lunghezza singola linea
XCCSID
CCSID da utilizzare
XNUMLN
XSTRBF
D
TIPO
I/O
alfanumerico
I
0
Numerico
I
3
0
Numerico
I
5
0
Numerico
I
Numero di linee di testo valide
4
0
Numerico
O
Buffer di uscita
Xx
Alfanumerico
O
3.30.5.4 Get LOB Path - WGLOBGPATH
Restituisce il percorso IFS di un LOB.
PARAMETRO
DESCRIZIONE
L
TIPO
I/O
XUNIDE
ID LOB
18
D
alfanumerico
I
XLPATH
Percorso IFS del file di lob
256
Alfanumerico
O
3.30.5.5 LOB Create – WGLOBCRT (tested)
Creazione di un LOB.
PARAMETRO
DESCRIZIONE
L
XUNIDE
ID LOB da creare
18
XLINEL
Lunghezza singola linea
3
XNUMLN
Numero di linee di testo
4
XCCSID
CCSID da utilizzare
5
XTYPE
Tipo di LOB da creare (TXT, MHT, etc)
XSTRBF
Buffer
D
TIPO
I/O
alfanumerico
I/O
0
Numerico
I
0
Numerico
I
0
Numerico
I
4
Alfanumerico
I
Xx
Alfanumerico
I
TIPO
I/O
alfanumerico
I
3.30.5.6 LOB Remove – WGLOBRMV (tested)
Cancellazione di un LOB.
PARAMETRO
DESCRIZIONE
L
XUNIDE
ID LOB da rimuovere
18
D
3.30.5.7 LOB Copy – WGLOBCPY (tested)
Duplicazione un LOB.
PARAMETRO
DESCRIZIONE
L
TIPO
I/O
XUNIDF
ID LOB da copiare
18
D
alfanumerico
I
XUNIDT
ID LOB copia. Nel caso valore di UNID
non valido crea nuovo UNID e lo
restituisce
18
alfanumerico
I/O
TIPO
I/O
Alfanumerico
I
Numerico
O
Alfanumerico
O
3.30.5.8 Get LOB Size – WGLOBGSIZ
Reperisce la dimensione di un LOB.
PARAMETRO
DESCRIZIONE
L
XUNIDE
ID LOB
18
XLOBSIZ
Dimensione del LOB
10
XLOBERR
Flag errore: ‘’ = corretto – ‘1’ = errore
1
3.31
D
0
Campi SQL
I campi SQL sono campi hidden permettono di inserire in un form (in una determinata posizione e con una determinata
dimensione) il risultato di un’istruzione SQL. A livello di display file è quindi necessario aggiungere un campo hidden che viene
popolato a programma con lo "statement" sql da eseguire.
Pagina 32 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Ecco le varie sintassi:
1. <W>*SQL L:3 C:109 H:42 W:52 </W>
4.
Vengono definiti staticamente posizione e dimensione della lista.
<W>*SQL L:3 C:109 H:42 W:52 a:*C</W>
L'sql deve essere eseguito solo se la query cambia.
<W>*SQL L:3 C:109 H:42 W:52 a:*R</W>
L'sql viene eseguito solo su richiesta dell'utente; ovviamente non basta che l'utente modifichi un campo, deve anche
dare invio, perché comunque l'esecuzione viene "tentata" solo dopo un enter.
<W>*SQL L:3 C:109 H:42E W:52E </W>
5.
I caratteri”E” dopo le dimensioni demandano all’applet l’espansione in orizzontale o/e in verticale della lista: le
dimensioni specificate sono quindi le dimensioni minime della lista.
<W>*SQL HSQL01 </W>
2.
3.
Sia la posizione che la dimensione sono valorizzati a programma tramite il campo hidden HSQL01.
L'SQL può essere elementare o estremamente complesso (non c'è limite alla complessità del controllo) e, essendo co struito
dinamicamente dal codice (ad es. RPG) ha piena capacità di includere filtri o selezioni dei dati che devono essere estratti.
Nei campi SQL è possibile utilizzare molti dei Format Attribute disponibili (ad es. Gerarchie e Raggruppamenti) e con gli s tessi
attributi è possibile anche inserire delle colonne di icone che permettono di fornire informazioni al form su cui è disegnato
l'SQL, oppure in autonomia di eseguire dei link.
Inoltre nei campi SQL sono previsti degli attributi formato che permettono di ottenere un grafico semplicemente impostando
quali sono gli assi (X, Y, Serie). Il grafico sarà ottenibile premendo l'apposito pulsante "Grafico" nella Quick Access Toolbar
dell'interfaccia.
Non per ultimo, gli SQL possono evitare anche complessi programmi di interrogazione in quanto è garantita l'esportazione dei
dati su Excel e, con l'ausilio dei Command Service, è possibile usarli per richiamare altre funzioni già presenti nell'impian to.
Sono utili per:
Risparmiare codice
Sfruttare le potenzialità di SQL
Poter esporre più griglie all'interno di uno stesso formato.
3.32
Check Box
E’ possibile trasformare un campo che può assumere due valori alternativi in una check box, semplicemente aggiungendo una
specifica TEXT a video. In grafica le check box sono quadratini che occupano lo spazio di 2 caratteri: è dunque necessario
prevedere sempre uno spazio vuoto in più dopo le check box che nel video 5250 sono rappresentate da un carattere.
Esistono tre modalità di inserimento delle check box:
1.
Sintetica: l’unico parametro obbligatorio della TEXT è il valore ON. Il valore OFF viene impostato per difetto a blank. In
questo caso il check box NON può essere selezionato tramite tastiera.
Esempio:
A
A
A
2.
QSCALA
1A
B
7 3'Esplodi'
7 11VALUES(‘S’ ‘N’)
TEXT('<W><CB>ON:S</CB></W>')
Estesa con testo della costante : consente di eseguire la selezione/deselezione del campo anche cliccando sulla sua
intestazione; sono necessari più parametri. I parametri obbligatori sono la label, la colonna in cui deve iniziare il campo e
il valore ON. In questo caso il check box NON può essere selezionato tramite tastiera
Esempio:
A
A
A
7
QSCALA
1A
B
3'Esplodi'
TEXT('<w>*ignore</w>')
8128TEXT('<W><CB>T:Esplodi C:110 ON:S OFF:N</CB></W>')
Il campo “QSCALA” può assumere nel video 5250 i valori ‘S’, ‘N’ o ‘ ‘. Nella versione grafica lo stesso campo viene
gestito come una C heck Box. La TEXT è identificata in questo modo:

Inizia con la parola chiave <CB> (o <cb>).

L’intestazione (label) della check box è un parametro obbligatorio per la gestione estesa; è introdotta dalla parola
chiave ”T:”(o “t:”) e può essere lunga fino a 20 caratteri. In fase di definizione di tale testo, è importante
considerare lo spazio disponibile per evitare che in grafica la check box si sovrapponga con altri campi.
Pagina 33 di 108
COMPILATORE WEBGATE – Manuale di programmazione

La posizione (colonna) dalla quale inizia la check box è preceduta dal simbolo “C :” (o “c:”); la riga rimane la stessa
del campo origine. Questo parametro è obbligatorio per la gestione estesa, mentre per la gestione sintetica viene
mantenuta la posizione originaria del campo.

La dimensione totale della check box, opzionale, deve essere preceduta dal simbolo”S:” (o”s:”). Se non indicata,
viene calcolata automaticamente. E’ importante ricordare che la dimensione minima è di 2 caratteri per le check box
sintetiche e 3 caratteri più la dimensione della label per quelle estese.

Il campo preceduto dal valore “ON:” (o “on:”), sempre obbligatorio, è il valore che deve assumere il campo a video
quando la check box è selezionata;
Il campo preceduto da “OFF:” (o “off:”), opzionale, è il valore che deve assumere il campo a video quando la check
box è deselezionata.

3.

N-B: Se il valore Off non viene specificato, viene dato per assunto che sia blank.

La TEXT termina con la parola chiave “</CB>” (o “</cb>”).
Estesa con nome della costante: la resa grafica è equivalente a quella del punto 2.
Esempio:
A
A
A

7
QSCALA
1A
B
3'Esplodi'
TEXT('<w>*CSCONST01</w>')
8128TEXT('<W><CB>CR:CONST01 ON:S OFF:N</CB></W>')
Le regole sono identiche a quelle del punto 2; l’unica differenza consiste nel fatto che la label, invece di essere
specificata direttamente nella TEXT del campo variabile, viene definita facendo riferimento a una costante che si
trova nello stesso formato tramite la parola chiave ”CR:” (o “cr:”).
Nota: la text relativa ai check box è implementabile solo sui campi alfanumerici.
3.33
Combo List
E’ possibile definire un campo di I/O che può assumere un numero limitato di valori tramite una com bo list che è
caratterizzata dai valori che può assumere il campo e dalla loro descrizione.
Il controllo viene gestito da due variabili:
1.
Il campo vero e proprio che trasporta il valore/i scelto/i eventualmente divisi dal separatore “ ;”
2.
Il campo hidden che contiene una serie di elementi divisi dal separatore “;” composti da:
-
Nome icona
-
Valore della scelta
-
Descrizione della scelta (Testo)
I valori di ogni elemento sono suddivisi dal carattere “:” (due punti) e sono posizionali.
Il secondo valore (descrizione) può essere omesso.
Esempio
Elemento completo = %0045:1:Scelta1; %0046:2:Scelta2;ecc…..
Gli stessi elementi senza icone = :1:Scelta1;:2:Scelta2;ecc…..
3.33.1Composizione della text
Elemento
Sintassi
Identificazione
Inizio<cl>,
termine </cl>
Valori
De fault
Note
Selezione Singola
o Multipla
S:
S=Singola
M
M=Multipla
Consente di scegliere solo 1 o più di un
elemento.
Campo
F:
Impostazione Lista
Nome Campo (hidden)
contenente Icona, Testo
e Valore dell’elemento
Se viene impostata la visualizzazione N, il
primo elemento della lista è il valore
sempre visualizzato.
Opzione
visualizzazione
valore/i scelti
V=Visualizza Valore
V:
E
T=Visualizza Testo
E=Visualizza Entrambe
In questo caso, il primo elemento della lista
rappresenta il testo visualizzato dal controllo.
N=Non visualizza
Campo Inputabile
I:
S=Inputabile
N=Non Inputabile
Lunghezza opzione L:
Pagina 34 di 108
La scelta “Non visualizza” consente al
controllo di simulare la funzione svolta dalla
barra dei menu.
N
Solo i campi a scelta singola possono essere
inputabili.
Lunghezza del valore di un’opzione per i campi
a selezione multipla.
COMPILATORE WEBGATE – Manuale di programmazione
Blocco click
C:
B=Blocca
Larghezza del
Controllo
W:
Numero di colonne
occupate in
visualizzazione
Lunghezza
del campo
soggetto
del
controllo.
Numero Righe
visualizzate nella
Lista
R:
Numero righe
Numero
elementi
nella lista
Questo parametro fa in modo che il valore
del campo non venga alterato con un click
sulla combo list.
3.33.2Caratteristiche del Campo
Visualizzazione
A video il campo occupa le posizioni previste dal parametro W: più due posizioni per la freccia. Se W non è definito, viene
occupato lo spazio esatto assegnato al campo.
Campo editabile
Se il campo è inputabile (quindi a scelta singola), il campo appare come un normale campo di input con una piccola freccia a
sinistra:
Se il mouse si muove al di sopra del campo, compare un delimitatore:
Cliccando a sinistra del delimitatore il campo di input prende il focus ed è possibile scrivere; cliccando sulla freccia comp are la
lista delle opzioni.
Campo non inputabile
Il campo può essere a scelta singola o multipla, ed appare come una costante con un bordo e con una piccola freccia a
sinistra:
Se il mouse si muove al di sopra del campo, cambia il colore di sfondo e compare un delimitatore:
In qualunque punto si clicchi, compare la lista delle opzioni.
Se il campo riceve il focus (cliccandolo oppure tramite il tasto di tabulazione), viene visualizzato un rettangolo tratteggia to.
Se il campo ha il focus ed è a scelta singola, premendo il tasto Freccia giu viene selezionato il valore successivo nella lista
delle opzioni; premendo il tasto Freccia su viene selezionato il valore precedente; premendo la barra spaziatrice compare la
lista dei valori.
Se il mouse resta fermo qualche frazione di secondo al di sopra del campo, compare un tooltip con il valore corrente:
Il click con il tasto destro sulla lista aperta deseleziona le opzioni già selezionate; se il campo è a selezione multipla,
un secondo click col tasto destro seleziona tutte le opzioni.
3.33.3Valori di ritorno
Campi a selezione singola
Il campo riporta il valore associato all’opzione selezionata, oppure il valore impostato dall’utente nel caso di campo
editabile.
Campi a selezione multipla
Opzioni non duplicate
Se i valori associati ai primi due valori della lista sono diversi, si assume che tutte le opzioni siano tra loro diverse: in
questo caso il valore di ritorno è la lista dei valori selezionati formattati secondo la l unghezza impostata nel
parametro L. Vengono riportate al massimo un numero di opzioni selezionate pari alla lunghezza del campo diviso il
valore di L.
Opzioni duplicate
Se i valori associati ai primi due valori della lista sono uguali, nel campo viene tornata una stringa “posizionale”: per
ognuna delle opzioni disponibili vengono valorizzati tanti caratteri quanti ne sono specificati nel parametro L della
text; se un’opzione non è selezionata i caratteri corrispondenti saranno tutti a Blank, se è selezionata riportano il
valore corrispondente allineato a sinistra.
Supponiamo che la text preveda L:2 che ci siano tre opzioni A, BB, C :
Pagina 35 di 108
COMPILATORE WEBGATE – Manuale di programmazione

se l’utente seleziona solamente la seconda opzione il valore di ritorno sarà: “ BB “;

se l’utente seleziona la prima e l’ultima opzione: “A C ”;

se l’utente non effettua selezioni: “
“.
3.33.4Parzializzazione dei valori disponibili nella lista.
Se specificata la keyword “Values” i valori indicati nella stessa parzializzano il contenuto della lista.
In questo modo, tramite le consuete modalità di personalizzazione del video, è possibile customizzare i valori senza procedere
alla modifica del programma.
3.33.5API complementare c reazione lista
Per la composizione del campo Hidden (lista dei valori disponibili) via SQL, è disponibile l’A PI WGCOLISQLR che a fronte di
una istruzione SQL passata con il primo parametro (P0XSQLSP), rende una lista di N elementi in un campo formattato
opportunamente e già pronto per essere visualizzato. (P0XCLIST).
La istruzione SQL deve essere costruita definendo nella select 2 campi: il primo deve rappresentare il codice (il
valore che verrà portato nel campo di I/O a video) e la descrizione correlata al suddetto codice.
Per esempio : SELECT CODICE, DESCR FROM ARCHIVIO
E’ disponibile anche un parametro per specificare se nella lista deve essere inclusa anche un’icona di identificazione per ogni
elemento. (P0XSQLIC).
Parametro
Lunghezza
P0XSQLSP
1024
Istruzione SQL da elaborare
P0XSQLIC
40
Icona Da visualizzare a destra
Facoltativo
Input
P0XCERRO
1
Codice di errore
O=La lista eccede la
lunghezza max (10000)
Output
P0XCLIST
10000
Campo contenente la lista di
valori da visualizzare
Pagina 36 di 108
Decimali
Descrizione
Valori
Input/Output
Input
Output
COMPILATORE WEBGATE – Manuale di programmazione
Esempi
Caso di utilizzo
Sintassi TE XT DDS
Lista di opzioni a selezione
multipla che visualizza Il titolo
del contenuto. Campo non
inputabile.
TEXT('<W><CL>F:XCLIST01 V:N I:N L:1
W:07</CL></W>')
Lista contenente elementi di
tabella a selezione singola che
visualizza valore e descrizione.
Campo non inputabile.
TEXT('<W><CL>S:S F:XCLIST01 V:E R:9
W:20</CL></W>')
Lista contenente elementi di
tabella a selezione multipla che
visualizza solo il valore.
Campo non inputabile.
TEXT('<W><CL>F:XCLIST02 V:V I:N L:2
W:20</CL></W>')
Lista contenente elementi di
tabella a selezione singola che
visualizza solo descrizione.
Campo non inputabile.
TEXT('<W><CL>S:S F:XCLIST05 V:T
W:15</CL></W>')
Lista contenente elementi di
tabella a selezione singola che
visualizza solo il valore.
Campo inputabile.
TEXT('<W><CL>S:S F:XCLIST01 V:V I:S
W:8</CL></W>')
Pagina 37 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.34
Date Handler
È utilizzata una TEXT per definire la natura dei campi numerici che rappresentano una data.
Può essere usata in 2 modi distinti:
1.
per identificare la sintassi di un campo data, senza intervenire sulla formattazione a video del valore (ad esempio
per consentire di ordinare correttamente un subfile rispetto alla colonna data): in questo caso la TEXT si limita a
definire qual è il formato della data.
2.
per demandare all’interfaccia la formattazione e la validazione del campo: in questo caso, la TEXT lavora in
combinazione con un parametro definito nella Configurazione Runtime di Webgate400 (Ambiente di esecuzione –
Formato Data) per definire il valore generato dall’RPG e quello di output che l’interfaccia deve generare.
3.34.1 Sintassi TEXT senza formattazione de ll’output
Questa text è stata introdotta originariamente per abilitare l’ordinamento per data nei subfile. Ad oggi questa funzionalità è
gestita anche dalla seconda sintassi: si consiglia quindi di utilizzare la seconda sintassi che è più completa gestendo anche la
formattazione e il controllo della data. La sintassi senza formattazione dell’output viene comunque interpretata per
compatibilità all’indietro.
In questo caso la sintassi è la seguente:
TEXT('<W><D>P=*EUR;</D></W>')
Il parametro P definisce il modo in cui la data è formattata e può assumere i valori:
Sintassi
Definizione
Formato
*MDY
Month/Day/Year
mm/dd/yy
*DMY
Day/Month/Year
dd/mm/yy
*YMD
Year/Month/Day
yy/mm/dd
*ISO
International Standards
Organization
yyyy-mm-dd
*USA
IBM USA Standard
mm/dd/yyyy
*EUR
IBM European Standard
dd.mm.yyyy
*JIS
Japanese Industrial
Standard Christian Era
yyyy-mm-dd
Specificando questa text, la formattazione del campo dipende dall’eventuale EDTCDE/EDTWRD definito sullo stesso.
3.34.2 Sintassi TEXT con formattazione dell’output
In questo caso la sintassi è la seguente:
TEXT('<W><D>O=*EUR D=*TODAY S=/; M=Y</D></W>')


O = Formato originale (sintassi del valore numerico emesso dal programma RPG). E’ un parametro obbligatorio
e può assumere i seguenti valori:
Sintassi
Definizione
Formato
*MDY
Month/Day/Year
mmddyy
*DMY
Day/Month/Year
ddmmyy
*YMD
Year/Month/Day
yymmdd
*ISO
International Standards
Organization
yyyymmdd
*USA
IBM USA Standard
mmddyyyy
*EUR
IBM European Standard
ddmmyyyy
*JIS
Japanese Industrial
Standard Christian Era
yyyymmdd
D = Valore di default nel caso il campo non sia valorizzato. Se il parametro non è definito il campo verrà valorizzato
a blank. Può assumere i seguenti valori parametrici:
Sintassi
Definizione
*TODAY
Giorno corrente
*STRMONTH Primo giorno mese corrente
*ENDMONTH Ultimo giorno mese corrente
*STRYEAR
Primo giorno anno corrente
*ENDYEAR
Ultimo giorno anno corrente
A questi valori è poi possibile sommare/sottrarre un numero di giorni fisso: ad esempio *TODAY+7 consente
di specificare 7 giorni a partire da quello corrente.
Pagina 38 di 108
COMPILATORE WEBGATE – Manuale di programmazione

S = Separatore. Indica opzionalmente quale separatore utilizzare per formattare la data.

M = Obbligatorio. Specifica se la data è obbligtoria. Per default la data non è obbligatoria. Il valore M=Y definisce
la data obbligatoria.
3.34.2.1 Regole per la formattazione
La formattazione del valore di output si basa sulle seguenti regole:
1. l’ordine in cui posizionare giorno, mese e anno è definita nel parametro della configurazione di runtime, che accetta
esclusivamente i valori *DMY, *YMD, *MDY.
2.
La lunghezza a video del campo è esattamente quella definita per il campo, tenuto conto: di eventuali EDTCDE e
EDTWRD.
3.
La visualizzazione dell’anno con 2 o 4 cifre dipende dalla lunghezza del campo e dalla presenza o meno di un
separatore:
4.

Se il campo è lungo 6 l’anno viene visualizzato sempre a 2 cifre e l’eventuale separatore non viene
visualizzato;

Se il campo è lungo 8 e non è specificato il separatore l’anno viene visualizzato con 4 cifre; se invece è
definito il separatore l’anno viene visualizzato con 2 cifre;

Se il campo è lungo 10 l’anno viene sempre visualizzato con 4 cifre, a prescindere dalla definizione di un
separatore.
Se la text non specifica un valore per il separatore viene utilizzato quello eventualmente associato all’EDTCDE o
all’EDTWRD definiti per il campo.
3.34.2.2 Esempi di formattazione
Supponendo che nella Configurazione Runtime sia specificato il valore *DMY, che il valore del campo sia 31122007 (o
311207 se il campo è lungo 6) e che l’eventuale separatore sia /, ecco alcuni esempi:

Campo lungo 6 (con o senza separatore): 311207.

Campo lungo 8: 31122007 (senza separatore) 31/12/07 (con separatore).

Campo lungo 10: 31122007 (senza separatore) 31/12/2007 (con separatore).
3.35
Charts
3.35.1Informazioni Ge nerali
Webgate400 mette a disposizione una serie di oggetti swf (macromedia Flash) che consentono di incorporare grafici
all’interno di videate 5250.
Esistono svariati modelli di rappresentazione che consentono di visualizzare

Serie singole di dati

Serie Multiple

Serie multiple combinate
Esiste una funzione Charts Tutorial che mette a disposizione spiegazioni, sorgenti di esempio ed una gallery di tutti i model li
disponibili per la implementazione delle charts.
Questa funzione si accede partendo dal menu principale dell’utente WEBGATECVT, selezionando la funzione “Tutorial
Interattivo”.
L’implementazione di tali oggetti avviene inserendo il solito campo hidden nel formato video e valorizzando opportunamente
tale campo a cura del programma RPG.
Il campo deve contenere, separati da punto e virgola, il nome del modello da utilizzare ed il percorso (ifs) del file contene nte i
dati necessari per alimentare il modello.
Il flusso da gestire nel programma RPG per ottenere la visualizzazione è il seguente:
1.
Popolare una stringa con la sintassi XML adatta (vedere documentazione libreria CHARTS sul sito del produttore dei
grafici www.fusioncharts.com . Il supporto di tale linguaggio e’ solo a carico di FusionCharts)
2.
Scrivere tale stringa in forma di file sull’IFS dell’ iSeries utilizzando l’API “EB2IFS” (documentata sotto).
3.
Popolare il campo hidden con nome modello e percorso.
4.
Visualizzare il formato video.
Se tutto ciò pare troppo complesso, passare al punto Gestione semplificata C HARTS.
3.35.2Sintassi
DDS:
A
oppure:
Pagina 39 di 108
P0XSTRCH
100A
H
TEXT('<w>*chart l:04 c:03 h:23 w:110 1</W>')
COMPILATORE WEBGATE – Manuale di programmazione
A
A
HIWEBB
P0XSTRCH
256A H
520A
H
TEXT('<W>*chart HIWEBB </W>')
Legenda:
c (column)
Colonna in cui è situato il campo;
l (line)
Riga in cui è situato il campo (non necessaria dentro un SFL);
h (high)
altezza in RIGHE;
w (width)
larghezza COLONNE.
RPG:
EVAL P0XSTRCH=NomeModello;PercorsoDatiChart
E’ da notare che il browser cerca il file contenente i dati da visualizzare partendo dalla directory /webgate400. Quindi, il
percorso da scrivere nel campo hidden, dovrà avere questa form a: NomeModello;/temp/nomefile
3.35.3 API Coinvolte
Spedizione stringa a IFS
C*************************************************************************
C* Invio stringa a IFS
C*************************************************************************
C
RPUTIFS
BEGSR
C
C
EVAL
EBXPATHP='/webgate400/temp/'+E0XUNIDE+'.xml'
C
C
CALL
'EB2IFS'
C
C
C
C
C
PARM
PARM
PARM
'S'
EBXBUFFE
EBXPATHP
EBXCVTEB
32767
512
1
ENDSR

Il parametro EBXBUFFE è la stringa contenente la sintassi XML

Il parametro EBXPATHP contiene il nome del percorso su cui scrivere il file (scrivere in webgate400/temp come
nell’esempio se si vuole che i file generati siano automaticamente ripuliti dalla procedura di preavviso di
Webgate400).

Il parametro EBXCVTEB deve essere impostato a “S” per eseguire la conversione EBCDIC – ASCII.
Nel caso servisse generare un nome di file univoco, è disponibile la seguente routine, che genera un ID preciso diversificato al
millisecondo.
C
C
CALL
PARM

'EGETUNID'
*BLANK
E0XUNIDE
18
Il parametro E0XUNIDE contiene il valore da utilizzare come nome di file.
3.35.4 Gestione semplificata CHARTS
Webgate400 mette a disposizione un’API che permette di ottenere C HARTS in modo estremamente semplice, eliminando i
problemi relativi all’apprendimento della sintassi di ogni singolo modello e quelli relativi alla sintassi XML.
Tale API può essere utilizzata sia per ottenere i dati necessari per popolare il campo hidden che rappresenta il grafico
all’interno del video dell’utente, sia per visualizzare la C HART vera e propria in modo autonomo.
Nella funzione “Tutorial Interattivo”, nella sezione che riguarda le C HARTS, è disponibile il sorgente (DSPF e RPG) del
programma stesso che dimostra come utilizzare questa API in entrambe i modi citati.
Sempre all’ interno del sorgente, è disponibile la documentazione per l’utilizzo.
Pagina 40 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Nome API
WGCHAHANR
Libreria
WEBGATE400
3.36
Font
<W><F>ARIAL;UBI;10;W:20;H:2</F></W>
<W><F>F:HFONT</F></W>
Sono gestiti i seguenti parametri (nell’ordine specificato e separati dal carattere “;”, anche se una sezione è vuota):

Nome del font

U=underline; I=italic; B=Bold (si possono specificare solo le voci che interessano o nessuna )

Dimensione font (per default la-Dimensione font (per default la dimensione corrente della schermata)

Altezza e larghezza del campo, espresse in numero di colonne e righe .
E’ possibile non impostare la dimensione del font: vie ne mantenuta quella definita a livello di interfaccia. Analogamente, è
possibile non specificare i parametri W e H.
I parametri della text possono essere specificati direttamente nella text, oppure in un campo hidden. L’informazione non è
gestita in modo dinamico, nel senso che viene visualizzata l’impostazione presente alla prima emissione del campo.
L’effetto grafico è il seguente:
N.B: In fase di progettazione della videata è necessario valutare l’occupazione finale del campo; l’interfaccia in questo senso
non esegue nessun controllo. La text font non è applicabile a campi di subfile.
3.37
Drag &Drop
Consente di gestire copia incolla con la operatività tipica di Drag & Drop. I valori contenuti nei campi possono essere
trascinati in altri campi senza alcun intervento a livello di codice o command service.
E’ possibile intercettare l’evento e capire che l’informazione è arrivata da un Drag (anche selezioni multiple e da subfile).
Si parte dai pulsanti….
Si può disabilitare su un singolo file video mediante click del tasto destro:
Pagina 41 di 108
COMPILATORE WEBGATE – Manuale di programmazione
E’ possibile abbinare al campo ricevitore dell’operazione di Drop la text:
<w>*d</w>
In questo modo l’operazione Drag trascina (anche per selezioni multiple) sia il nome del campo “draggato” che il suo valore
oltre che i riferimenti del database che contiene i dati presenti nel video. I valori che vengono draggati sono, nell’ordine:

Company

K18 (=Id del processo)

P18 (=Id del lavoro)

libreria database temporaneo

nome database temporaneo

libreria file video

nome file video

formato record

numero/i relativo di record (se il drag viene fatto su una griglia)

elenco di 10 dei campi draggati e del loro valore

elenco di 100 numeri relativi di record (se il drag è stato eseguito da più righe di subfile)
E’ stata creata l’API WEBGATE400/WGDEDR che permette di estrarre dal buffer le informazioni descritte in forma di
parametri; ecco l’elenco:
Se il drag è stato effettuato da un subfile, è possibile testare il valore del parametro P0SSNRR (opzionale) che ritorna i
numeri relativi di record delle righe da cui è stato eseguito il drag; in questo caso la schiera con i valori dei campi non è
significativa: il valore è reperibile eseguendo una CHAIN sul subfile.
Specificando la text:
<w>*df</w>
Nel campo è invece possibile draggare files da altre applicazioni Windows (Esplora Risorse, client di posta trascinando sia
messaggi sia allegati, …). Il valore draggato è un percorso temporaneo nell’IFS in cui i files sono stati trasferiti. In questo
caso il drag descritto in precedenza non è invece abilitato.
Specificando la text:
<w>*db</w>
il campo è abilitato a ricevere entrambi i tipi di drop descritti: il valore draggato dipende dal tipo di drop eseguito.
§b§
3.38
Campi a valorizzazione remota
Sono campi hidden o di output che vengono valorizzati automaticamente con il contenuto di un file presente in una cartella
PC , in seguito ad un’azione specifica.
La root della cartella da monitorare è fissa; la si ricava dal registro di configurazione di Windows leggendo il valore di una di
queste chiavi (in base al tipo di sistema operativo e di installazione Webgate):
Sistemi 64 bit
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Webgate\Main Application Data Directory
Pagina 42 di 108
COMPILATORE WEBGATE – Manuale di programmazione
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Edm srl\Main Application Data Directory
Sistemi 32 bit
HKEY_LOCAL_MACHINE\SOFTWARE\Webgate\Main Application Data Directory
HKEY_LOCAL_MACHINE\SOFTWARE\Edm srl\Main Application Data Directory
La lettura dei file avviene con periodicità specificata nella definizione del campo.
A lettura avvenuta, il programma simula un Enter.
Sono definiti dalla text:
<w><b>F:NomeCampoHidden N:Timer P:Prefisso</b></w>
Il campo hidden di appoggio (F:) deve essere presente nello stesso formato e contiene la directory da monitorare; se non è
valorizzato assume come default “COMSPY”
Il timer (N:), espresso in secondi, definisce la periodicità del controllo del contenuto della cartella ed è un dato obbligat orio.
Il prefisso (P:) è il prefisso del nome del file da aprire. Se non specificato, tutti i file della cartella origine sono considerati
validi.
§e§
3.39
Extended Button

Possono avere un’icona (.WDF) e un testo

Possono avere una spia

Possono “ribattere” tasti funzione


Sono “Droppabili”
Sono sensibili ai DSPATR Protect (PR) e Not Display” (ND)
Ecco la sintyassi della Text:
<eb> W:22 H:1 F1:XHCS6 F2:XDCS6 </eb>
F1 = campo hidden contenente sintassi visualizzazione e comandi (ICONA.WDF:TESTO:C Fxx)
F2 = campo hidden ricevente stringa di DROP interpretabile con API WGDEDR
I nuovi pulsanti devono essere campi visibili. Nella text viene specificata la dimensione a video (che può differire da quella del
campo originale). Il valore del campo (che definisce l’immagine da usare e il testo) può essere riportato nel campo stesso o in
un campo hidden definito nella text. La sintassi del valore è la seguente:
ICONA.WDF:TESTO:CFxx.
C Fxx è il tasto funzione che deve essere simulato al click: se non è specificato, viene simulato un enter. Al click il bottone
viene impostato come campo corrente. Al bottone può essere associata anche la text che identifica i campi ricevitori del drop:
in questo caso nella text del bottone va indicato il nome di un secondo campo hidden che riceverà il valore del drop.
Se il campo cui è associata la text ha abbinato l’attributo BLINK (DSPATR(BL)), nel bottone comparirà una spia verde se il
blink non è attivo e rossa se il blink è attivo (grigia se il campo è protetto).
In caso di utilizzo di icone WDF, la dimensione viene calcolata automaticamente: viene scelta l’icona più grande che può
essere disegnata tra le dimensioni disponibili (16/24/32/48/256). Se la larghezza del bottone non consente la visualizzazione
di almeno 2 caratteri oltre l’icona, l’icona viene centrata e il testo non viene disegnato.
Pagina 43 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.40
File Manager e File Chooser
Webgate File Manager è un controllo introdotto nell’applet Webgate400 per consentire ai programmatori RPG di fornire ai
propri utenti una modalità per navigare il file system di iSeries, di effettuare l’upload o il download dei files, di consultare,
modificare o eliminare gli oggetti dell’IFS o del PC.
Il controllo può essere creato in tre modalità differenti a seconda dello scopo per il quale viene incluso nella schermata:
-
Estesa: consente la navigazione del file system del PC locale o l’IFS
-
Compatta: controllo edit con pulsante per attivare la navigazione per selezione files
-
Selezione: come la modalità estesa ma ritorna (se richiesto) il percorso del file o directory selezionata
Di seguito alcune immagini del componente e di come si presenta in alcune modalità di funzionamento.
Visualizzazione modalità chooser (nessun percorso):
Visualizzazione modalità chooser remoto (selezione file, IFS, icone piccole):
Visualizzazione modalità chooser remoto (percorso selezionato):
Visualizzazione modalità estesa (disco locale, icone piccole):
La modalità di selezione è esattamente come la modalità estesa per cui è stata omessa l’immagine. Oltre alla visualizzazione
con icone piccole è possibile visualizzare gli elementi del file system con icone grandi o con la visualizzazione dettagli che
affianca ad ogni elemento informazioni aggiuntive come la data di creazione e la dimensione del file.
3.40.1Sintassi
La sintassi può essere specificata direttamente nella text o facendo riferimento a un campo hidden valorizzato a programma
con l’intera sintassi.
Pagina 44 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Esempio:
DDS:
A
P0XSTRCH
100A
H
TEXT('<w>*FB l:04 c:03 h:23 w:110</W>')
Legenda:
c (column)
Colonna in cui è situato il campo;
l (line)
Riga in cui è situato il campo (non necessaria dentro un SFL);
h (height)
altezza in RIGHE;
w (width)
larghezza COLONNE;
oppure:
A
A
HIFSEST
IFSEST
256A
520A
H
H
TEXT('<W>*FB HIFSEST</W>')
ELENCO PARAMETRI DISPONIBILI E DESCRIZIONE:
Tipo di browser (K:)

L (Locale): Il browser locale consente di navigare il file system della macchina su cui sta girando l’applet
Webgate400.

R (Remoto): Il browser remoto consente di navigare il file system IFS del server su cui risiede l’istanza Webgate400
alla quale siamo collegati.

U (Uploader): Il browser parte in modalità selezione files locale. Il file che viene selezionato viene caricato
automaticamente su IFS dal momento in cui si conferma la chiusura.
Nella modalità di visualizzazione compatta (chooser) è possibile utilizzare in combinazione sia remoto che locale.
Tipo di visualizzazione (V:)
Specifica in che modo il browser deve essere inglobato:

C (Compatta): in modalità file chooser,

E (Estesa): in modalità browser,

S (Selezione): in modalità selezione file estesa.
Specifica altresì la modalità di visualizzazione delle icone all’interno del controllo browser:

S: icone piccole,

I: icone grandi,

L: lista,

D: dettagli.
Il default è CL.
La specifica del tipo di visualizzazione del browser influisce anche sul suo comportamento. In particolare se viene utilizzat a
una visualizzazione compatta (opzioni C , CS, CI, C L, CD) verrà creato un componente per la selezione di files o d irectory, se
invece viene utilizzata una visualizzazione estesa (opzioni E, ES, EI, EL, ED) verrà creato un componente per la navigazione
del file system.
Se utilizziamo la modalità selezione vista estesa (opzioni S, SS, SI, SL, SD) verrà creato un control lo simile alla modalità di
visualizzazione estesa ma che consente la selezione di files e/o directory e ne ritorna il percorso.
Output (O:)
Specifica il tipo di oggetto da mostrare nel file browser:

D: directory,

F: file.
Il default è FD.
Return (R:)
Specifica se nella modalità chooser il controllo deve consentire la selezione di:

F: file,

D: directory).
Il default è F.
Gestione dei permessi (P:)
Azioni che è possibile eseguire sui files. La gestione dei permessi utilizzata dal componente non è in alcun modo legata alle
autorizzazioni utente specificate sul file system.
Il modello dei permessi prevede i seguenti privilegi:
Pagina 45 di 108
COMPILATORE WEBGATE – Manuale di programmazione

L (List): capacità di vedere il contenuto dei percorsi (necessaria per navigare);

R (Read): capacità di vedere il contenuto dei files (necessaria per aprire i documenti e per effettuare un download);

W (Write): capacità di modificare il contenuto delle directory (necessaria per la modifica dei files e la creazione di
nuove directory);

X (Execute): non utilizzato;

D(Delete): capacità di eliminare files e directory (eliminazione completa, non passa da cestini o altri sistemi di
backup)
Il default è R.
Nota: senza il parametro L, il browser non naviga e non si vedono né files né directories.
Directory di partenza (I:)
Percorso iniziale: specifica a quale percorso si dovrà aprire il browser una volta mostrato a video; (default: ‘/webgate400’ per
il browser remoto, il desktop dell’utente per il browser locale).
Directory Base (B:)
Percorso base: specifica il livello minimo sopra il quale all’utilizzatore del browser non è concesso accedere (la root per la
sessione). (default nessuno);
Riepilogo parametri:
Parametro
Descrizione
Valori
Default
K:
Kind
L, R, U
L
V:
View
CS, CI, CL, CD,
CL
ES, EI, EL, ED,
SS, SI, SL, SD
O:
Output
F, D, FD
FD
R:
Return
F
P:
Permissions
F, D
L, R, W, X, D, RW, RX, WX, RW
I:
Initial directory
B:
Base directory
Pagina 46 di 108
R
COMPILATORE WEBGATE – Manuale di programmazione
3.41
Menu a piastrelle
E’ possibile creare menu con icone flat simili al menu start di Windows 8 e Windows 10.
Ne è un esempio il menu di partenza del profilo WEBGATECVT:
Per questioni di chiarezza e di spazio nella schermata ovviamente è consigliato trasformare menu relativamente brevi.
Tutta la struttura si basa su un unico campo hidden al quale vengono associate la posizione e la dimensione dell’intero menu:
<W><UIT> L:xxx C:xxx W:xxx H:xxx </UIT></W>
Per esempio:
A
UIT
4096A H
A
TEXT('<W><UIT> L:02 C:02 H:28E W:132E </UIT></W>')
Il campo hidden viene valorizzato a programma con la sintassi complessa che contiene tutti i componenti e i loro attributi.
Il menu è composto da due diversi tipi di oggetti:

Piastrelle: sono bottoni ai quali viene associato un testo, un’icona e un comando da eseguire al click.
oppure
oppure
Pagina 47 di 108
COMPILATORE WEBGATE – Manuale di programmazione

Gruppi: sono raggruppamenti di piastrelle ai quali è possibile associare un titolo.
N.B: Una piastrella deve obbligatoriamente trovarsi all’interno di un gruppo.
3.41.1Programma di gene razione
Vista la complessità della sintassi alla base di questa struttura, è stato creato un programma di generazione. Questo
programma è richiamabile tramite l’eleborato NM oppure dal menu “Applicazioni Ambiente Webgate400” (EX DD),
“Costruzione sintassi campo a piastrelle” :
Questa funzione crea la sintassi complessa partendo dalla configurazione dei singoli componenti e dei loro attributi. Per
comodità è stato scelto di memorizzare la sintassi in un file messaggi: questa non è una scelta forzata e l’utente può decide re
memorizzare diversamente la sintassi.
La manutenzione è strutturata in questo modo:

in testata si configurano i parametri e le azioni generali dell’oggetto;

sulla sinistra sono presenti due tab per la configurazione di gruppi e piastrelle;

sulla destra sono presenti tre tabs di supporto operativo:
o
anteprima del menu: viene aggiornata ogni volta che viene premuto il tasto “Crea Sintassi” ed è la
rappresentazione della sintassi contenuta nella tab “Sintassi complessa”;
o
sintassi complessa: viene generata dinamicamente in base alla configurazione di gruppi e piastrelle;
o
ricerca WDF: visualizza l’elenco delle icone flat disponibili.
Sfondo
All’interno di questa frame è possibile impostare lo sfondo dell’intero campo:

un colore selezionabile tra quelli della combo;
Pagina 48 di 108
COMPILATORE WEBGATE – Manuale di programmazione

un percorso IFS di un’immagine
N.B: i primi colori elencati nella combo list, che iniziano con la lettera “W”, sono quelli più ricorrenti nelle videate Windows 8 e
sono stati utilizzati nella configurazione della schermata iniziale di WEBGATECVT.
Dimensione Piastrelle
Le piastrelle vengono create con una dimensione standard di 120 pixel: è possibile modificare questa dimensione in base alla
risoluzione dello schermo, impostando questo valore.
Dati Messaggio
La sintassi complessa può essere memorizzata in un file messaggi. Questi sono i riferimenti a tale messaggio.
Zoom
E’ possibile visualizzare un’anteprima del campo con le dimensioni che avrà nella schermata dove verrà collocato, impostando
la posizione e la dimensione effettiva e clikkando il bottone ZOOM.
Sample
Sono disponibili tre sintassi di esempio che mettono in evidenza le potenzialità dello strumento e le varie possibilità di
configurazione.
Azioni

Il bottone “Crea Sintassi” (
) costruisce la sintassi complessa partendo dai componenti;

il bottone “Scomponi Sintassi” (

il bottone “Ricarica” (

il bottone “Pulisci Sintassi” (

il bottone “Fine” (

il bottone “Aggiorna Messaggio” (

il bottone “Nuovo” (
) esegue l’operazione inversa;
) esplode la sintassi presente nel MsgId;
) inizializza la sintassi;
) esce dal programma senza salvare;
) memorizza la sintassi creata nel messaggio desiderato;
) permette di aggiungere un nuovo gruppo o una nuova piastrella.
Gruppi
Una volta impostati i dati di testata, è necessario creare almeno un gruppo al quale apparterranno le piastrelle.
Ecco gli attributi di un gruppo:

progressivo: serve per attribuire un ordine di visualizzazione (obbligatorio);

colore testo (non obbligatorio);

colore sfondo (non obbligatorio);

allineamento (orizzontale/verticale) delle piastrelle contenute (non obbligatorio); l’allineamento di default è
verticale;

testo (non obbligatorio);

link:è possibile associare un’azione al click sul testo del gruppo (non obbligatorio).
Un nuovo gruppo viene visualizzato nel momento in cui contiene almeno una piastrella.
Piastrelle
Ecco gli attributi di una piastrella:

progressivo: serve per attribuire un ordine di visualizzazione all’interno dello stresso gruppo (obbligatorio);

sequenza: viene impostata (in abbinamento al campo timer) se si vuole dare un effetto di animazione alla piastrella
e assegna una sequenza all’immagine scelta (non obbligatorio);

gruppo di appartenenza: indica il progressivo del gruppo a cui appartiene la piastrella (obbligatorio);

dimensione: è possibile scegliere fra tre diversi formati: grande, media, piccola; la dimensio ne di default è quella
media (non obbligatorio); la dimensione grande è utilizzabile solo in gruppi allineati in verticale;

colore testo (non obbligatorio);

colore sfondo (non obbligatorio);

testo piccolo bottom: è il testo (piccolo) che viene visualizzato nella piastrella in basso (non obbligatorio);
Pagina 49 di 108
COMPILATORE WEBGATE – Manuale di programmazione

testo grande top: è il testo (grande) che viene visualizzato nella piastrella in alto (non obbligatorio)

testo piccolo top: è il testo (piccolo) che viene visualizzato nella piastrella in alto (non obbliga torio)

link: indica l’azione da eseguire al click sulla piastrella. Per le call deve essere rispettata la seguente sintassi:
EXEC://CALL xxx
Ecco alcuni esempi:
o
o
/webgate400/Tutorial/Manual/Webgate400ConverterTutorialEN-Id(20090917.1031).pdf
EXEC://CALL PGM(WGLSMAN)
o
www.google.it
il campo non è obbligatorio

immagine: indicare il percorso IFS di un’immagine da visualizzare o il nome della WDF. Per le WDF è disponibile
l’elenco nella tab “ricerca WDF” dal quale è possibile trascinare l’icona selezionata nel subfile o sull’immagine o sulla
descrizione (non obbligatorio); i vari testi associati sono visualizzati solo se la piastrella ha abbinata un’icona o
un’immagine;

adatta immagine: può assumere i valori TRUE o FALSE e permette di adattare l’immagine allo spazio disponibile
(non obbligatorio);

timer: è il tempo di esposizione delle immagini abbinate con diversa sequenza alla stessa piastrella (non
obbligatorio);
Pagina 50 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.41.2
Api WGUITC
Questa api permette di modificare a programma la sintassi complessa: questo consente, per esempio, di rendere dinamico il
testo di una piastrella aggiornandolo in base all’elaborazione del programma.
CAMPO
LUNGHEZZA
P0UITC
5096
DEC
I/O
DESCRIZIONE
I-O
VALORE UIT
P0GCDL
3
I
Codic e gruppo della piastrella
P0SEQ
3
I
Sequenza piastrella
P0ATR
512
I
Attributo
P0ACT
1
I
Azione:
 1 = Cancella gruppo
 2 = Modifica testo gruppo
 3 = Modifica link gruppo
 A = Modifica colore sfondo gruppo
 C = Nuovo gruppo
 4 = Cancella piastrella
 5 = Modifica link piastrella
 6 = Modifica immagine piastrella
 7 = Modifica testo 1
 8 = Modifica testo 2
 9 = Modifica testo 3
 B = Modifica colore sfondo piastrella
 D = Nuova piastrella
 E = Modifica dimensione piastrella
Note:

Il parametro P0GCDL (= codice gruppo) è obbligatorio tranne per P0ACT=’C’ (= inserimento nuovo gruppo).

Nel caso di inserimento di un nuovo gruppo (P0ACT=”C”) o di una nuova piastrella (P0ACT=”D”), i parametri del
nuovo oggetto devono essere passati in P0ATR.

Se la cancellazione di una piastrella comporta la formazione di un gruppo vuoto, questo viene a sua volta cancellato.
Pagina 51 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.42
Riepilogo TEXT
Tutte le text devono essere racchiuse dalle tag <W>…</W>
Nr
TEXT
DESCRIZIONE
1
*title
Titolo
2
*company
Azienda
3
*status
Tipo operazione
4
*pgm
Display info
5
*cpyright
Copyright
6
*fkeyvar
Tasto funzionale variabile
7
*msgvar
Messaggio di errore variabile
8
*optvar
Opzioni subfile variabili
9
*framevar
Frame variabile
10
*ignore
Il campo viene ignorato e in grafica non esiste
11
*hide
Abbinata a un campo hidden fa in modo che tale campo non venga passato
all’Applet, rendendo l’operazione di emissione del subfile più rapida.
12
*notitle
Abbinata a un formato, permette di ignorare il riconoscimento automatico
del titolo impostato nella configurazione Layout del progetto (nel Converter
Control).
13
*nocomp
Abbinata a un formato, permette di ignorare il riconoscimento automatico
della company impostato nella configurazione Layout del progetto (nel
Converter Control).
14
*nopgm
Abbinata a un formato, permette di ignorare il riconoscimento automatico
del “display info” impostato nella configurazione Layout del progetto (nel
Converter Control).
15
*nostatus
Abbinata a un formato, permette di ignorare il riconoscimento automatico
dello status impostato nella configurazione Layout del progetto (nel
Converter Control).
16
*nofkey
Abbinata a un formato, permette di ignorare il riconoscimento automatico
impostato nella configurazione layout del progetto (nel Converter Control).e
considerare le ultime righe del display, normalmente destinate ai tasti
funzionali, come tutte le altre righe del display.
17
<h>Header</h>
Legata a un campo di subfile diventa l'intestazione di colonna di tale campo
18
<opt>*=Selezione;4=Annulla</opt>
Legata al campo “opzioni” di subfile, il testo viene aggiunto alle opzioni del
subfile
19
*SCROLL L:7 C :50 H:1 W:83
Banner a linea 7, colonna 50, alto 1 e lungo 83
20
*link v:XXXPALNK
Servono per eseguire un programma, o per visualizzare un oggetto, o per
visualizzare un SQL, o per richiamare un URL.
21
*img c:131 w:9 h:9
Immagine (in un subfile) a colonna 131, alta 9 e lunga 9. Questa immagine
può essere un’icona WDF, o un’immagine JPG o SWF, o un grafico.
22
*img c:132 w:8 h:8 n:5
Spazio dentro a un subfile destinato a 5 text-icon
23
*fit
Si usa per aggiungere l'attributo di visualizzazione DSPATR(FIT) alle
immagini: adatta alla dimensione del campo
24
*TN
Si usa per aggiungere l'attributo di visualizzazione DSPATR(TN): l'immagine
viene visualizzata con una dimensione fissa 100x150. N.B: è utilizzato solo
nei subfile
25
*bmg l:04 c:39 w:16 h:16
E’ un’immagine sulla quale è possibile cliccare e generare un’azione.
26
*put:char t:testo a:*FKEY i:texticon5
Tramite il tasto destro del mouse, richiamando la funzione definita nel testo,
viene impostato il carattere ‘char’ nel campo a cui è associata e simulato un
invio.
27
<cb>t:Non letti c:33 s:11 on:S
off:N</cb>
Crea una check box partendo da una variabile che può assumere 2 valori
alternativi. Versione estesa con testo della costante: il campo viene checcato
anche cliccando sulla costante.
28
<cb>ON:s</cb>
Crea una check box partendo da una variabile che può assumere 2 valori
alternativi. Versione sintetica: il campo viene checcato solo cliccando sul
quadratino. Il valore restituito per il campo non checcato è blank.
29
<C B>CR:CONST01 C:110 ON:S
OFF:N</CB>
Crea una check box partendo da una variabile che può assumere 2 valori
alternativi. E’ equivalente alla versione estesa, ma, invece di impostare il
testo, si fa riferimento a una costante già presente a video.
30
<C L>S:S F:CLIV V:E W:18</C L>
Combo radio
Pagina 52 di 108
COMPILATORE WEBGATE – Manuale di programmazione
31
<C L>F:CLISTMEV V:N I:N L:2
W:18</CL>
Combo menu
32
<C L>F:CLIV V:T I:N L:2 W:18</C L>
Combo check
33
<C L>S:S F:CLIV V:V I:S W:18</CL>
Combo Input
34
*DMI
Mascheratura dinamica: calcola il numero di caratteri disponibili per l’input
da tastiera in base al numero di byte del campo stesso contrassegnati con il
valore esadecimale 1F.
35
<MI>MsgFile/MsgId</MI>
Abbinata a un campo Hidden, permette di associargli un id di messaggio di
un message file direttamente in fase di definizione del display file. Emula la
keyword MSGID che dal 5250 non è abbinabile ai campi hidden: il
messaggio viene reperito dinamicamente a runtime in base al sua attuale
valore
36
<MC >MsgFile/MsgId</MC>
Abbinata a un campo Hidden, permette di associargli un id di messaggio di
un message file direttamente in fase di definizione del display file. Emula la
keyword MSGCON che dal 5250 non è abbinabile ai campi hidden:
l’informazione risulta dunque statica.
37
<MT>MsgFile/MsgId</MT>
Permette di inserire una text lunga in un msgid
38
*WB L:07 C:30 W:120 H:30
Web Browser: abbinata a un campo (hidden o visualizzato), permette di
visualizzare una pagina html il cui valore viene impostato a programma o
tramite MSGID.
39
*FB........
File Manager e file Chooser (Vedere paragrafo)
40
<D>P=*ISO </d>
Campi data: consente di identificare i campi che riportano una data.
<D>O=*ISO </d>
Fare riferimento al paragrafo Date Handler.per i dettagli sull’utilizzo.
<F>F:HFONT</F>
Permette di modificare il font del campo; il valore è passato tramite il campo
introdotto dalla dicitura “F:” o direttamente nella text.
41
oppure
<F>ARIAL;UBI;10;W:20;H:2</F>
42
*d
Permette di definire un campo come ricevitore di Drag & Drop
43
<eb> W:22 H:1 F1:XHCS6 F2:XDCS6
</eb>
<b>F:NomeCampoHidden N:Timer
P:Prefisso</b>
Extended Button
45
<A>C/R</A>
46
<sx>xxxx</sx>
Abbinata a una costante o a un campo di output permette di allineare i
caratteri al centro (C) o a destra (R)
47
<UIT> L:xxx C:xxx W:xxx H:xxx
</UIT>
48
<ps>CF:xx S:x
F:NOME_CAMPO</ps>
44
Sono campi hidden o di output che vengono valorizzati automaticamente con
il contenuto di un file presente in una cartella PC , in seguito ad un’azione
specifica.
Abbinata a un campo di I/O permette di definire l’occupazione a video del
campo distinguendola dalla dimensione.
Abbinata a un campo hidden e opportunamente valorizzata a programma per
mette di mantenere un menu a piastrelle
Identifica un campo il cui valore è il percorso (completo di nome file , i
formati supportati sono PNG, JPG, GIF, BMP) in cui salvare il Print Screen
dell’immagine corrente del client, compresa di ribbon.
CF:xx: xx identifica il tasto funzione alla cui attivazione viene eseguito il
salvataggio. Può assumere i valori 0 (enter), 1-24, 25 (pagina giù), 26
(pagina su). Il tasto funzione deve essere attivo.
S:x: x definisce la regola di sovrascrittura delle immagini, e assume i valori
S (richiesta all’utente se sovrascrivere), N (non sovrascrivere mai). Se il
parametro S non è specificato l’immagine vienbe sempre sovrascritta senza
segnalazione
F:NOME_CAMPO: identifica il nome di un campo il cui valore è composto
dai parametri C F e S , in modo che l’interpretazione della text sia dinamica.
Se si specifica il parametro F non vanno specificati C F e S.
Pagina 53 di 108
COMPILATORE WEBGATE – Manuale di programmazione
4 ATTRIBUTI DI FORMATO
4.1 Informazioni Generali
Le modalità di emissione e di comportamento di un formato video possono essere modificate grazie alla presenza dei
cosiddetti attributi di formato. Tali attributi sono identificabili da un codic e numerico e da una regola di comportamento.
Questi attributi sono trasferibili al formato tramite DDS, database (WGATR) e programma. Per fare ciò, è necessario definire
nella DDS uno o più campi HIDDEN con la funzione di veicolare gli attributi e di conseguenza condizionare le modalità di
emissione di un formato.
Questi campi vengono identificati attraverso l’applicazione di una TEXT nel seguente modo:
A
HFMT0001
100A
H
TEXT(‘<w>*fmtatr</w>’)
La TEXT deve contenere la parola chiave “*fmtatr” (*FMTATR). L’attributo può essere impostato sia a programma nel campo
HIDDEN, sia nella DDS del display file, con la seguente sintassi:
A
HFMT0001
100A
H
TEXT('<w>*fmtatr2178=R();2191=R()</w>')
Dove 2178 e 2191 sono due codici di identificazione di altrettanti attributi video, mentre R() è la regola da applicare agli
stessi.
La regola, o valore dell’attributo, determina un particolare comportamento a video dell’oggetto (formato) interessato.
I campi utilizzati per veicolare gli attributi possono essere valorizzati anche a tempo di esecuzione (per esempio nell’INZSR se
l’attributo specificato necessita di un valore di default).
Nel caso di valorizzazione a run-time è sufficiente indicare il codice dell’attributo e la regola da applicare (Es.2191=R()).
Non tutti gli attributi a video possono essere cambiati a tempo di esecuzione e per alcuni è obbligatorio compilare una text
completa del valore di default.
In seguito viene presentata la tabella degli attributi di formato attualmente disponibili.
Pagina 54 di 108
COMPILATORE WEBGATE – Manuale di programmazione
4.2 Riepilogo FMTATR
Cod
Descrizione
Din Default
am obblig.
Sintassi
2178 Abilita/disabilita la riga header nella
visualizzazione di una tabella subfile.
S
N
2178=R(0) disabilita visualizzazione
2191 Abilita/disabilita la colonna header nella
visualizzazione di una tabella subfile.
S
N
2192 Adatta la dimensione complessiva della
tabella alle righe/colonne presenti in modo
da evitare l’uscita delle scroll-bars
N
N
2193 Abilita l’espansione verticale di un subfile.
N
2178=R(1) abilita visualizzazione (default)
2191=R(0) disabilita visualizzazione
2191=R(1) abilita visualizzazione (default)
2192=R(0) disabilita
2192=R(1) abilita (default)
N
2193=R(0) disabilita espansione (default nelle
windows)
2193=R(1) abilita espansione (default a schermo
intero))
2208 Abilita l’espansione orizzontale di un subfile
N
N
2195 Disabilita il posizionamento del cursore sui
campi protetti (PR) in una tabella subfile.
S
N
2303 Permette di personalizzare il numero di
righe (diverso da 100) di subfile che
l’Applet emette a ogni operazione di roll.
Aumentando il valore, l’Applet continua a
scaricare record fino a quando raggiunge il
valore specificato nell'attributo:
l’operazione può essere lenta e per questo
è preferibile impostare la variabile
WGSFLPGL (o WGSFPL – 4 numerico).
S
N
2208=R(0) disabilita l’espansione
2208=R(1) abilita l’espansione
2195=R(0) posizionamento abilitato (default)
2195=R(1) posizionamento disabilitato
2313 Disabilita colore alternato.
2303=R(nr)
2313=R(1) colore alternato attivo
2313=R(0) colore alternato spento
2314 Forza visualizzazione su più righe.
2315 Abilita il posizionamento del cursore
2314=R(1) multiriga abilitato
2314=R(0) monolinea
S
N
all’interno di un subfile tramite le variabili
“riga” (WGSCSR – 7 numerico) e “campo”
(WGSCSF - 10 alfanumerico). Se abilitato,
automaticamente vengono ripassati al
video i valori ricevuti; è possibile forzare a
programma valori diversi.
2315=R(1) abilita posizionamento
2315=R(0) disabilita posizionamento (default)
(In lavorazione)
2320 Abilita intestazioni subfile allineate ai campi
N
0602 Lista dei campi di ordinamento di una
tabella. Tale lista viene usata per riordinare
a video i record disponibili.
S
2320=R(0) intestazioni centrate (default)
2320=R(1) Intestazioni allineate ai campi
L’ordinamento per default è di tipo
discendente.
N
Es.1. 0602=R(XXXDSTAT;XXXDSANA;)
Es.2. 0602=R(XXXDSANA;XXXICODE;)
Es.3. 0602=R(XXXDSTAT;INCDAEVN;XXXDSANA;);
E’ importante la presenza dei punti e virgola di
separazione
Per invertire il senso di ordinamento:
Es.1. 0602=R(XXXDSTAT:1;XXXDSANA:1;)
Pagina 55 di 108
COMPILATORE WEBGATE – Manuale di programmazione
0603 Utilizzato per definire le gerarchie
dinamiche. Lista dei campi di
raggruppamento in una tabella. Tale lista
viene usata per raggruppare a video i
record disponibili ed ottenere una
visualizzazione “gerarchizzata”, con
elementi di collassamento ed espansione.
Es.1. 0603=R(XXXDSTAT;XXXDSANA;C :1;);
Es.2. 0603=R(XXXDSANA;);
Es.3. 0603=R(XXXDSTAT;INCDAEVN;C:2;);
L’ultima parte della sintassi definisce il livello minimo di
collassamento in visualizzazione
Necessita della presenza di campi di
ordinamento.
C:0 = collassa al livello 0 (tutto chiuso)
I campi indicati devono essere parte di, o
tutti, quelli di ordinamento.
C:1 = collassa al livello 1
C:2 = collassa al livello 2
E’ possibile concatenare due campi in un
unico livello di raggruppamento
Per concatenare due campi in un unico livello di
raggruppamento la sintassi è:
NB Quando è attivata questa funzione, il
client scarica automaticamente tutto il
contenuto del subfile caricato dal
programma RPG. In effetti, il client testa il
numero di records già scaricati ed esegue
un’altro scaricamento fino a che non è stato
raggiuto il numero di record presenti nel
subfile.
0604 Utilizzato per definire le gerarchie
statiche. Nome del campo di livello in una
tabella subfile “gerarchizzata”, in cui la
logica di riempimento del subfile sia già in
grado di stabilire il livello di gerarchia tra i
record esposti (es. distinta base). Il campo
di livello può essere numerico o alfa, ma
può contenere solo valori compresi tra 0 e
9 oppure tra ‘0’ e ‘9’.
Es.1. 0603=R(XXXDSTAT+XXXDSANA;);
Es.2. 0603=R(XXXDSTAT+XXXDSANA;C .1;);
S
N
Es.1. 0604=R(TLEVEL);
Es.2. 0604=R(TLEVEL;C:2;);
Es.3. 0604=R(TLEVEL;C:1;S:TSTATUS)
L’ultima parte della sintassi definisce il livello minimo di
collassamento in visualizzazione
C:0 = collassa al livello 0 (tutto chiuso)
C:1 = collassa al livello 1
C:2 = collassa al livello 2
Il campo TSTATUS (che come il campo TLEVEL deve
essere definito nel display file) specifica lo stato di
collassamento degli elementi visualizzati. I valori
impostabili per questo campo sono i seguenti :
0 La gestione è demandata al client. Questo fino al
successivo caricamento del subfile, memorizzerà lo stato
di ogni singolo elemento.
1 L’elemento deve presentarsi Chiuso.
2 L’elemento deve presentarsi Aperto
Se il campo TSTATUS non viene specificato il subfile
viene visualizzato ad ogni emissione come specificato
dal parametro C:
0605 Preme ENTER automaticamente sul display
corrente dopo nnn secondi.
S
0607 Campi totali e di riepilogo
S
S
0608 Funzioni di emissione
S
S
0609 Abilita la funzione per cui, in un subfile
gerarchizzato in modalità statica,
immettendo un’opzione su un record
collassato, essa si propaga anche ai record
successivi di livello superiore.
Pagina 56 di 108
S
0605=R(005) Preme ENTER dopo 5 Secondi
0605=R(999) Preme ENTER immediatamente
F=Formato: R=solo Riepiloghi D=Dettaglio
NC =Numero colonna: colonna da utilizzare per
emissione in caso di visualizzazione di valori singoli.
0609=R(0) disabilita la funzione (default)
0609=R(1) la funzione
COMPILATORE WEBGATE – Manuale di programmazione
5 GESTIONE SUBFILE
5.1 Riconoscimento subfile
Presentiamo di seguito le regole su cui si basa il compilatore Webgate per riconoscere un subfile e le parti che lo descrivono.
5.1.1 Riconoscimento delle intestazioni colonna
Il compilatore Webgate riconosce le intestazioni delle colonne del sub-file in questo modo:

Un subfile multi-riga viene trasformato in un subfile con una sola riga contenete tutti i campi.

L’intestazione di un subfile può occupare fino a quattro righe precedenti la prima del subfile. Il video viene letto
partendo dalla riga precedente la prima del subfile proseguendo verso l’alto.

Viene considerata testata di un campo tutto ciò che è incluso dentro l’ampiezza determinata dalle colonne. Se un
campo si trova a cavallo tra due colonne, viene considerato come intestazione di entrambe.

Le righe di testata sono distribuite proporzionalmente sulle righe dei subfile con priorità sulle prime. Per esempio, se
la testata è composta da due righe e un record di sub-file occupa due righe, allora si assegna una riga di testata per
ogni riga occupata; se invece la testata è fatta di tre righe e il record di sub -file ne occupa due, allora si considerano
le prime due righe di testata come descriventi la prima riga di subfile e la terza come descrivente la seconda riga di
subfile. Nel caso in cui un record del subfile occupi più di una riga e i campi sulla seconda riga siano preceduti da
costanti di intestazione, tali costanti diventano le intestazioni di colonna dei campi c orrispondenti e, se le righe di
intestazione sono più di una, vengono associate tutte alla prima riga di subfile.
Viene assunto che tali intestazioni siano terminate quando viene trovata:

una riga contenente “:” o “=” (potrebbe essere la riga relativa alle opzioni).

una riga mista (contenente Variabili e Constanti).

una riga bianca dopo averne trovata una valida.

Una riga sottolineata dopo averne trovata una valida (potrebbe essere la riga relativa alle opzioni).
Le stesse regole elencate per le intestazioni costanti valgono se le intestazioni si trovano in campi variabili nelle 4 righe che
precedono il subfile.
5.1.2 Riconoscimento delle opzioni
Riconoscimento delle righe destinate a contenere le descrizioni delle opzioni su un subfile:

Il compilatore Webgate legge fino a sei righe precedenti la prima del sub-file;

È considerata valida un riga che contiene “:” o “=”.
Il compilatore Webgate interrompe la ricerca quando:

Trova una riga mista (contenente Variabili e Constanti);

Trova una riga bianca dopo averne trovata una valida.
Per consentire il riconoscimento di intestazioni in campi variabili è necessario l’utilizzo di una TEXT:

In un formato che viene emesso in abbinamento a un sub-file, ogni campo con la TEXT ‘<w>*optvar</w>’ (o
‘<W>*OPTVAR</w>’) viene considerato il campo contenete le opzioni del sub-file.

In seguito alla dicitura *optvar è possibile forzare il nome del sub-file a cui le opzioni vanno abbinate: questa sintassi
è particolarmente utile nel caso di subfile doppi.
5.2 Ottimizzazione dello spazio nelle righe orizzontali
Webgate400 ignora le linee tratteggiate del 5250. Per sfruttare al meglio lo spazio disponibile su un video, anche dopo avere
reperito gli elementi standard (testate, opzioni), WEBGATE400 esegue ulteriori operazioni di ottimizzazione allo scopo di
eliminare le righe bianche inutili, ingrandire i sub-file quando possibile, creare dei separatori logici tramite righe orizzontali.
All’interno di un formato:

Sostituzione di più righe bianche con una riga orizzontale.

Se i campi descritti all’interno del progetto sotto la dicitura ‘Layout’ (Titolo, Company, Display, …) vengono
riconosciuti dal compilatore Webgate e spostati nelle relative posizioni grafiche, le righe che li contengono nel 5250,
possono risultare vuote in grafica ed essere ottimizzate.
Il numero di righe di un subfile può essere aumentato automaticamente in grafica se:

non esiste un formato sottostante (o risulta vuoto al termine della conversione);

il subfile contiene righe divenute disponibili;

nel piede del subfile, al termine della conversione, non ci sono campi variabili;

il subfile non si trova all’interno di una window.
Pagina 57 di 108
COMPILATORE WEBGATE – Manuale di programmazione
N.B.: ove è possibile, è meglio evitare l’uso di campi variabili nel piede di un subfile: l’emissione risulta più veloce perc hé
l’immagine grafica della videata è più stabile.
5.3 Paginazione
Programmi con gestione a pagina del subfile
Webgate400 emula questa gestione, visualizzando lo stesso numero di righe del subfile gestito in modalità 5250.
Programmi con caricamento completo del subfile
Webgate400 ottimizza il numero di righe visualizzate in base allo spazio disponibile (dipendente dalla risoluzione del proprio
PC )
La paginazione, di default, è impostata a 100: l’Applet carica 100 record del subfile per volta, ed attende l’eventuale
paginazione per caricare i successivi. Se al subfile è stata associata una gerarchia, è possibile che alcuni raggruppamenti non
siano completi, in quanto alcuni record potrebbero non essere stati emessi, essendo successivi al centesimo. Rollando in
avanti dopo la centesima riga, le gerarchie si completano. Questo problema non si verifica nella versione Table.
E’ possibile modificare il numero di righe caricate dall’applet gestendo, all’interno dell’ RPG, una variabile ambientale
(WGSFLPGL numerica lunga 4 senza decimali, oppure WGSFPL in RPG III) impostandola ad un valore diverso da 100.
Tale variabile DEVE essere impostata prima della scrittura del subfile e dell’emissione del relativo controllo, tramite una
semplice valorizzazione:
C
Z-ADD
2000
WGSFLPGL
4 0
NB: Ricordarsi che, utilizzando valori elevati, Webgate400 preleverà dall’ iSeries una quantità maggiore di dati rispetto all o
stesso programma gestito in modalità ‘green screen’, aumentando quindi il carico sul server e generando problemi di
prestazioni. E’ quindi importante trovare il giusto compromesso tra le esigenze di completezza delle gerarchie e la velocità di
emissione del subfile.
5.4 Espansione subfile nelle windows
L'espansione è condizionata da un flag nella configurazione runtime e da un attributo di formato secondo la seguente logica:
se l'abilitazione runtime è attiva, le griglie nelle window vengono sempre espanse, a meno che non sia espressamente
richiesto di non farlo tramite l'attributo di formato 2193=R(0). Se nel runtime manca l'abilitazione, le griglie nelle window
sono espanse solo se è stato specificato dall'attributo di formato 2193=R(1).
Pagina 58 di 108
COMPILATORE WEBGATE – Manuale di programmazione
5.5 Posizionamento
Il posizionamento del subfile (prima riga visualizzata) è condizionato da 2 parametri impostabili nella conf igurazione runtime:
1.
Gestione MIN-RRN
2.
Gestione SFLRCDNBR
5.5.1 Comportame nti in base ai parametri
Il comportamento della versione grafica è il seguente:

MIN-RRN e SFLRCDNBR entrambi disabilitati: la prima riga visualizzata è il topRRN della videata 5250.

MIN-RRN disattivo e SFLRCDNBR attivo: la prima riga viene stabilita sulla base del valore del SFLRCDNBR se
specificato *TOP, altrimenti viene usato il valore del TopRRN (come punto precedente).

MIN-RRN attivo e SFLRCDNBR disattivo: la prima riga è la prima riga visibile nel grafico; se il subfile è alla prima
emissione, viene usato il valore TopRRN - come nei casi precedenti.

MIN-RRN attivo e SFLRCDNBR attivo: la prima riga è stabilita dal valore del SFLRCDNBR se di tipo *TOP, altrimenti
viene usato il valore del TopRRN (come nei casi precedenti).
5.5.2 Forzatura a programma
Nel caso in cui si voglia forzare il posizionamento su una certa pagina di subfile, per esempio perché il subfile è stato
ricaricato completamente e quindi non risulta più disponibile il valore del TOPRRN, è possibile forzare a programma, nelle
specifiche precedenti all’emissione del subfile-control, la prima riga da visualizzare tramite la variabile WGSTOP.
In questo modo però, il posizionamento forzato sull’ultimo record o sul primo mediante SFLRCDNBR non sarà possibile: per
ottenere tali comportamenti, sarà necessario forzare a programma il valore della variabile Webgate WSTOP.
5.5.3 Limitazioni
Se su un campo del subfile risulta attivo l’attributo DSPATR(PC) che forza il posizionamento del cursore su tal e record,
decadono tutte le considerazioni precedenti. Per far si che il subfile venga gestito correttamente in grafica è dunque
necessario eliminare tale attributo dal display file.
5.6 Videate con due subfile
Vengono emulati i video con due subfile: ne è un esempio la funzione ‘Sorgenti Tutorial Interattivo’, lanciabile dal profilo
WEBGATECVT.
N.B.
Per poter essere interpretata, l’intestazione del subfile in basso deve essere definita tramite la TEXT <h> … </h>.
5.7 Gerarchizzazioni da programma
5.7.1 Visualizzazione Ge rarc hica DINAMIC A
Si utilizzano le gerarchie dinamiche quando si desidera raggruppare i dati di un subfile in base a raggruppamenti logici: sui
campi di raggruppamento non sarà possibile eseguire opzioni.
Inoltre i subfile dinamici vengono caricati completamente dall’Applet.
Le gerarchie dinamiche sono definite dagli attributi:

602: contiene la lista dei campi di ordinamento del subfile (tali campi possono essere Hidden).
Pagina 59 di 108
COMPILATORE WEBGATE – Manuale di programmazione

603: contiene la lista dei campi di raggruppamento del subfile: sono i campi rispetto ai quali si desiderano
raggruppare i dati del subfile (tali campi devono essere visibili).
Per la sintassi vedere la tabella riepilogativa degli attributi di formato.
Esempio 1: Tabella “gerarchizzata” utilizzando liste di ordinamento e raggruppamento (attributi 602 e 603).
5.7.2 Visualizzazione Ge rarc hica STATICA
Le gerarchie statiche si utilizzano quando su ogni riga del subfile è presente un campo che indica il livello nella gerarchia .
Sono definite dagli attributi:

604: contiene il nome del campo che contiene il livello ed il nome del campo che contiene lo stato di collassamento
dell’elemento.
Per la sintassi vedere la tabella riepilogativa degli attributi di formato.
Esempio 2: Tabella “gerarchizzata” utilizzando un campo di livello (attributo 0604).
5.7.3 Viste ge rarchic he con salvataggio de llo stato di a pertura e/o c ollassamento dei
singoli nodi
E’ possibile mantenere i livelli di collassamento e/o apertura dei nodi di una vista gerarchica statica attraverso le varie
emissioni del video, così come da ultima impostazione dell’utente.
Per ottenere questo tipo di funzionalità occorre eseguire le seguenti operazioni:

introdurre una variabile di stato numerica di tipo hidden nel formato subfile;

completare il format attribute che regola l’emissione delle viste gerarchiche statiche nel seguente modo:
604=R(XLEVEL;C :x;S:XSTAT;), dove:
o
XLEVEL è il nome del campo che identifica il livello di gerarchia del nodo rappresentato dalla riga di subile
o
x rappresenta il livello di collassamento di default e può assumere valori compresi tra 0 e 9
o
XSTAT è il nome del campo che identifica lo stato del nodo rappresentato dalla riga di subfile e può
assumere i seguenti valori 0 = indifferente, 1 = non visibile, 2 = visibile
5.7.4 Casi pratic i di utilizzo
5.7.4.1
Subfile gerarchizzato con collassamento di default
Impostiamo il format attribute per un collassamento a livello 1: 604=R(XLEVEL;C:1;S:XSTAT;).
Tutte le righe del subfile vengono emesse con il valore XSTAT = 0.
Pagina 60 di 108
COMPILATORE WEBGATE – Manuale di programmazione
L’operatore apre alcuni nodi:
L’interfaccia operatore utilizza il campo XSTAT delle righe 3, 8, 9, 13, 20, 21 per memorizzare lo stato di ‘visibilità’. Questi
nodi avranno quindi nel campo XSTAT il valore 2. Qualora l’operatore battesse il tasto di Invio o un tas to funzione che abilita
il ritorno dei dati, tale valore può essere verificato anche dal programma RPG in esecuzione.
Nota bene: per le righe di subfile utilizzate viene accesso l’indicatore interno READC . Occorre quindi porre attenzione all’uso
che se ne fa all’interno del programma RPG.
L’operatore attiva un’opzione della riga 3
che esegue l’apertura di un’altra applicazione:
Pagina 61 di 108
COMPILATORE WEBGATE – Manuale di programmazione
quindi chiude la nuova applicazione e torna alla visualizzazione sulla vista gerarchica:
che ritroverà come l’ha lasciata a patto che non vi sia stata riemissione del subile con conseguente rivalorizzazione
della variabile di stato XSTAT.
Come si può notare i nodi 3, 8, 9, 13, 20, 21 hanno mantenuto lo stato impostato dall’utente mentre il 29 ha mantenuto lo
stato imposto dal livello di collassamento di default.
5.7.4.2 Aperture o chiusure dinamiche a livelli pre-impostati
Nel caso si voglia ottenere un effetto di apertura e chiusura a certi livelli predefiniti occorre riemettere il subfile azzerando
la variabile di stato di tutti i nodi (XSTAT=0) e modificare il format attribute cambiando la clausola C:x al valore
desiderato.
Partendo dallo stato di visualizzazione precedente impostando 604=R(XLEVEL;C: 3;S:XSTAT;), otterremo il seguente effetto:
Oppure 604=R(XLEVEL;C :9;S:XSTAT;)
Pagina 62 di 108
COMPILATORE WEBGATE – Manuale di programmazione
volendo tornare a livello 1: 604=R(XLEVEL;C:1;S:XSTAT;)
Pagina 63 di 108
COMPILATORE WEBGATE – Manuale di programmazione
6 PERSONALIZZAZIONE SUBFILE E SQL
6.1.1 1 Funzione Grafici in TAB
H*R*+----------+----+--+---------------------------------+-------------------------+---+
H*R*!NOME
!LUNG!DE!DESCRIZIONE
!VALORI
!I/O!
H*R*+----------+----+--+---------------------------------+-------------------------+---+
H*RP!P0XVISUA ! 1 ! !Vistalizza Grafico
!1=Si
! I !
H*RP!
!
! !
!0=No (compila parametro !
!
H*RP! ! ! ! ! P0XSTRCH) ! !
H*RP!P0XSECON ! 4! !Durata della visualizzazione ! ! I !
H*RP! ! ! !in secondi (facoltativo) ! ! !
H*RP! ! ! !(se XVISUA=1) ! ! !
H*RP!P0XNUMCH ! 2! !Tipo Grafico !(Lista in NOTE sopra) ! I !
H*RP!CHXARRAY ! ! !300 Elementi Lunghi 200 posizioni! ! I !
H*RP! ! ! !(ogni elemento è definito da ! ! !
H*RP! ! ! ! DS CHXDATA) vedi sotto ! ! !
H*RP!P0XCTITL ! 80! !Titolo Del Grafico (facoltativo) ! ! I !
H*RP!P0XXTITL ! 30! !Titolo Asse X (facoltativo) ! ! I !
H*RP!P0XY1TIT ! 30! !Titolo Asse Y (facoltativo) ! ! I !
H*RP!P0XY2TIT ! 30! !Titolo asse Y1 (facoltativo) ! ! I !
H*RP!P0XHPARM ! 200! !Parametri Intestazione Grafico ! ! I !
H*RP! ! ! !(facoltativo) ! ! !
H*RP!P0XSPARM ! 100! !Parametri Intestazione Serie ! ! I !
H*RP! ! ! !(facoltativo) ! ! !
H*RP!P0XTPARM ! 200! !Parametri Linee/Aree Trend ! ! I !
H*RP! ! ! !(facoltativo) ! ! !
H*RP!P0XSTRCH ! 100! !Dati per visualizzazione ! ! O !
H*RP! ! ! !(Modello e percorso file per ! ! !
H*RP! ! ! ! C HART) ! ! !
H*R*+----------+----+--+---------------------------------+-------------------------+---+
DC HXDATA DS
D DSXSERIE 1 30 * Serie
D DSXCATEG 31 60 * Category
D DSXPRISE 61 61 * Primary/Second Y
D DSXVXYZ 62 82P 3 DIM(3) * Values X,Y,Z 13,3
D DSXCL 83 122 * Links
D DSXSLICE 123 123 * Underline Slice
D DSXNUPFX 124 124 * Number Prefix
D DSXSHOVA 125 125 * Show Values
I parametri necessari sono i 5 evidenziati in rosso. Notare che il parametro CHXARRAY è una schiera dove ogni elemento è
definito dalla DS qui sopra. (PER ULTERIORI INFORMAZIONI, VEDERE API WGCHAHANR IN WEBG4SRC )
Per la funzione richiamabile dall’utente, si dovrebbe visualizzare un prompt che elenchi le colonne sulle quali viene indicat o
l’asse del grafico corrispondente. La sintassi da indicare come estensione della istanza SQL è costituita da codici operativi
seguiti dal segno ‘=’ , dal valore relativo e delimitato da un punto e virgola.
Pagina 64 di 108
COMPILATORE WEBGATE – Manuale di programmazione
CODICE
SIGNIFICATO
610
Titolo grafico
611
Tipo grafico
612
Titolo asse X
613
Titolo asse Y
614
Titolo asse Y
615
Serie (nome campo o serie di campi separati dal segno ‘+’)
616
Categoria (nome campo o serie di campi separati dal segno ‘+’)
617
Nome campo valore X. Se vengono inseriti + campi separati da virgola, il primo vale come primario, i
successivi come secondari in serie combinate. Il nome della serie per il campo secondario si costruisce
concatenando la descrizione del campo con il valore ottenuto dall’attributo 615
618
Nome campo valore Y’ (per grafici che richiedono 2 coordinate per definire un punto)
619
Nome campo valore Y’’ (per grafici che richiedono 3 coordinate per definire un punto)
620
Parametri intestazione grafico
621
Parametri intestazione serie
622
Parametri intestazione Linee/aree
Permette di rendere contestuale all’uscita del video l’esecuzione dell’SQL definito in una tab o in un campo
SQL (in questo modo il video appare subito completo del risultato dell’SQL). Per attivare tale possibilità è
necessario specificare in coda all’SQL la sintassi se guente:
700
701
702
703
704
705
706
707
708
700=1;
Permette di ridefinire l’ordine dei campi
701= R(CAMPO1;CAMPO2;CAMPO3;); i campi saranno dimensionati normalmente
701= R(CAMPO1:Wxx;CAMPO2:Wyy;); xx, yy dimensione (in colonne) del campo
Permette di specificare i campi da nascondere
702= R(CAMPO1;CAMPO2;CAMPO3;);
Permette di applicare uno zoom alla griglia
703= R(xx); xx rappresenta il fattore di zoom (100 visualizzazione normale)
Permette di bloccare le colonne sullo scroll orizzontale .
704=R(xx); xx rappresenta l’indice della colonna da bloccare
Consente di inserire un’icona all’interno di un campo SQL. Il valore del campo deve essere quello che
verrebbe associato ad un normale campo icona. Se, ad esempio, i campi CAMPO1 e CAMPO2 risultanti da un
SQL riportano la sintassi di un’icona, è necessario aggiungere in coda all’SQL la sintassi:
705=CAMPO1(h:11;w:11;n:1;u:px);CAMPO2(h:16;w:16;n:1;u:px);
Tale sintassi serve ad identificare la dimensione dell’icona, esattamente come accade nella text aggiunta ai
campi dei video.
Le icone così definite possono essere attive: possono cioè valorizzare un campo (appartenete ad un formato
record qualunque) con un valore all’azione di click.
Se ad esempio:
CAMPO1 = ‘about.wdf:Scansione:T2.ESEGUI=Z ’
al click il campo ESEGUI del formato T2 verrà valorizzato con il valore ‘Z’.
E’ anche possibile far si che il valore scritto nel campo di destinazione sia il valore di un altro campo del
record cui appartiene l’immagine:
‘about.wdf:Scansione:T2.ESEGUI= &CAMPO2’
Se dopo l’= compare la lettara &, il valore scritto nel campo ESEGUI sarà il valore del campo CAMPO2.
E’ possibile associare ad un’icona un link (il cui valore è definito in un altro campo del record), in modo che al
click venga eseguito il link stesso:
705=ICO(h:11;w:11;n:1;u:px);706=ICO:LINK;
La sintassi precedente indica che alla pressione del campo ICO verrà eseguito il l ink specificato nel campo
LINK.
Inoltre è possibile indicare che un campo risultato dell’SQL non è visibile, con la seguente sintassi:
707=CAMPOH
Il campo CAMPOH non sarà visualizzato.
Consente di specificare che al click su un’icona (specificata con l’attributo 705) viene eseguito il link
specificato in un altro campo risultato della query.
La sintassi è: 709=CAMPO_ICONA:CAMPO_LINK
CAMPO_ICONA è il nome del campo definito come icona tramite l’attributo 705
CAMPO_LINK è il nome del campo in cui è specificato il link da eseguire
Consente di specificare che un campo risultato della query non deve essere visualizzato
La sintassi è:
707=CAMPO1;CAMPO2;
CAMPO1 e CAMPO2 non verranno visualizzati nel campo SQL
Permette di forzare il comportamento definito dagli attributi 701, 702, 703, 704 anche non in presenza di un
reset disposizione colonne.
La sintassi è: 708=R(1);
Pagina 65 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Definisce le modalità di riesecuzione della query.
Se non è indicato, la query viene rieseguita ogni volta che viene premuto un tasto funzione.
709=R(*C); la query viene rieseguita se cambia la sua sintassi
709=R(*R); la query viene eseguita solo se lo richiede l’utente
Per forzare l’esecuzione della query, bisogna fare un click destro sulla prima cella della griglia e selezionare
l’opzione “Esegui SQL”.
709
N.B: per implementare le sintassi Webgate nell’SQL è necessario aggiungere i caratteri “<?” e “?>” all’inizio e al termine del
codice. Per esempio: 708=R(1);
Esempio:
610=R(Situazione giacenza articoli per magazzino);611=R(26);615=R(XCODAR );616=R(XCOMAG);617=R(XGIAC E);
L’esempio definisce un grafico dal titolo “Situazione giacenza articoli per magazzino”, che utilizza il modello di
rappresentazione 26, avente come identificatore di categorizzazione il campo XCOMAG e come identificatore delle serie
XCODAR, il valore da rappresentare si trova nel campo XGIAC E.
Esempio lettura tabella per emissione di grafico con serie combinata :
<?610=R(Titolo Grafico);611=R(26);615=R(Anno);616=R(Tipo);617=R(Totale,Media,Massimo);?>
ANNO
TIPO
RS
Asse X
TOTALE
MEDIA
Asse Y1
MASSIMO
Asse Y2
PRIMARIO
Asse Y2
SECONDARIO
P
S
2001
PERE
100
7
14
Totale 2001 PERE 100
Media 2001 PERE 7
2001
PATATE
110
3
6
Totale 2001 PATATE 110 Media 2001 PATATE 3
Massimo 2001 PATATE 6
2001
MELE
125
3
4
2002
PERE
100
15
25
2002
PATATE
100
2
15
2002
MELE
110
15
2003
PERE
100
15
2003
PATATE
110
15
Massimo 2001 PERE 14
Totale 2002 PERE 100
Media 2002 PERE 15
6.1.2 Funzione UPDATE
La regola di aggiornamento del database è la seguente :
“Tutti i campi presenti nella griglia e anche nella descrizione file indicato, sono da utilizzare come argomenti di
parzializzazione della funzione di aggiornamento.”
“Tutti i campi indicati nella sintassi (se variati) sono da modificare.”
Le indicazioni da inserire nella istanza sono le seguenti :
NomeFile:campo;campo; campo, NomeFile:Campo;Campo;Campo
Esempio :
SELECT C.XDSCLS, A.XC LASS, COUNT(*) FROM PARAR A INNER JOIN CLBAS ON
A.XC LASS=B.XCLASS, PARAR A1 INNER JOIN TABGE C ON A1.XCLASS=C.XC LASS GROUP BY
C.XDSC LS, A.XCLASS, B.XC LASS <?650=(PARAR:XCLASS;…… C LBAS:XCLASS;…….)?>
I puntini esistono
Produce una lista Descrizione – Classe Che identifica le classi presenti su PARAR e CLBAS.
DESCRIZIONE
CODICE
NUMERO RECORD
Materie Prime
AA
150
Finiti
BB
170
Minuteria
CC
190
In questo caso le istruzioni update lanciate qualora il valore della classe AA fosse modificato in A1, saranno due :
UPDATE SPIFIGM/PARAR SET XCLASS = 'A1' WHERE XCLASS='AA'
Pagina 66 di 108
COMPILATORE WEBGATE – Manuale di programmazione
UPDATE SPIFIGM/CLBAS SET XCLASS = 'A1' WHERE XCLASS='AA'
Esiste l’API webgate400/RFQR04 che passando la sintassi nel primo parametro, esegue l’aggiornamento.
Parametri :
1 P0XFQSQU 1024 Alfanumerico Stringa completa da eseguire
2 P0XESITO 1 Alfanumerico Esito esecuzione
Sintassi da indicare come estensione della istanza SQL è la seguente :
<?650=R(PARAR:XCLASS,XCODAR,XUNITM;CLBAS:XCLASS,XCODAR,XUNITM,XKKKKK ,;)?>
Dove si indica che i file interessati dalla update sono 2 (PARAR e CLBAS) i campi modif icabili per
PARAR sono XCLASS,XCODAR,XUNITM mentre per CLBAS sono XCLASS,XCODAR,XUNITM,XKKKKK.
6.1.3 3 Funzione gerarchizzazione
Valgono codici e sintassi utilizzati da programma
CODICE
SIGNIFICATO
602
Campi di ordinamento
603
Campi di raggruppamento
604
Campo di livello
605
Non utilizzabile
606
Non utilizzabile
6.1.3.1
Esempio
<?602=R(XCOMAG;XCODAR);604=R(XCOMAG);?>
L’esempio riporta una gerarchizzazione per XCOMAG su un ordinamento per XCOMAG+XCODAR.
6.1.4 4 Funzioni di riepilogo
Per identificare ed assegnare funzioni di riepilogo alla visualizzazione di un subfile derivato da una funzione di SQL dinamico
piuttosto che dalla gerarchizzazione di un normale subfile di programma, si utilizzano codici operativi simili a quelli utili zzati
per le gerarchizzazioni. Anzi, per essere precisi, funzionano in simbiosi in quanto i campi di gerarchizzazione definiscono i
punti di rottura su cui calcolare totali o medie o altro.
Le funzioni matematiche di riepilogo sono 5: totale, media, minimo, massimo, conteggio.
Nel caso le funzioni di riepilogo siano collegate ad un SQL Dinamico il comando SQL deve contenere una clausola ORDER BY
adeguata.
CODICE
SIGNIFICATO
607
Funzioni di riepilogo e conteggio
608
Funzioni di emissione:

F = Formato: R = solo Riepiloghi D = Dettaglio

NC = Numero colonna: colonna da utilizzare per emissione in caso di
visualizzazione di valori singoli.
Esempio:
Al campo XNUMER (campo quantità) voglio applicare la funzione di totale e di media mentre al campo XPREZZ applico le
funzoni di minimo e massimo:
607=R(XNUMER<SUM,AVG>;XPREZZ<MIN,MAX,COUNT>;).
SELECT XWORKC, XCOMAC, XEFFIC, XPROOR FROM SPIFIBO/MACHI ORDER BY XWORKC
<?603=R(XWORKC+XCOMAC<T:Y,D:N>;);607=R(XEFFIC<SUM,AVG>;XPROOR<AVG,MIN,MAX>;);608=R(FE=R;NC =4)?>
La prima riga di totali deve essere visualizzata sulla riga di gerarchizzazione corrispondente.
Pagina 67 di 108
COMPILATORE WEBGATE – Manuale di programmazione
6.1.5 5 Funzioni di grafico sui riepiloghi
Quando un query appare gerarchizzato e per lo stesso vengono visualizzati delle funzioni di riepilogo, anche la funzione di
richiesta dei grafici ne risulta influenzata. In particolare il sistema riconosce come oggetto della funzione di generazione del
grafico il primo livello di gerarchizzazione dopo il livello definito come cambio serie (il primo se non si definiscono cambi di
serie).
Se si utilizzano le funzioni di compressione apertura dei livelli, come oggetto viene riconosciuto il l’ultimo livello
correntemente aperto. Se ci si posiziona sul dettaglio dell’ultimo livello la funzione di richiesta grafico richiede a quale livello
di dettaglio si vuole arrivare: selezionando l’ultimo (cioè il dettaglio) verra fatta una parzializzazione sui dettagli del livello
contenuto includendo tutti i cambio serie.
Prendiamo per esempio una query gerarchizzata su due livelli (Anno, Classe Articolo) con il dettaglio costituito da Codici
Articolo.
Notare le funzioni di riepilogo, il cambio serie la prima selezione per l’asse X e i 2 dati da plottare Y1, Y2.
Pagina 68 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Il grafico selezionato in automatico ci riporta il risultato per classe articolo.
Posizionandosi sul dettaglio il programma propone un menu per la scelta del livello a cui richiedere il grafico. Supponiamo di
avere scelto Cod. Articolo otterremo questo risultato.
Pagina 69 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Notare i risultati riportati appartengono al ramo di gerarchizzazione in cui avevamo posizionato il cursore.
Pagina 70 di 108
COMPILATORE WEBGATE – Manuale di programmazione
6.1.6 Riepilogo Format Attribute applicabili a griglia ed SQL e grafici
Codice Significato
602
Campi di ordinamento
603
Campi di raggruppamento
604
Campo di livello
605
Non utilizzabile
606
Non utilizzabile
607
Campi totali e di riepilogo
608
Funzioni di emissione:
Esempio
F=Formato: R=solo Riepiloghi D=Dettaglio
NC =Numero colonna: colonna da utilizzare per emissione in caso di
visualizzazione di valori singoli.
610
Titolo Grafico
611
Tipo Grafico
612
Titolo Asse X
613
Titolo Asse Y’
614
Titolo Asse Y’’
615
Serie (nome campo o serie di campi separati dal segno ‘+’)
616
Categoria (nome campo o serie di campi separati dal segno ‘+’)
617
Nome campo valore X. Se vengono inseriti + campi separati da virgola
il primo vale come primario, i successivi come secondari in serie
combinate. Il nome della serie per il campo secondario si costruisce
concatenando la descrizione del campo con il valore ottenuto
dall’attributo 615
618
Nome campo valore Y’ (per grafici che richiedono 2 coordinate per
definire un punto)
619
Nome campo valore Y’’ (per grafici che richiedono 3 coordinate per
definire un punto)
620
Parametri intestazione grafico
621
Parametri intestazione serie
622
Parametri intestazione Linee/aree
630
Nome campo che identifica il livello di riepilogo forzato in fase di
riemissione di un grafico ottenuto da un SQL dinamico (non disponibile
in programmazione RPG)
631
Nome gruppo che identifica il livello di riepilogo forzato in fase di
riemissione di un grafico ottenuto da un SQL dinamico (non disponibile
in programmazione RPG)
650
File e campi per la funzione UPDATE
680
Titolo drilldown (Non disponibile in programmazione RPG)
681
Indice del campo da utilizzare nel drilldown. Del campo vengono
calcolati: somma, media, minimo, massimo, conteggio occorrenze. La
definizione del campo drilldown a video stabilisce quale dei risultati
usare. (Non disponibile in programmazione RPG)
690
Intestazione delle colonne nella griglia nella rappresentazione di un
output SQL
Pagina 71 di 108
<?630=DEC. Articolo;631=DEC.
Classe<MATERIE PRIME
METALLICHE X>;?>
SELECT XNAZIO, XQTUMP FROM
CLBAS WHERE XNAZIO=’IT’
<?680=Media Nazionale Quantità
Movimentate;681=2;?>
COMPILATORE WEBGATE – Manuale di programmazione
7 CONFIGURAZIONE PROGRAMMI
Webgate400 gestisce sorgenti scritti in RPG3 o RPG4. In fase di conversione il sorgente RPG3 viene trasformato in RPG4.
I programmi compilati in modalità Webgate funzionano in modo grafico e contemporaneamente anche in modalità 5250.
7.1 Variabile ambientale
Se si desidera differenziare gli ambienti (Webgate400 e 5250) è possibile utilizzare all’interno del sorgente una variabile che
Webgate400 mette a disposizione. Questa variabile si chiama WEBGATE in RPG4 o WEBGAT in RPG3.
Nome variabile: WEBGATE
Tipo:
*C HAR
Length:
1
Values:
WEBGATE = ‘0’
in ambito 5250
WEBGATE = ‘1’
in ambito grafico
Nei programmi si può utilizzare la variabile WEBGATE dichiarandola senza inizializzarla.
7.1.1 Dichiarazione in RPG3
DEFINIZIONE:
I
DS
I
1
1 WEBG AT
*=============================================================================*
C
MOVE WEBGAT
WEBGAT 1
C
99N99
MOVE *BLANK
WEBGAT 1
USO:
C
C
C
WEBGAT.
IFEQ ‘1’
...
ENDIF
7.1.2 Dichiarazione in RPG4
DEFINIZIONE:
D
DS
D WEBGATE
1
*==============================================================================*
C
MOVE
WEBGATE
WEBGATE
1
C
99
CA N99
MOVE
*BLANK
WEBGATE
1
USO:
C
C
C
WEBGATE
IFEQ
...
ENDIF
‘1’
Webgate400 mette a disposizione anche un’API, già richiamata all’inter no del programma compilato in modalità Webgate, che
restituisce il valore della variabile “WEBGATE”:
Programmi API webgate
CALL
WEBGATE400/WGINACTION
PARM
WEBGATE
Tipo
Lung.
I/O
Esempio
A
1
O
1=webgate,
0=no webgate
7.2 Keyword ROLLUP e ROLLDOWN
Le keyword ROLLUP e ROLLDOWN sono interpretate a livello di display file e di RPG. Le keyword PAGEDOWN e PAGEUP hanno
un funzionamento analogo e non sono gestite.
N.B: Per gestire a programma le keyword ROLLUP e ROLLDOWN definite su un formato, è necessari o che abbiano
associato un indicatore di risposta.
Pagina 72 di 108
COMPILATORE WEBGATE – Manuale di programmazione
7.3 Interpretazione struttura dati INFDS
Il programma RPG compilato in modalità Webgate gestisce alcuni campi descriventi il formato video definiti nel programma
originario all’interno della struttura dati INFDS e impostati automaticamente al ritorno dalla videata:
NOME CAMPO
DESCRIZIONE
POSIZIONE
INIZIALE
POSIZIONE
FINALE
TIPO
DECIMALI
FILE-NAME
Nome file
83
92
LIBRARY
Nome Libreria
93
102
REQUESTER
Requester name
197
206
IO-RCD-FMT
Rcd format name
261
270
0
DSP-AID
AID byte
369
369
0
CURSOR
Cursor location
370
371
0
SF-RRN
Subfile rrn
376
377
0
MIN-RRN
Subfile min rrn
378
379
0
NUM-RCDS
Subfile num rcds
380
381
ACT-CURS
Active window cursor location
382
383
*STATUS
Codice errore
0
B
0
Annotazioni:

Il campo MIN-RRN,per essere interpretato, deve sempre essere definito in abbinamento al campo SF-RRN;

Attualmente i codici di errore gestiti a livello del campo *STATUS sono quelli relativi ai tasti ROLLUP/ROLLDOWN
(codici 01122 e 01123). Per attivare tale funzione è necessario definire l’attributo 606 specificando l’indicatore che
verrà acceso in caso di pressione di uno dei due tasti:
606=R(1122;1123;I99)

I valori riga - colonna per i campi C URSOR e ACT-CURS sono gestiti unicamente all’interno di campi (non in
qualunque posizione del video) e il valore colonna indica sempre la prima colonna del campo su cui è posizionato il
cursore.

I valori riga - colonna per i campi C URSOR e ACT-CURS non son attendibili all’interno di subfile.
7.4 Interpretazione video in SHARE
La gestione di video in share è garantita anche in ambiente grafico. Nella maggior parte dei casi la condivisione è garantita
automaticamente all’interno del programma compitato in modalità Webgate, che esegue automaticamente, alla sua partenza,
una routine di lettura dei dati condivisi, eventualmente scritti da un altro programma che utilizza lo stesso video.
Nel caso in cui un programma che gestisce un video in share richiami un altro programma che esegue delle operazioni sullo
stesso video, è necessario che il programmatore RPG aggiunga la seguente /COPY all’interno del sorgente da compilare, nella
specifica successiva alla CALL.
/COPY *LIBL/WGQCPYSRC,WGRTVH
LIMITAZIONI:
All’interno di programmi che utilizzano video in share non è possibile utilizzare la funzione di RENAME dei formati.
Pagina 73 di 108
COMPILATORE WEBGATE – Manuale di programmazione
8 SERVIZI APPLICATIVI
Possiamo dire che con Webgate400 è stato introdotto un terzo livello di programmazione:
1.
Il primo livello di programmazione è il data-base (file logici, costrizione, trigger etc…);
2.
Il secondo livello è costituito dai programmi RPG;
3.
Webgate400 offre un terzo livello di programmazione che opera a un livello più alto, sull’elaborazione dell’interfaccia
e sui suoi eventi. I parametri a disposizione sono l’utente, il gruppo, la lingua, il sistema informativo e tutti campi del
display (visibili o hidden).
8.1 Command Service
Si accede a questa funzionalità dal menu principale.
Per aumentare le funzionalità disponibili su ogni videata, è sufficiente descrivere regole di attivazione che definiscono la
disponibilità di un comando in presenza di determinate variabili a video (sia in campi visibili che in campi nascosti).
Le regole, in sostanza, sono descritte da un’istruzione che rappresenta questo concetto:
“Dove sono presenti il campo1 oppure il campo2 e il campo3 è disponibile il comando xxxxxxxx con i parametri valorizzati
dalle variabili a video campo1 e campo3.”
Sono richiamabili comandi AS/400, comandi PC (come il prompt di DOS), web -services. In questo modo, compilando un solo
record di comando si può, per esempio, mettere a disposizione su tutte le videate che contengono un “codice articolo” un
grafico prodotto con “Cristal Report” che rappresenta i consumi di prodotto senza modificare in alcun modo l’applicazione.
Le tipologie di service commando disponibili sono le seguenti :

GENERICO: si attiva dalla “command BAR” oppure premendo il tasto destro sul campo interessato.

MORE INFO: si attiva facendo doppio click sul campo interessato.

COMMAND ICON

ALLEGATO: si attiva dalla “command BAR” (se acquistato add-on DATABASE LINKS).

DRAG & DROP: si attiva premendo il tasto destro del mouse.
Quando un campo presente a video può attivare un comando, viene evidenziato con uno speciale simbolo (rispettivamente
puntino rosso, blu, verde, giallo negli angoli dei campi interessati).
8.1.1 Standard e Custom
8.1.2 Command Ic on
Pagina 74 di 108
COMPILATORE WEBGATE – Manuale di programmazione
8.2 Script e WGEXEIOUT
È possibile associare a un link un comando batch o interattivo da far eseguire al sistema. Tale comando può generare un
output e questo output può essere un file, o un documento, o un programma eseguibile, o qualsiasi oggetto.
Per fare capire all’Applet che il link è un comando da eseguire bisogna utilizzare le seguenti chiavi all’inizio del link:
exei://
permette di eseguire un comando interattivo;
exeb://
permette di eseguire un comando batch.
Esempio: exei://CALL LIB01/PGM01 PARM(‘ABC ’ 12)
Nota: Il comando viene eseguito all’interno del job (sessione) che contiene il link.
8.2.1 Gestire un oggetto output di un comando
Se il comando exei produce un output, Webgate400 mette a disposizione un’API per gestirlo:
API per gestire output
Tipo Lung.
I/O
Esempio
CALL
WEBGATE400/WGEXEIOUT
PARM
URL
A
256
I
‘/webgate400/temp/page1.html’
PARM
ACTION
A
64
I
‘Open’
PARM
ERRMSG
A
256
O
PARM
TYPE
A
1
I
‘OpenDelete’
‘Y’ = torna il controllo a RPG
(utilizzabile nei push button)
‘ ‘= non torna il controllo all’RPG
(utilizzato nei link con //exei)
(Nell’esempio citato, l’API si chiamerebbe a fine esecuzione del programma LIB01/PGM01)
Esempio 1
Supponiamo che il programma PGMCRTHTML crei una pagina HTML e che metta questa pagina nella directory dell’Integrate
File System /html/page1.html.
Il link avrà come valore: exei://CALL PGMCRTHTML PARM(‘XXX’).
Lo stesso programma PGMCRTHTML dovrà, dopo avere creato la pagina HTML, chiamare l’API di Webgate400 come segue:
CL:
CHGVAR
VAR(&URL)
CHGVAR
VAR(&ACTION) VALUE('OpenDelete ')
VALUE(‘html/page1.html')
CHGVAR
VAR(&MSGERR) VALUE(*BLANK)
CALL
PGM(WEBGATE400/WGEXEIOUT) PARM(&URL &ACTION &MSGERR)
Dopo avere cliccato sul link, apparirà la pagina HTML.
Esempio 2
Se vogliamo che venga aperto un documento di Word, impostiamo:
CHGVAR
VAR(&URL)
VALUE(‘C:\documenti\documento.doc')
Se deve essere lanciato Acrobat Reader, impostiamo:
CHGVAR
VAR(&URL)
VALUE(‘C:\documenti\prova.pdf')
VAR(&URL)
VALUE(‘mailto:indirizzo e-mail’))
Se vogliamo lanciare una e-mail:
CHGVAR
Attenzione!!
Per consentire all’Applet di visualizzare l’output, è necessario che il lavoro che lancia l’API WGEXEIOUT emetta una videata
che deve restare aperta finchè l’output risulta disponibile.
8.3 Supporto esecuzione programmi PC
Viene mantenuto il supporto dell’esecuzione dei programmi PC , richiamando il programma W GSTRPCOC:
Pagina 75 di 108
COMPILATORE WEBGATE – Manuale di programmazione
CALL
'WGSTRPCOC '
PARM
CMDW
Il parametro CMDW è un alfanumerico di 200 posizioni.
In alternativa, dall’Applet si può lanciare il parametrico WGSTRPCOP:
Per esempio, volendo richiamare una sessione Applet all’interno di un programma RPG compilato in modalità Webgate, si
esegue la seguente istruzione:
CALL PGM(WGST RPCOC) PARM('C:\EDMAPP\WEBGATE400\WEBGATE400.EXE')
Con questa istruzione si lancia la prima maschera di collegamento all’Applet.
Con un comando più complesso, è possibile automatizzare alcune fasi del collegamento, fino a lanciare una singola istanza
grafica:
WEBGATE400 /Hhostname /Uusername /Wpassword /Aapplication_name /Ssession_id /C”Command_line”
Dove:

Hostname = nome o indirizzo IP dell’host di collegamento;

Username = nome utente di collegamento;

Password = parola chiave di collegamento;

Application_name = nome dell’applicazione cui far riferimento per le impostazioni di ambiente (configurazione
Runtime – file WGXPARMS);

Session_id = nome o prefisso sessione da utilizzare (configurazione Runtime);

Command_line = linea di comando (stile ISeries) da eseguire.
Volendo eseguire un comando DOS, ad esempio copy, è necessario specificare la sintassi:
CALL PGM(WGSTRPCOC ) PARM(‘cmd.exe /C copy “percorso1” “percorso2”')
Nota: il richiamo al programma WGSTRPCOC deve essere inserito in un programma contenente un display -file.
Esempio:
Esecuzione diretta di un programma su un altro sistema aprendo un’altra istanza di Webgate400 e passando gli opportuni
parametri:
CALL PGM(WGSTRPCOC ) PARM('C :\EDMAPP\WEBGATE400\WEBGATE400.EXE /H192.10.10.10 /UROSSIM /C”CALL
PGM(PROVA) PARM(‘AR44001’ ‘402’)”)
Pagina 76 di 108
COMPILATORE WEBGATE – Manuale di programmazione
9 MENU
E’ possibile creare una struttura di menù ad albero:
Questo risultato si ottiene caricando le voci del menu nel database DBMenu.
9.1 Il Dbmenu
Il comando di conversione WGCRTMNU che permetteva di creare l’albero dei menu partendo da menu UIM o DSPF è stato
tolto dalla procedura ed ora la gestione dei menu avviene direttamente partendo dalla manutenzione dei 4 file del DBmenu
senza popolare il file WGMNTREE. Questa gestione è più snella e ha il vantaggio di essere multilingua.
Il Dbmenu è composto dai seguenti 4 file:

WGMNUFLD
(Folder),

WGMNUFLT
(Folder Text),


WGMNUCMD
WGMNUCMT
(C ommand),
(C ommand Text).
La generazione dei file di lavoro si può effettuare nei seguenti due modi:
1.
Se i menù da convertire si basano su un data-base (per esempio il file dei menù delle ACG), è possibile popolare
direttamente i file del Dbmenu con programmi customizzati.
2.
Attraverso il programma di manutenzione richiamabile dall’elaborato NK o dal menu applicazioni di Webgate:
9.1.1 Struttura del database
Di seguito viene proposto un esempio di creazione di una piccola struttura di menu e sottomenu, partendo da menu standard
a caratteri, popolando i file di lavoro del Dbmenu.
Pagina 77 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Per ottenere l’albero del menu grafico i quattro file del DBMENU sono stati compilati come segue:
WGMNUFLD Legame tra Folder
FLDLIBI
FLDMNUI
FLDSEQO
FLDLIBO
FLDMNUO
LIBRERIA
FLDA1
1
LIBRERIA
FLDB2
LIBRERIA
FLDA1
2
LIBRERIA
FLDC2
LIBRERIA
FLDC2
1
LIBRERIA
FLDE3
FLDTXTO
FLDRES
Livello
riservatezza
WGMNUFLT Testo delle Folder
TXTLIB
TXTMNU
TXTLANG
TXTFLD
LIBRERIA
FLDA1
Non
Menu livello 1
utilizzare
LIBRERIA
FLDB2
Menu B Livello 2
LIBRERIA
FLDC2
Menu C livello 2
LIBRERIA
FLDE3
Menu E Livello 3
TXTMSF
TXTMSI
File messaggi con il testo
Id messaggio
contenente il testo
WGMNUCMD Anagrafica Azioni
CMDLIB
LIB1
CMDMNU
FLDA1
CMDOPT
1
LIB1
FLDA1
2
CALL
PGM2
LIB1
FLDB2
1
CALL
PGM3
LIB1
FLDB2
2
CALL
PGM4
LIB1
FLDC2
1
CALL
PGM5
Pagina 78 di 108
CMDPRE
CMD
CALL
PGM1
CMDPOST
CMDLIBCVT
CMDLIBPRD
CMDLIBCUR
CMDSHORT
CMDRES
Livello
riservatezza
COMPILATORE WEBGATE – Manuale di programmazione
LIB1
FLDC2
2
LIB1
FLDE3
1
LIB1
FLDE3
2
CALL
PGM6
CALL
PGM7
CALL
PGM8
WGMNUCMT Testo Azioni
TXTLIB
TXTMNU
TXTOPT TXTLANG
TXTCMD
LIBRERIA
FLDA1
1
Comando 1
LIBRERIA
FLDA1
2
Comando 2
LIBRERIA
FLDB2
1
Comando 3
LIBRERIA
FLDB2
2
Comando 4
LIBRERIA
FLDC2
1
Comando 5
LIBRERIA
FLDC2
2
Comando 6
LIBRERIA
FLDE3
1
Comando 7
LIBRERIA
FLDE3
2
Comando 8
Non utilizzare
9.2 Manutenzione DB-Menu
Il programma di manutenzione menu è richiamabile dalla schermata specifica del Converter Control, tramite l’elaborato NK o
dal menu Ambiente/Applicazioni (elaborato DD oppure da WEBGATECVT).

Libreria menu chiamante: è quella in cui sono stati creati i 4 file del DB-Menu: per far gestire al sistema la
creazione e la pulizia del db-menu è necessario che la libreria sia indicata nella sezione specifica del progetto.

Menu: è il nome del menu da creare o manutenere
9.2.1 Gestione me nu
Volendo creare un menu ex novo, è necessario come prima cosa codificare il menu e successivamente si inseriscono i richiami
ai sottomenu o ai singoli comandi:
I dati obbligatori sono:

Sequenza di richiamo: è un progressivo univoco che serve per assegnare un ordinamento;

Libreria: è la libreria dove è definito il menu richiamato e dove si trovano i file corrispondenti;

Menu: è l’identificativo del menu richiamato;

Descrizione Menu
Pagina 79 di 108
COMPILATORE WEBGATE – Manuale di programmazione
9.2.2 Gestione comandi
I comandi vengono definiti attraverso:

Opzione menu: è un progressivo univoco che serve per assegnare un ordinamento;

Comando: è la funzione da eseguire che può essere il lancio di un elaborato;

Descrizione Comando
9.3 Setting globale
Si può configurare Webgate400 per lanciare direttamente il menù definito nel profilo utente al LOGON, utilizzando i parametri
INLMNU o INLPGM (utilizzati dalle sessioni 5250).
Il setting è protetto: solo utenti di classe *SECOFR possono manipolarlo. È anche possibile specificare l’utilizzo di un menu
fisso o un menu di default (che viene lanciato se il menù da usare non esiste per Webgate400).
9.4 Reperimento menu da WEBGATE
Webgate fornisce due metodologie relativamente al reperimento del menu utente:
1.
l’utente ha un unico menu associato;
2.
l’utente ha un menu diverso per ogni company (= sistema informativo).
9.4.1 Re perimento menu unico
La procedura di individuazione del menu utente, in base al valore del campo “Menu Principale”, segue i seguenti passi:

Se il valore è uguale a *SIGNOFF oppure a *SAME significa che non esiste un menu specifico per l’utente, dunque,
se il campo “Programma iniziale” è vuoto, viene ricercato il menu di default (quello indicato nel campo “Menu
Default Programmi”) e, se anche questo non esiste, ne viene ricercato uno per la chiave uguale al campo
“Progetto”, cioè il nome dell’applicazione in uso.

Se il menu principale non è definito ma esiste un programma iniziale, cioè se il campo “Call programma iniziale”
ha un valore diverso da *NONE e daWGINLMNU, viene creato un menu con un solo nodo che coincide col
programma specificato.
Pagina 80 di 108
COMPILATORE WEBGATE – Manuale di programmazione

Se il menu “Menu Default Programma” è uguale a MAIN e la libreria è *LIBL (oppure se questi sono i valori
ritornati dal programma WGINLMNU), significa che il menu da utilizzare, se esiste, è quello indicato nel campo
“Menu Principale”.

Se nei casi precedenti viene identificato un menu utente che però non esiste, si procede come al passo 1.
9.4.2 Re perimento menu al cambio de l sistema informativo
Questa procedura si applica se il campo “Usa Menu della Company ” vale Y.
Per ogni cambio di sistema informativo viene sempre richiamato il programma WGINLMNUXX nella libreria del programma
iniziale, al quale vengono passati due parametri: l’utente e la Company corrente (entrambi parametri da 10 caratteri). Tale
programma deve settare due variabili ambientali corrispondenti al nome e alla libreria del menu utente. Se tale menu n on
esiste, ne viene ricercato uno secondo le modalità viste in precedenza.
9.4.3 Menu da visualizzare al Logon
Al logon l’utente non ha ancora selezionato una company, dunque è necessario impostarne una iniziale. Infatti, in questa
situazione il programma WGINLMNUXX, non ricevendo il parametro company, non può restituire un menu valido.
Tale compito è affidato al programma WGINLMNU, che deve essere definito nei parametri “Libreria” e “Programma iniziale”
e valorizza le variabili ambientali (mediante le apposite API fornite) necessarie per definire la company e il menu iniziale. Tale
programma deve restituire non solamente il nome e la libreria del menu, ma anche la company cui tale menu è associato,
dato che tale parametro non è altrimenti noto.
N.B:
E’ importante ricordare che quando si utilizza il programma WGINLMNU il parametro “Menu principale” deve essere diverso da
*SIGNOFF.
9.4.4 Api pe r sc rivere/legge re i parametri ambienta li
WGSETMNU: serve per impostare il nome del menu. Ha tre parametri

Libreria del menu da impostare: alfanumerico da 10.


Nome del menu da impostare: alfanumerico da 10
Codice d’errore: alfanumerico da 1.
WGSETCOM: serve per impostare l’id della company. Ha 2 parametri

ID della company da impostare: alfanumerico da 10

Codice d’errore: alfanumerico da 1.
WGGETENV: Serve per recuperare i parametri ambientali necessari alla configurazione del menu. Ha 2 parametri:

Specifica il nome della variabile ricercata (input): alfanumerico da 50.

Restituisce il valore ricercato (output): alfanumerico da 50.
I valori più utilizzati sono:

WGAPPN (nome progetto di compilazione Webgate),

WGADLIB (libreria di default dei dati per il progetto),

WGLANGID (lingua dell’utente),

REMOTE_USER (utente che ha lanciato l’istanza http),

REMOTE_ADDR (indirizzo IP dal quale è stata lanciata l’istanza http),

MENUNAME (nome menu),

MENULIB (libreria menu).
Le variabili sopra specificate sono recuperabili solo se il programma è in esecuzione in ambiente CGI; in ambiente non CGI
sono gestite le seguenti variabili:

COMPID (ID company),

GRPID (ID Gruppo).
9.4.4.1
Definizione delle CALL
Le CALL definite nei menu, oltre ai parametri fissi, possono essere valorizzate con due variabili ambientali dell’applet: il nome
dell’utente e l’ID della Company corrente. Per far si che il programma richiamato riceva uno o entrambi i parametri è
necessario che nella lista parametri della CALL compaiano le 2 stringe dalla sintassi fissa: &WGCOMPID e &WGUSRID,
entrambi senza apici (che vengono aggiunti automaticamente).
Ad esempio:
CALL LIB/PGM PARM(‘PARM1’ &WGCOMPID &WGUSRID)
Pagina 81 di 108
COMPILATORE WEBGATE – Manuale di programmazione
10 GESTIONE MESSAGGI
L’Applet è in grado di gestire lo scambio di messaggi tra utenti e l’invio di messaggi da un programma a un utente.
10.1
Messaggi tra utenti
La gestione dello scambio di messaggi tra utenti si richiama dalla schermata prin cipale dell’Applet in questo modo:
Compare la videata di gestione di tutti i messaggi inviati all’utente:
I messaggi sono caratterizzati da un tipo (*INFO, *INQ, *RPY, NTY) e da una gravità descritta da un numero da 0 a 99. Tutti i
messaggi, tranne quelli informativi (INFO), sono messaggi di interruzione e determinano un’interruzione del lavoro
interattivo; i messaggi informativi (*INFO) possono essere visualizzati solo all’interno della gestione messaggi.
Gli utenti di classe *SECOFR, *SECADM, *PGMR sono autorizzati al bottone ‘Delete All’, che permette di cancellare in massa
tutti i messaggi ricevuti.
Pagina 82 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Premendo il bottone ‘Send Message’ compare la seguente videata:
E’ possibile inserire un messaggio breve che viene letto immediatamente dal destinatario e un messaggio di secondo livello
che viene visualizzato entrando nel dettaglio. Impostando il parametro ‘Remotion’ a ‘Yes’ si può richiedere la rimozione del
messaggio, una volta letto dal destinatario. Tramite il parametro ‘Answer’ si può richie dere una risposta da parte del
destinatario e col parametro ‘Notification’ a ‘Yes’ si riceve un messaggio di notifica dell’avvenuto recapito.
Premendo il bottone ‘Advanced’ si possono impostare alcune caratteristiche opzionali del messaggio: è possibile al legare
un’immagine, un indirizzo Email, un sito, un testo scorrevole (Banner) e una serie di icone descrittive. I parametri
‘Schedulation Message Receipt’ permettono di schedulare la data e l’ora di ricezione del messaggio.
Pagina 83 di 108
COMPILATORE WEBGATE – Manuale di programmazione
10.2
Messaggi a programma
Quando il mittente del messaggio è un programma, si utilizza l’APE ‘WGMSWR’ presente nella libreria WEBGATE400; di
seguito è specificato l’elenco dei parametri da passare a tale programma con le relative lunghezze.
CALL
'WGMSWR'
PARM
P0TMS0
10
Tipo messaggio
PARM
P0SEV0
20
Severità
PARM
P0RMV0
1
Rimozione messaggi
PARM
P0RPY0
1
Rich. risposta
PARM
P0NTY0
1
Ricezione notifica
PARM
P0JOB0
10
Nome del lavoro
PARM
P0USR0
10
Utente del lavoro
PARM
P0NBR0
60
Numero del lavoro
PARM
P0LIB0
10
Libreria programma
PARM
P0PGM0
10
Nome del programma
PARM
PARM
P0DTS0
P0HHS0
80
60
Data schedulazione (GGMMAAAA)
Ora schedulazione (GGMMAAAA)
PARM
P0SUS0
10
Utente mittente (HHMMSS)
PARM
P0SDT0
80
Data invio (GGMMAAAA)
PARM
P0SHH0
60
Ora invio (HHMMSS)
PARM
P0RUS0
10
Utente Ricevente
PARM
P0MS10
256
Messaggio I Livello
PARM
P0MS20
1024
Messaggio II Livello
PARM
P0IMG0
256
Immagine associata
PARM
P0ICO0
256
Icone associate
PARM
P0EML0
256
Mailto
PARM
P0URL0
256
Indirizzo Internet
PARM
P0BNR0
256
Testo scorrevole
PARM
P0RTNC
1
E = ERRORE
I parametri obbligatori sono:

Utente destinatario (P0RUS0);

Tipo messaggio (P0TMS0);

Messaggio di primo livello (P0MS10);

Utente mittente o nome libreria e programma.
10.3
Emulazione SNDBRKMSG e SNDUSRMSG
La versione grafica di Webgate400 intercetta i comandi SNDBRKMSG e SNDUSRMSG, emulando solo parzialmente la loro
esecuzione ed indirizzando i messaggi all’utente tramite la gestione messaggi proprietaria Webgate400.
I parametri intercettati e gestiti del SNDBRKMSG sono:
MSG (testo del messaggio)
MSGTYPE (viene impostato sempre ad *INFO)
NB: il destinatario del messaggio sara’ sempre l’utente, reperito tramite RTVJOBA del lavoro in esecuzione.
I parametri intercettati e gestiti del SNDUSRMSG sono:
MSG (testo del messaggio)
MSGTYPE (tipo messaggio) Vengono gestiti sia il messaggio *INQ che *INFO ma in modalità webgate400
TOUSR (profilo utente di destinazione)
Altri parametri vengono ignorati.
Pagina 84 di 108
COMPILATORE WEBGATE – Manuale di programmazione
11 GESTIONE COMPANY
11.1
Premessa
Per default l’applet consente di impostare la definizione di 9 company mediante il menu “Strumenti \Configurazione”: tali
impostazioni sono locali e valide per ogni utente che si collega da quel pc; l’identificativo di ognuna di esse è un numero.
Per impostarle in modo centralizzato e renderle configurabili per ciascun utente e ogni applicazione compilata in modalità
Webgate vengono messi a disposizione due file: WGCOMP e WGCOMPT.
11.2
File
I due file devono risiedere nella libreria dati dell’applicazione compilata.
11.2.1WGCOMP
Consente di definire quali company sono visibili ad un utente, associandogli gli ID corrispondenti.
L’elenco delle company abilitate viene ottenuto tramite diverse letture del file con chiave via via meno dettagliata sulla ba se
dei parametri settati nella configurazione selezionata dall’utente (lingua e gruppo).
Il flag Include/Omit consente di nascondere/abilitare una certa company solamente per alcuni utenti: affinché sia visibile il
flag deve essere impostato a ‘Y’.
Se la chiave è tutta a blank, l’Id specificato è abilitato per tutti gli utenti.
11.2.2WGCOMPT
Questo file viene letto dopo aver ricavato la lista delle company associate all’utente, prima con chiave completa
(Lingua+Company) e poi eventualmente con chiave solamente Company, per ricercare le descrizioni associate alle company.
Pagina 85 di 108
COMPILATORE WEBGATE – Manuale di programmazione
12 HELP APPLICAZIONE
12.1
Generalità
Webgate400 permette di sviluppare i pannelli di aiuto agendo direttamente sulla interfaccia utente.
E’ possibile editare direttamente i contenuti di aiuto, premendo il tasto destro su tutti gli oggetti definiti come “punto di
ancoraggio”. (vedi lista in successivo paragrafo).
Si possono sviluppare documenti “standard” (a cura del produttore della applicazione) oppure personalizzati per Utente,
gruppo, lingua e company.
L’applicazione consente di editare documenti con i normali strumenti Office e, per i documenti standard, esegue una
conversione automatica del documento in formato HTML, salvandola in una directory distinta.
In ogni caso, è possibile visualizzare il documento direttamente nel fo rmato originale, se si dispone della applicazione di
editazione installata sul PC consultante.
12.2
Punti di Ancoraggio Help
Sono definiti punti di ancoraggio, tutti i riferimenti presenti all’interno di una istanza di Webgate400 che consentono di
collegare un documento di help. Questi sono:

Campi

Files video (accessibili premendo il tasto destro in una zona libera del video) o sulla apposita icona

Funzioni singole di menu
12.3
Informazioni Tecniche
12.3.1Struttura Directory salvataggio docume nti
I documenti di aiuto vengono salvati sull’ifs in directory create automaticamente, così strutturate:
 Root
 Directory Pubblicata
C lasse documento
Documento
 Templates
Documento/i template (.dot .pot,xlt ecc.)
Directory di EDIT
Esempio
Questo esempio mostra la disposizione delle cartelle per la Libreria DBLINK. I templates vanno inseriti dentro la directory
evidenziata.
I nomi delle directory sono così strutturati :
Directory pubblicata :
WGHnnnnnn
dove nnnnn è il nome della libreria contenente gli archivi dei file video
Directory edit :
EWGHnnnnnn
dove nnnnn è il nome della libreria contenente gli archivi dei file video
Per distribuire sui sistemi degli utenti gli oggetti di help, sarà sufficiente salvare tutte le directory che iniziano per WGH. Per
esempio, la directory pubblicata di Webgate400 si chiamerà WGHwebgate400.
Nella directory con prefisso EWGH sono contenuti i documenti in formato editabile.
12.3.2 Templates
Per normalizzare il formato dei documenti di aiuto, alla creazione di un nuovo documento vie ne mostrata una finestra di
selezione contenente tutti i modelli disponibili nella directory “Templates” (vedi struttura sopra) posta all’interno della
directory che identifica la classe documento. Porre in questa directory i modelli che si intendono utilizzare per ogni classe
documento. Se sono più di uno, durante la creazione del documento sarà visualizzata una apposita finestra di selezione.
Pagina 86 di 108
COMPILATORE WEBGATE – Manuale di programmazione
12.3.3Archivi coinvolti
Il documento, una volta creato, viene legato come attributo all’ancoraggio relativo nel file WGATR (WGATRC per la versione
personalizzata).
Il legame è riferito ad un numero identificativo del documento che è decodificato nel file WGHDC che contiene l’intero
percorso del documento.
Le classi dei documenti, sono definite nel file WEBGATE400/WGHCL.
12.4
Gestione Pannelli Help
Per creare, modificare o cancellare un pannello di Help è necessario innanzitutto essere abilitati a farlo.
Le abilitazioni si definiscono con la “Configurazione Runtime” dei profili, presente nel menu principale di Webgate400.
In particolare, si può abilitare un utente a manutenere l’help standard dell’applicazione, o solo gli help personalizzati per
azienda, lingua, gruppo o utente.
Per una breve dimostrazione del funzionamento dei pannelli di aiuto vedere il link :
http://www.webgate400.com/EDMSites/C lips/NovitaV3/SviluppoHelpApplicazioneeUtente.swf
Pagina 87 di 108
COMPILATORE WEBGATE – Manuale di programmazione
12.5
Migrazione Help esistenti
12.5.1Funzionamento
Per la migrazione dei pannelli di aiuto esistenti, è necessario che questi siano trasformati in formato HTML e che i loro
riferimenti siano integrati nel database dei file video generati da Webgate400.
E’ disponibile un’API, di seguito documentata, che si occupa di eseguire questa integrazione automaticamente.
L’utente che volesse eseguire la migrazione deve quindi:
1.
Eseguire un programma che identifichi tali documenti.
2.
Per ogni documento eseguire un programma che li trascriva in formato HTML (vedi esempio di seguito) nel file
indicato QTEMPWEBGATEHLP.
3.
4.
Eseguire l’API WGFHLP01
Ritornare al passo 1
Una volta effettuata la conversione, i pannelli saranno modificabili con la normale procedura di manutenzione descritta nel
paragrafo precedente.
A questo scopo, l’applicazione per la gestione dell’ help, una volta aperti i documenti HTML convertiti la prima volta, oltre che
effettuare la solita conversione in HTML, li trasformerà automaticamente in formato WORD per la editazione e li salverà in
formato editabile nell’apposita directory (EWGHnnnnnnn).
12.5.2Riesecuzione della migrazione
Nel caso si dovesse rieseguire la migrazione, è necessario prima compiere le seguenti azioni:

Con un’istruzione SQL, cancellare dal file WGATR tutti i record di riferimento (sono identificati dal valore del campo
XFATYP compreso tra 6001 e 6010).

Eseguire un CLRPFM sul file WGHDC (contiene i link tra video e documento).

Cancellare i documenti dalla directory WGHnnnnn (dove nnnnn sta per il nome della libreria contenente i file di
struttura della specifica applicazione).

12.5.3API WEBGATE400/WGFHLP01
L’ API legge il file QTEMP/WEBGATEHLP definito con questa sintassi :
CRTPF FILE(QTEMP/WEBGATEHLP) RCDLEN(32000)
La sintassi html non può superare i 32 KB di lunghezza.
I dati devono essere concatenati all’interno di un campo lungo 32000 bytes.
Pagina 88 di 108
COMPILATORE WEBGATE – Manuale di programmazione
NOME
LIBRERIA
DESCRIZIONE
Obbligatorio
PARAMETRO
DI RITORNO
LUNG
NO
10
NO
10
NO
10
NO
10
NO
10
NO
10
NO
10
NO
10
NO
4
SI
4
NO
100
NO
1
NO
10
SI
18
NO
1
E’ la libreria di appartenenza dell’help.
Si tratta della libreria in cui sono presenti i file di struttura di webgate400.
COMPANY
Facoltativo.
Chiave di personalizzazione
GRUPPO
Facoltativo.
Chiave di personalizzazione
UTENTE
Facoltativo.
Chiave di personalizzazione
LINGUA
Facoltativo.
Chiave di personalizzazione
NOME DISPLAY
FILE
Facoltativo. (Deve essere fornito o il nome del file video o il solo nome campo
oppure Il nome del file video, il nome del formato ed il nome del campo insieme)
Nome del display cui l’help appartiene
Se non citato, il documento in corso di elaborazione sarà associato a tutti i campi
presenti nella applicazione con questo nome.
Se si omette il nome del display file si deve omettere anche quello del formato e
viceversa.
NOME
FORMATO
Facoltativo. (Deve essere fornito o il nome del file video o il solo nome campo
oppure Il nome del file video, il nome del formato ed il nome del campo insieme)
Nome del formato cui l’help appartiene.
Se non citato, il documento in corso di elaborazione sarà associato a tutti i campi
presenti nella applicazione con questo nome.
Se si omette il nome del display file si deve omettere anche quello del formato e
viceversa.
NOME CAMPO
Facoltativo. (Deve essere fornito o il nome del file vide o o il solo nome campo
oppure Il nome del file video, il nome del formato ed il nome del campo insieme)
Nome del campo cui l’help appartiene o shortcut associato ad una voce di menu.
Si può dichiarare il nome completo del campo presente a video oppure la sua
desinenza preceduta da un asterisco.
Se, per esempio si scrive *CODAR omettendo nome display file e nome formato, il
documento di aiuto sarà associato a tutti i campi che terminano per “CODAR” su
tutti i display files della applicazione.
CLASSE HELP
Obbligatorio
Classe di classificazione dell’help. (6001 per esempio è la classe Definizione
Generale).
Il file contenente queste classificazioni, é WEBGATE400/WGHCL.
SEQUENZA
Lasciare vuoto
Numero di sequenza dell’attributo nel file WGATR (WGATRC). In fase di aggiunta
viene impostato dall’API e restituito.
TITOLO
Obbligatorio
Titolo dell’help. E’ la descrizione che assumerà il Documento di aiuto utile anche in
fase di ricerca.
E’utilizzato anche per costruire il nome del documento.
Attenzione alle duplicazioni.
STANDARD
Obbligatorio. Imporre Y
Y = help standard
AZIONE
Obbligatorio. Imporre WGHDCSAVE
WGHDCSAVE = Aggiunta help
UNIDE
Lasciare vuoto
Identificatore univoco dell’help.
In fase di aggiunta viene generato dall’API e il valore viene restituito.
TIPO HELP
Obbligatorio. Imporre ‘0’ per gli help legati ad oggetti del video; imporre ‘1’ per help
legati alle chiavi di menu.
Definisce il tipo di help: indica se l’help è legato ad un oggetto video (campo, display
file) oppure ad una chiave di menu.
Pagina 89 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Pagina 90 di 108
COMPILATORE WEBGATE – Manuale di programmazione
12.5.4Esempio di file HTML: (sorgente in WEBGATE400/WGSAMPLES/WGHLPHTML)
<head>
<STYLE type="text/css">
<!-p.titolo {color:red;font-family:arial; font-size:16pt; font-weight:bold;}
p.descrizione {color:black;font-family:arial; font-size:16pt; font-weight:bold;margin-bottom:3pt;}
p.esempio {color:blue;font-family:arial; font-size:16pt; font-weight:bold;margin-bottom:3pt;}
p.valoridisponibili {color:green;font-family:arial; font-size:16pt; font-weight:bold;margin-bottom:3pt;}
div.normale {color:black;font-family:arial; font-size:12pt;margin-top:3pt;}
-->
</STYLE>
<title>Titolo finestra</title>
<P class=titolo>Titolo del pannello di aiuto</P>
</head>
<body>
<P class=descrizione>Descrizione</P>
<DIV class=normale>Testo normale testo normale testo normale testo normale testo normale testo normale
testo normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale</div>
<DIV class=normale>Testo normale testo normale testo normale testo normale testo normale testo normale
testo normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale </div>
<P class=esempio>Esempio</P>
<DIV class=normale>Testo normale testo normale testo normale testo normale testo normale testo normale
testo normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale </div>
<P class=valoridisponibili>Valori disponibili</P>
<DIV class=normale>Testo normale testo normale testo normale testo normale testo normale testo normale
testo normale testo normale testo normale testo normale testo normale testo normale testo normale testo
normale testo normale </div>
</body>
Visualizzazione in versione explorer del file html sopra.
Nell’esempio sopra, è dimostrato un uso elementare e facilmente interpretabile del linguaggio HTML adatto alla scrittura dei
pannelli di aiuto.
Tutte le parti evidenziate sono fisse una volta che l’utente avrà eventualm ente adattato i vari parametri alle proprie esigenze.
Le parti non evidenziate, costituiscono il contenuto vero e proprio del pannello di aiuto.
Per ulteriori informazioni sul linguaggio, consultare una delle innumerevoli pubblicazioni presenti su interne t.
Il file TEMP/WEBGATEHLP utilizzato dalla elaborazione, deve contenere qualcosa di simile scritto anche consecutivamente nel
campo WEBGATEHLP (stesso nome del file) in esso contenuto su uno o più records se il pannello eccede i 32000 caratteri.
Pagina 91 di 108
COMPILATORE WEBGATE – Manuale di programmazione
13 UTILITA’
13.1
Estrazione e ripristino di uno o più file video: comando
WGDSPSND
Per allineare le informazioni grafiche STANDARD di un display file al relativo oggetto (compresi i riferimenti ad eventuali
help, default, tabs e gerarchie), è disponibile il comando WEBGATE400/WGDSPSND. Questo comando consente il
salvataggio ed il ripristino delle informazioni relative a un file video compilato in modalità Webgate.
E’ prevista la creazione di 12 file di transito (WG2ATR, WG2DS, WG2DSPF, WG2DSIND, WG2DSMSG, WG2FDB, WG2FLD,
WG2FMT, WG2DFT, WG2HDC, WG2VER, WG2RUNF) in una libreria che è possibile specificare.
I parametri individuano:

Il nome del display file: può indicare un singolo display file, un gruppo di display file (ex: RGBM*), o tutti i display
file della libreria (*ALL).

Il nome della libreria in cui si trova il display file.

L’ opzione (*SAVE o *RST) che consente il salvataggio o il ripristino del display file.

La modalità (*ADD o *REPLACE) della copia che deve essere eseguita sui file di transi to (solo in abbinamento
all’opzione SAVE). Durante l’operazione di salvataggio con l’opzione *REPLAC E vengono ricreati i file WG2* e ne
viene pulito il contenuto.

Il nome della libreria in cui si desiderano salvare i file di transito (WG2*).

L’opzione per salvare/ripristinare i record in lingua.
Sul sistema di destinazione, una volta ripristinati i file di transito, richiamando nuovamente il comando in modalità riprist ino
(*RST), i dati vengono collocati nei file originali della libreria specificata.
Per un corretto funzionamento del comando è importante seguire i seguenti accorgimenti:
1.
Impostare sempre la stessa libreria dei display file nelle fasi di salvataggio e ripristino.
2.
Impostare come libreria del display file la libreria che e ffettivamente contiene l’oggetto.
Pagina 92 di 108
COMPILATORE WEBGATE – Manuale di programmazione
3.
Il comando lanciato su più di un display file per volta (ex RGBM* o *ALL) gestisce fino a un massimo di 9999 display
file.
4.
Quando vengono eseguiti cambi di livello o vengono integrati nuovi file di Webgate400, è necessario lanciare il
comando di salvataggio con l’opzione *REPLAC E, in modo che i file WG2 vengano ricreati in base ai nuovi tracciati
dei file corrispondenti sulla macchina di partenza.
5.
Se il comando di salvataggio è stato lanciato con l’opzione “Record in Lingua” a *YES, è possibile decidere se
ripristinare o meno i record in lingua.
13.2
Comando di salvataggio e ripristino customizzazioni
Per salvare e distribuire presso i clienti le personalizzazioni generate sulla macchina di produzione è disponibile il comand o
WEBGATE400/WGCUSSND, nel dettaglio:

Colonne/campi aggiunti;

Tabs sql;

Attributi inseriti tramite la “Manutenzione attributi Oggetti”;

Help;

Default;

Gerarchie;

Customizzazioni inserite tramite Wg-Designer.
Questo comando è simile a quello già noto per la distribuzione degli standard (WGDSPSND) e si basa sulla creazione di 8 file
di transito (WGCFDB, WGCATR, WGCFLD, WGCFMT, WGCDSA, WGCHDC, WGCVER).
Ecco le fasi da seguire:
1. Lancio del comando con opzione Save/Restore=*SAVE
2.
Creazione savf contenente la libreria di transito impostata nel parametro “Transition Library”
3.
Invio e ripristino libreria di transito
4.
Lancio del comando con opzione Save/Restore=*RESTORE
Dove:

DISPLAY FILE= nome del display file da copiare;

LIBRARY= libreria del display file;

DEVICE= codice device come chiave di personalizzazione;

LANGUAGE= codice lingua come chiave di personalizzazione;
Pagina 93 di 108
COMPILATORE WEBGATE – Manuale di programmazione

COMPANY= codice azienda come chiave di personalizzazione;

GROUP= codice gruppo come chiave di personalizzazione;

USER= codice utente come chiave di personalizzazione;

SAVE/RESTORE= operazione da eseguire: salvataggio/ripristino;

REPLACE/ADD RECORDS= opzione applicata nella fase di salvataggio per cancellare o meno i record già presenti nei
file di transito;

TRANSITION LIBRARY= nome della libreria di transito;

STANDARD CUSTOMIZATIONS= se impostato a *YES vengono gestite tutte le customizzazioni; se impostato a *NO
vengono gestite solo le customizzazioni non standard; se impostato a *ONLY vengono gestite solo le customizzazioni
standard;

WG-DESIGNER CUSTOMIZATIONS= se impostato a *YES vengono gestite tutte le customizzazioni; se impostato a
*NO vengono gestite solo le customizzazioni non inserite da Wg-Designer; se impostato a *ONLY vengono gestite
solo le customizzazioni inserite da Wg-Designer;

RESTORE NOT ALIGNED OBJECTS= permette di decidere se ripristinare le personalizzazioni relative a display file che
sulla macchina di destinazione hanno una versione precedente: impostando il parametro a *YES potrebbero
subentrare problemi di incompatibilità che vanno v alutati in anticipo dall’operatore.
13.3
Eliminazione specifiche grafiche di un display-file
Esiste un programma da richiamare per eliminare i record relativi a un display file dai file WG* popolati dalla conversione:
CALL WEBGATE400/WGALLWGFP
Questa funzione è richiamabile anche tramite l’elaborato FP, o dal Menu Ambiente/Applicazioni (elaborato DD oppure da
WEBGATECVT), Cancellazione contenuto file WG*:

L’opzione “Elimina anche se esiste oggetto” determina la cancellazione dei record relativi al formato. Se il display file
esiste nella libreria associata e tale opzione non viene selezionata, vengono eliminate solo le descrizioni dei display
file che non sono presenti nella libreria.

L’opzione “Elimina anche traduzioni” determina la cancellazione dei record in lingua relativi al formato.

L’opzione “Elimina anche Add-On grafici” permette di cancellare le aggiunte al display file, come help, tabs,
abbinamenti WDF, gerarchie.

La stampa incongruenze evidenzia i display file per i quali non esiste l’oggetto nella libreria selezionata, ma esiste la
descrizione nei file WG*: questi casi potrebbero sfuggire e dare problemi a runtime.
13.4
Debug di un programma compilato in modalità Webgate
Come è già noto,durante la conversione, i sorgenti degli RPG che gestiscono un dis play file vengono rielaborati con le
specifiche grafiche in aggiunta e ricompilati in modo che il nuovo oggetto possa essere eseguito sia in ambiente 5250 che in
ambiente grafico.
Quando dovesse essere necessario debuggare in 5250 un programma compilato in modalità Webgate, è necessario che la
conversione venga lanciata con la vista di debug sull’oggetto:
1.
E’ necessario modificare le opzioni di conversione del progetto associato, collegandosi col profilo WEBGATECVT,
funzione “Converter Control”, opzione 10 sul progetto. Si presenta la videata con le opzioni di compilazione
specifiche del progetto; si imposta il parametro DBGVIEW per il comando CRTBNDRPG (Sezione II) a “*ALL” e lo
stesso parametro per il comando CRTSQLRPGI ((Sezione III) a “*SOURCE”. In seguito si rilancia la conversione del
programma.
Pagina 94 di 108
COMPILATORE WEBGATE – Manuale di programmazione
Se è necessario debuggare il programma in ambiente grafico, è necessario:
1.
procedere come al punto 1 della conversione 5250;
2.
in seguito, dopo aver fatto generare la sessione Webgate lanciando l’elaborato o la funzione a menu, dal 5250 si
lancia il comando:
STRSRVJOB JOB(NomeSessioneWebgate)
Se non è il solo lavoro aperto con questo nome, viene proposto un elenco per selezionare quello attivo.
3.
Successivamente, si lancia:
STRDBG(NomeProgramma)
Si aprirà lo schermo di debug sull’istruzione dove si trova attualmente l‘RPG; si mettono gli opportuni break.point e si fa
proseguire il programma con il tasto F12.
Pagina 95 di 108
COMPILATORE WEBGATE – Manuale di programmazione
14 VERSIONI WEBGATE (RXXXX)
L’applicazione WEBGATE400, ed i suoi moduli, possono essere installati in differenti versioni sullo stesso sistema. Il Client PC
gestisce in modo trasparente all’utente l’utilizzo della corretta versione. La procedura di installazione del C lient prevede lo
scaricamento dei soli componenti richiesti dall’applicazione: i v ari componenti (help, broker,…), infatti, vengono scaricati
automaticamente nel momento del loro primo utilizzo.
Pagina 96 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15 GLOBALIZZARE LE APPLICAZIONI CON WEBGATE400
15.1
Prefazione
Il presente documento intende tracciare una road map utile a chi pensa e sviluppa appli cazioni ed intende affrontare il
processo di globalizzazione del proprio lavoro, cioè la potenziale fruizione della tecnologia sviluppata da parte di gruppi d i
utenti eterogenei per lingua, cultura, nazionalità.
15.2
Definizioni
15.2.1Globalizzazione/Localizzazione
Globalizzazione “nel contesto dell’information technology significa rendere possibile l’utilizzo di una tecnologia con ogni
linguaggio, tipo di scrittura (script) e cultura” (W3C Internazionalization Activity Proposal Sept. 5 2002, nda). Il termine
originale spesso usato è internazionalizzazione.
Per localizzazione si intende la “configurazione di una tecnologia rispetto ad un particolare linguaggio e cultura” (W3C
Internazionalization Activity Proposal Sept. 5 2002, nda).
La globalizzazione rende possibile e facilita la localizzazione.
Localizzazione dei dati

Formato dei dati (date, orari, moneta, rappresentazione dei numeri)

Linguaggio (lingua e caratteri in cui i dati sono espressi)
15.2.2Glyphs e caratte ri (characters)
Un “glyph” è una figura, normalmente visibile, che viene usata nella scrittura.
Un “carattere” è un glyph che ha un significato o una funzione in un linguaggio scritto. Lettere, simboli ideografici nei
linguaggi come il cinese, simboli di punteggiatura, notazioni matematiche o musicali e il braille sono tutti glyps usati come
caratteri nel linguaggio scritto.
Un glyph può servire a rappresentare caratteri diversi in diversi linguaggi:

il glyph P è usato per la lettera ‘P’ nell’alfabeto latino e come lettera ‘Er’ nel cirillico

il glyph c si pronuncia come una “k” o una “s” in inglese, si pronuncia “ts” in polacco
in entrambi i casi, un glyph, 2 usi differenti, 2 differenti caratteri.
15.2.3Script
Uno script è “un insieme di lettere simili e altri simboli scritti che sono usati per la rappresentazione di informazioni testuali in
uno o più sistemi di scrittura” (The Unicode Glossary, nda). Esempi di script sono gli alfabeti, i vari Latin (anglo -amaricano,
Polacco, etc), il Cirillico, il Greco, l’Arabo, gli alfabeti indiani (Indic), gli alfabeti cinesi e giapponesi.
15.2.4Set di caratteri (Characte r set)
Un insieme di caratteri che rappresenta uno script o un sottoinsieme di uno script. Esempi sono: l’alfabeto Latino dell’Europ a
occidentale, l’alfabeto Latino dell’Europa centrale, il cinese semplificato e tra dizionale. Molti usano anche il termine di
“character repertoire” e “character set” come sinonimo di “code page”.
15.2.5SBCS / DBCS / MBCS

SBCS sta per “Single Byte Character Set”: l’utilizzo di un solo byte per la rappresentazione di ognuno dei caratteri
appartenente al character set.

DBCS sta per “Double Byte Character Set”: l’utilizzo di due byte per la rappresentazione di ognuno dei caratteri
appartenente al character set.

MBCS sta per “Multi Byte C haracter Set”: l’utilizzo di un numero variabile di byte per la rappresentazione di ognuno
dei caratteri appartenente al character set.
15.2.6Code Page
Un insieme di codici numerici assegnati ai caratteri legati a valori binari memorizzati in un computer. Una codepage
rappresenta lo schema per codificare uno o più character set.
La relazione tra character sets e code pages è di tipo molti a molti.

Un singolo character set può essere codificato in modi differenti che dipendono dalla struttura del sistema
informatico che tratta i dati, per esempio uno schema di codifica ASC II su un PC e un schema di codifica EBCDIC su
un mainframe.
Pagina 97 di 108
COMPILATORE WEBGATE – Manuale di programmazione

Una singola code page può contenere più di un character set, se è basata su uno schema a byte multiplo (MBCS).
Per esempio la code page standard per la Repubblica Popolare Cinese raggruppa più di 6000 simboli dello script
Cinese Semplificato e il character set latino dell’europa occidentale (altrove indicato come Latin -1).
Ci sono code pages standard relative a tutti i più usati linguaggi scritti (character set).
Esempi di code page per i character set latini:

ISO-8859-1 Europa Occidentale


ISO 8859-2 Europa Centrale
IBM EBCDIC CP00870 Europa centrale
Esempi di code page per i character set non latini:

GB2312 National Standard Chinese

ISO-8859-6 Arabic

Windows 949 Korean
15.2.7Sistema di codifica dei dati (Cha racter Encoding)
Determina il numero binario che il computer userà per rappresentare i caratteri che poi vedremo sullo schermo o sulla
stampante.
I 2 principali sistemi di codifica, e quindi le relative codepages, sono ASCII ed EBCDIC .
ISO 646 (ASCII: American Standard Code for Information Interchange)

Codifica a 7 bit (128 caratteri)

Interna su PC
EBCDIC (Extended Binary Coded Decimal Interchange Code)

Codifica ad 8 bit. 256 caratteri.

Standard proprietario di IBM. Originariamente sviluppato perché vantaggioso con l’uso di schede perforate.

Interno molti dispositivi IBM (mainframes, stampanti). Non usato sui PC.

IBM ha sviluppato numerose code page equivalenti a molte code page ASCII
Memorizzazione della lettera ‘A’
Code Page
Valore esadecimale
ISO 646 Superset of ASCII
X’ 41
ISO 8859-1 Western Europe (ASCII)
X’41
CECP 500 International Latin (EBCDIC)
X’C1
Unicode UTF-8
X’41
Unicode UTF-16
X’00 41
UTF-EBCDIC
X’C1
Pagina 98 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15.2.8Unicode
Unicode è il nome per la code page, multi byte, universale, in grado di contenere tutti i character set.
Schema di allocazione nella codepage Unicode dei vari character set/alfabeti nel range 0000 – FFFF, altrimenti noto come
Basic Multilingual Plane (BMP).
Unicode definisce 2 sistemi di codifica (encodings): lo Unicode Tranformation Format e lo Universal Character Set.
Il primo si qualifica per la capacità di rappresentare i codepoints unicode su un numero variabile di bytes (MBCS), viceversa il
secondo per il numero fisso di bytes DBCS.
Codifica
Numero di bits/byte
UTF-8
8 bits
UTF-16
16 bits
UTF-32
32 bits
UC S-2
2 bytes
UC S-4
4 bytes
Mentre UCS-4 e UTF-32 sono equivalenti, UCS-2 e UTF-16 sono diversi in quanto UCS-2 è in grado di rappresentare solo il
range x’0 – x’FFFF viceversa UTF-16 rappresenta il range x’0 – x’10FFFF utilizzando 4 byte per i codepoints maggiori di
x’FFFF.
Pagina 99 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15.2.9Universal Character Set (UCS)
Lo standard internazionale ISO/IEC 10646 definisce lo Universal Character Set (UCS) come un character encoding.
Contiene centinaia di migliaia caratteri astratti tutti identificati da un nome e un numero detto code point.
I caratteri (lettere, numberi, symboli, ideogrammi, etc.) di diversi linguaggi, scripts e tradizioni del mondo sono rappresen tati
da un unico code point.
UC S viene continuamente integrato di nuovi caratteri. Per questa ragione si parla di versione di UCS attualmente siamo alla
versione 4.0 (UCS-4).
La versione 4 di UCS è in grado di coprire più di 1.1 milioni di codepoints (1.114.111), ma solo i primi 65.536 sono entrati
nell’uso comune prima del 2000.
In questo caso si fa riferimento alla versione 2.0 (UCS-2).
Questa situazione è cambiata quando la Repubblica Popolare Cinese decise che nel suo territorio i computer venduti
dovessero supportare la code page GB1830 che supporta sia il cinese semplificato che il cinese tradizionale. Questo obbligò la
specifica a superare il limite di 65.535.
Fortunatamente il sistema aveva previsto di riservare delle aree nel BMP per usi futuri. Per superare il problema si fece qui ndi
ricorso all’area dei cosiddetti surrogati, questo ha portato al superamento della codifica UCS-2 in favore della codifica UTF16.
UCS-2 (2 bytes encoding):

Encoding a lunghezza fissa

2 bytes (solo BMP)

copre i maggiori alfabeti e il cinese semplificato

nativo a per SQL Server, Windows NT/2000/XP/Vista, Symbian, .NET

Non raccomandato per DB2 e Oracle
UCS-4 (4 bytes encoding):

Encoding a lunghezza fissa

4 bytes

copre tutta la code page e oltre

Non raccomandato
15.2.10
Unicode Transformation Format (UTF)
UTF-8 (8 bit encoding):

Encoding a lunghezza variabile

Da 1 a 4 byte per carattere

o
1 byte standard US-ASCII
o
2 bytes per gli alfabeti
o
3 bytes per cinese semplificato
o
4 bytes per cinese tradizionale
Usato particolarmente nei protocolli internet, adottato dall’Internet Mail Consortium
UTF-16 (16 Bit Encoding):

Encoding a lunghezza variabile

2 bytes per il BMP o 4 bytes per i planes successivi

2 bytes coprono i maggiori alfabeti e il cinese semplificato

Supporta script bidirezionali come l’Ebreo e l’Arabo

E’ il formato interno di IBM Z/OS, è nativo per Java

Versione nativa a 2 bytes per SQL Server, Windows 2000/XP/Vista (con supporto dei surrogati) Symbian, .NET

Approvato per i domains internet

Raccomandato dai consulenti IBM

Assunto come CCSID di default per i dati UNICODE su OS/400
Pagina 100 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15.2.11
UTF-EBCDIC


Versione UTF-8 modificata per EBCDIC
Encoding a lunghezza variabile

Da 1 a 5 byte per carattere
o
1 byte per standard US-ASCII
o
2/3 bytes per gli alfabeti
o
4 bytes per cinese semplificato
o
5 bytes per cinese tradizionale

Supporta tutto il range di caratteri UNICODE

Formato interno usato per scopi di migrazione e/o coesistenza non per scambio dati

Non è supportato attivamente da IBM che pure ne ha redatto la specifica depositata presso il Consorzio Unicode

E’ il formato di lavoro interno del parser XML sviluppato per Webgate400
La presente trattazione è fortemente indirizzata verso l’uso di UNICODE
Pagina 101 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15.3
La strategia
15.3.1Approccio globale

Migrazione dei database verso UNICODE

Esclusione di soluzioni DBCS (anche su raccomandazione di IBM)

Convertire a UNICODE solo i dati che realmente ne hanno bisogno.

Costruire i sistemi su due livelli:
o
Il livello interfaccia uomo macchina (Customer Interface Layer), dove gli utenti interagiscono con il sistema
informativo

Il livello di processo (Core Processing Layer), dove i dati vengono validati, elaborati, memorizzati e
distribuiti ad applicazioni multiple per l’utilizzo, l’analisi o il reporting.
La maggior parte dei dati al CPL non necessitano di essere in formato UNICODE.

Minimizzare il lavoro e il rischio. Lasciare il CPL come è. Applicare la localizzazione e UNICODE sul CIL.
o
15.3.2Conside razioni sui dati
15.3.2.1 Classificazione dei dati dove Unicode non è necessario


Codici/identificatori alfanumerici: codici parte, codici cliente/fornitore, codici tabelle interne, etc)
Date

Numeri (identificatori)

Quantità

Totali (monetari)

Timestamps
15.3.2.2 Classificazione dei dati dove Unicode è necessario


Nomi: Organizzazioni, Persone, Indirizzi, Paesi.
Testo: Titoli, Decodifiche, Messaggi, Etichette (Labels), Commenti, Testo per indirizzi, Domini di posta elettronica.
15.4
Tattiche di Data Managment

Sviluppare codice standard da usare in applicazioni globalizzate utilizzando il linguaggio e i codici che sono generici
per l’organizzazione. Pianificare decodifiche in linguaggi multipli e alfabeti.


Non localizzare a livello del codice la gestione delle informazioni: sviluppare servizi generici.
Determinare il livello di integrazione dei dati da praticare: un database unico o un database per paese.

Valutare l’ipotesi di aggiungere i dati di linguaggio e script come chiave del database dove memorizzare il testo. Può
essere necessario memorizzare la versione in lingua locale, la versione transliterata e la versione tradotta.

Aumentare le capacità dei supporti di memorizzazione (più bytes per carattere nelle versioni localizzate)

Attivare servizi di traduzione

Avviare progetti pilota per implementare tecniche. Globalizzare significa sviluppare tecniche generiche, non patch
15.5
Progetti Pilota
Utilizzare i progetti pilota per sviluppare e documentare materiale da riutilizza re per altre applicazioni: metodi, procedure,
frameworks, standards, test, ‘lezioni imparate’, e modelli di pianificazione

Sviluppare, testare e documentare metodi e procedure per ‘Unicoding’ i database


Sviluppare standard e guide pratiche
Identificare, testare e documentare l’infrastruttura e il software necessario
Pagina 102 di 108
COMPILATORE WEBGATE – Manuale di programmazione
15.6
La globalizzazione e l’iSeries
Livello sistema operativo Supporto Unicode
V4R4
UC S-2 (CCSID 13488)
V5R1
IC U (International Components for
Unicode)
V5R3 + PTF
UTF-8 (1208/1209)
UTF-16 (1200/1201)
15.7
Definizione di campi Unicode in Webgate400
Per definire in un display file campi che supportino lo standard UNICODE abbiamo diverse possibilità.
Lo standard IBM prevede la definizione nel file video di campi di tipo tipo G (=grafico) completat i dalla specifica keyword
CCSID con il valore opportuno.
A
A
R REC01
UFLD1
50G
B
9 43CCSID(xxxxx)
Dove xxxxx può essere:
Release OS/400
4.2
5.3 (con PTF)
5.3 (con PTF)
Standard
UC S-2
UTF-16 BE
UTF-8
Valore
13488
1200 (formato interno di default per OS/400)
1208
Lo standard IBM è supportato da Webgate400 nei limiti imposti dalle release di realizzazione.
Con Webgate400 è possibile, con l’utilizzo della parola chiave text, supportare i campi UNICODE anche in release precedenti e
di avere alcune funzionalità aggiuntive legate a campi non di tipo G.
15.7.1Assegnazione di un CCSID tramite keyword TEXT
A
A
R REC01
FLD2
50A
B
9 43TEXT('<W><CI>xxxxx </CI></W>')
Dove, in senso generale, xxxxx è il CCSID da utilizzare nel trattamento del campo.
Con la scrittura di cui sopra è possibile far gestire il CCSID (SBCS o UNICODE), del campo video in oggetto, in modo
autonomo rispetto al sistema operativo.
15.7.1.1 UTF-EBCDIC (CCSID 1210)
Un caso particolare riguarda il CCSID n.ro 1210, catalogato, ma non attivamente supportato da IBM che ne classifica l’uso
nelle fasi di migrazione di applicazioni da SBCS a UNICODE.
A
A
R REC01
FLD2
50A
B
9 43TEXT('<W><CI>1210</CI></W>')
La scrittura riportata sopra consente l’utilizzo di un campo alfanumerico normale (no tipo G), per contenere dati UNICODE nel
formato UTF-EBCDIC (CCSID 1210).
Questo è sicuramente un vantaggio se pensiamo ad una migrazione ‘morbida’ dei database da SBCS a Unicode, in quanto non
obbliga la riprogettazione tout-court della base dati. Ma abilita vecchi database SBCS a contenere dati di tipo UNICODE.
15.7.2CCSID Variabile
Un’ulteriore possibilità offerta dall’interfaccia di Webgate è quella di poter determinare in modo variabile (a runtime), il CCSID
di un campo video.
A
A
A
Pagina 103 di 108
R REC01
FCCSID
FLD1
5S 0H
50A B
7 43TEXT('<W><CC>FCCSID</CC></W>')
COMPILATORE WEBGATE – Manuale di programmazione
La variabile FCCSID conterrà (a runtime) il codice del CCSID con cui verrà rappresentato il campo FLD1.
La conseguenza logica è che è possibile avere una applicazione nativa SBCS con a video diversi CCSID. Anche in questo caso
si tratta di migrazione ‘morbida’.
Un’applicazione pratica è quella del traduttore in cui il valore di un campo può essere espresso in una lingua, mentre il
corrispettivo che contiene la traduzione deve essere espresso nel CCSID di quella lingua.
A
A
A
A
A
Pagina 104 di 108
R REC01
FCCSID
TCCSID
FWORD
TWORD
5S 0H
5S 0H
50A B
50A B
7 43TEXT('<W><CC>FCCSID</CC> </W>')
7 43TEXT('<W><CC>TCCSID</CC></W>')
COMPILATORE WEBGATE – Manuale di programmazione
16
17 TABS CONTROL
I TABS Control sono formati video in grado di agire da contenitore per altri formati (detti pannelli o sheets).
Ciascun formato risulta accessibile tramite la pressione del mouse su 'linguette' (TABs), che riportano una etichetta di
identificazione del contenuto relativo ai singoli pannelli controllati (sheets).
Questa struttura a 'linguette', ad alta visibilità, è particolarmente utile per 'alleggerire' singoli formati e per meglio distribuire
le informazioni. Sono particolarmente apprezzate nei programmi che gestiscono molte informazioni (per esempio le
anagrafiche principali) apportando modifiche minime al display file e al programma.
I TABS Control possono contenere pannelli (o sheets) formati record singoli o composti (es. control + subfile). Inoltre, su uno
stesso video possono apparire più TABS Control (più container o gruppi), ognuno con le sue 'linguette' e i suoi pannelli
(superando anche il limite delle 132 colonne o delle 27 righe).
TABS Control
TAB (linguetta)
Sheet (pannello)
Esempio di utilizzo di un TABS Control in un tipico programma di gestione anagrafica clienti fornitori.
17.1
Modifiche al display file
17.1.1Overlay
Associare ai vari formati coinvolti la parola chiave OVERLAY.
17.1.2De finizione de l formato di controllo
E’ necessario definire un formato che svolgerà la funzione di contenitore e di controllo dei formati secondari.
A questo formato si associa la TEXT *TCL (TABS Control):
<W>*TCL:5;2;23;131</W>
In cui si definisce la natura del formato, la sua posizione e la su dimensione. Nel nostro esempio:




5 = riga
2 = colonna
23 = numero righe
131 = numero colonne
Pagina 105 di 108
COMPILATORE WEBGATE – Manuale di programmazione
17.1.3De finizione campi nel formato di controllo
In questo formato è necessario definire 5 campi hidden:
1.
TABS Structure: è un campo hidden alfanumerico sufficientemente grande; serve per definire la struttura della
tab. Viene caratterizzato dalla text :
<TS>EDMMSG001/M211001</TS>
E' obbligatorio fare riferimento ad un MSGID (in linea durante la conversione), nel quale si definisce la s truttura del
gruppo di formati da inserire nel TABS Control.
Il MSGID contiene fondamentalmente una lista di formati separata da punto e virgola.
Esempio di lista semplice
T1;T2;T3;T4;T5;
dove T1, T2, T3, T4 sono i formati da inserire nel gruppo.
Lo switch tra un formato e l'altro avviene in modo trasparente rispetto al programma di riferimento.
Esempio di lista composta
T1CTL:T1SFL;T1H:T1F;T2;
dove T1CTL è un subfile control abbinato al relativo subfile T1SFL, T1H è un formato header e T1F un formato foot
emessi nello stesso sheet, T2 è un formato singolo.
Lo switch tra un formato e l'altro avviene in modo trasparente rispetto al programma di riferimento.
Nel caso si voglia simulare la pressione di un tasto all'attivazione di un pannello (quando viene cliccata la linguetta
corrispondente), occorre specificare il tasto in questo modo:
T1CTL:T1SFL,CF01;T2,CF02;T3,CF03;T4,CF00;
Il tasto ENTER viene descritto con C F00.
2.
Display On/Off: è un campo 1 alfanumerico che contiene il valore ‘1’ se il TABS Control deve essere visualizzato
e ‘0’ nel caso contrario.
La text che lo definisce è:
*TABDLY
3.
TABS Description: è un campo hidden alfanumerico che contiene le varie descrizioni che vengono collocate sulle
etichette.
E’ caratterizzato dalla TEXT:
*TABDES
Può essere valorizzato a programma o tramite la text <MI>…</MI>. Nel nostro esempio:
Prezzi/Sconti;Bolle/Fatture/Trasporti;Classificazioni/Fidi;Specifiche/Spedizione/Previsioni;Consegna;
4.
Active Sheet: è un campo 2 alfanumerico e serve per identificare il panne llo (sheet) attivo in un determinato
gruppo (da ‘01’ a ‘99’). Consente quindi sia di impostare la sheet attiva alla prossima emissione del video che di
rilevare l'ultima tab (linguetta) 'cliccata' dall’operatore. Il numero corrisponde alla posizione del formato nel
MSGID.
E’ caratterizzato dalla TEXT:
*TABACT
5.
TABS Attributes: è un campo alfanumerico lungo 99 che corrisponde a un array di 99 elementi lunghi 1 in cui
ogni singolo elemento contiene l’attributo del sheet corrispondente. Gli attributi per ora gestiti sono:



Blank: DEFAULT,
N (=Not Display): tutti i campi della sheet corrispondente sono NOT DISPLAY.
P (=Protect): tutti i campi della sheet corrispondente sono protetti.
La text che lo definisce è:
*TABATR
Non è un parametro obbligatorio.
Pagina 106 di 108
COMPILATORE WEBGATE – Manuale di programmazione
6.
Running Group: è un campo alfanumerico lungo 1 riporta l'informazione del TABS Control correntemente attivo
sul video (nel caso in cui ne siano presenti più di uno): il valore '1' indica che il TABS Control contiene l'ultima tab
attivata (cliccata) dall’operatore. Al contrario contiene il valore '0'.
Può essere usato anche per forzare il TABS Control cui appartiene ad essere quello correntemente attivo sul video
durante una fase di emissione. Ovviamente tutti gli altri devono avere valore '0'.
La text che lo definisce è:
*TABRUN
Non è un parametro obbligatorio in quanto risulta utile solo quando sono stati definiti più TABS Control.
17.2
Modifiche al programma
Il programma richiede modifiche minime che devono essere apportate ad hoc per la versione grafica: se si desidera che il
programma continui a funzionare in ambiente 5250, le specifiche aggiunte dovranno essere subordinate al valore della
variabile WEBGATE=1.
Il ciclo di emissione del video deve essere strutturato in questo modo:

In fase di apertura del programma è necessario settare le variabili:

La tab attiva prima dell’emissione viene salvata in una variabile di comodo per condizionare in seguito la read:
Questo campo è utile per capire qual è l’ultimo formato visualizzato. Infatti il campo “Active Shee t” al momento della
lettura contiene il numero della tab cliccata dall’operatore.

WRITE di tutti gli sheet:

WRITE del formato “container”:
La scrittura di questo formato serve per impostare i gruppi visualizzati e le tabs attive o protette.

EXFMT di uno dei formati a video:

READ del formato “container”:
La lettura di questo formato serve per identificare il TABS Control e la sheet attivi.

READ dell’ultimo formato della struttura emesso:
Pagina 107 di 108
COMPILATORE WEBGATE – Manuale di programmazione
In seguito a questa read si può eseguire il controllo sul formato corrispondente: se il controllo ha esito positivo parte
il loop di gestione della tab attiva (variabile TCTL01ACT); se il controllo ha esito negativo viene forzata la riemissione
del formato precedente (variabile TCTL01PRV).
Prima di tornare alla WRITE, è possibile modificare i valori delle variabili “Active Sheet” e “Display” in modo da
definire di volta in volta il formato attivo e la modalità di visualizzazione.
17.3
Posizionamento del cursore
Il client di Webgate assegna il focus al primo campo che lo richiede esaminando il video partendo dall'angolo in alto a
sinistra.
In caso il primo campo appartenga ad uno sheet all'interno di un TABS Control, vengono attivati il gruppo corrispondente e la
tab relativa.
Se un campo appartenente ad uno sheet all'interno di un TABS Control, ha l'attributo Position C ursor attivato, vengono
attivati il gruppo corrispondente e la tab relativa.
NB. L'attributo PC o la presenza di un ERRMSG hanno sempre la precedenza nell'assegnazione del focus sia all'esterno che
all'interno del TABS Control.
Pagina 108 di 108