Progetto Getra Graphic
Argomenti della Giornata
Nuova architettura di Webgate400
Implementazioni “semplici” Interfaccia
Nuova “Configurazione Runtime”
Implementazioni “avanzate” Interfaccia
Alcune “facility” di Webgate400
“Più avanti” nella Modernizzazione
1
Progetto Getra Graphic
Nuova architettura di Webgate400
A tempo di esecuzione, i DSPF convertiti diventano vere e
proprie tabelle (PF) collocate in apposite librerie di
appoggio: default = WGTDBL400
Ogni tabella conterrà la definizione di un “formato record”.
WG4SYSFD/WGTDBIDX è l’indice di queste tabelle.
Ad ogni chiusura di programma vengono “svuotate” le
relative tabelle.
Operazioni in IPL di ottimizzazione delle tabelle tramite
l’utility WGUIMGR -r (anche controllo congruità)
2
Progetto Getra Graphic
Nuova architettura di Webgate400
Vantaggi:
Il peso nell’effettuare operazioni complesse viene spostato
dal Client al Server
Possibilità di “estendere” le tabelle da interfaccia
Il Client non deve “vedere” tutti i record di Subfile per
Esportarli, Ordinarli, Gerarchizzarli, Filtrarli, ecc.
Parziale abbandono degli *USRIDX nel rapporto
Client/Server
Non è richiesta nessuna ri-conversione dei programmi
attuali
3
Progetto Getra Graphic
Nuova architettura di Webgate400
Svantaggi:
Questa pagina è stata intenzionalmente lasciata vuota
4
Progetto Getra Graphic
Nuova architettura di Webgate400
Attivazione:
Agendo sul file WG4SYSFD/ODAZI (record EDM/999999)
Da Gestione Ambienti On Demand
5
Progetto Getra Graphic
Implementazioni “semplici” Interfaccia
Combinazione tasti ALT+R per simulare tasto
destro del mouse su incrocio subfile
Combinazione tasti ALT+O per ordinare colonne
subfile
Modalità esposizione Tasti Funzione
Modalità esposizione Opzioni Subfile
Modalità visualizzazione Posizione Cursore
Modalità Rotella del Mouse (wheel mouse):
6
Progetto Getra Graphic
Implementazioni “semplici” Interfaccia
Marcatura Campi Input Subfile.
Espansione Subfile in Windows : *fmtatr2193=R(1)
SFLRCDNBR: (CURSOR *TOP)
Svuotamento Buffer Tastiera: non tipo CTRL 5250
(Ripristino) ma attivo/disattivo
Blocco colonne Subfile (impedire lo scorrimento delle
colonne oltre l'area di visualizzazione)
7
Progetto Getra Graphic
Nuova “Configurazione Runtime”
Nuovo look interfaccia principale
Ripartite logicamente le “Gestioni”
Più chiare (e immediate) le selezioni
Personalizzabili chiamate
funzioni Sistema
8
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
Solo per Designer/Abilitati a Filtri
Si attivano premendo ALT+F (cursore nel subfile)
Semplici o Composti (1 o più righe di filtro)
Vengono applicati in
AND se applicati
sulla stessa riga, in
OR tra più righe)
Click su pulsante elenco
per aprire il filtro guidato
9
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
Sintassi SQL (where).
Esempio 1:
– Filtrare i clienti che hanno avuto movimenti nell’anno
xxxx
IN(
SELECT jcdcan FROM jfcmv03l WHERE
jcdsoc='001' AND
jcdtan='C' AND jdtreg
BETWEEN 20070101 AND 20071231
)
10
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
…continua Sintassi SQL (where).
Esempio 2:
–
Filtrare i clienti che hanno prodotto (in totale) più di yyyyyy
IN(
SELECT fmtccl FROM prd5000f
GROUP BY fmtccl
HAVING SUM(fmsnmt01)<3000
)
11
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
…continua Sintassi SQL (where).
Esempio 3:
–
Filtrare solo i clienti di una provincia (campo non presente nel
subfile)
IN(
SELECT jancan FROM jfana00f WHERE
jansoc='001' and
jantan='C' and
janprv='BS‘
)
12
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
…continua Sintassi SQL (where).
Esempio 4:
–
Filtrare solo i clienti che si chiamano “ROSSI”
LIKE ‘%ROSSI’
Oppure
LIKE ROSSI
13
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
…continua Sintassi SQL (where).
Per i campi alfabetici gli apici (') non sono obbligatori
Se non specificato nessun operatore si assume = (uguale)
Per l’istruzione LIKE se non indicato viene assunto
automaticamente in testa e in coda il simbolo %
(percentuale)
14
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
Salvataggio Filtri con Estremi Personalizzazione
15
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Filtri Subfile
Richiamo filtri salvati
L’applicazione di un filtro
è percepibile perché l’intestazione
di colonna diventa Rossa
16
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Accesso non Vedenti
E’ possibile attivare la “voce” a Webgate400, utile soprattutto
per gli utenti non vedenti.
Si attiva dal menù “?” attraverso la voce “Abilita Lettura”
Vengono lette automaticamente le informazioni di Login e ogni
titolo Finestra (ALT+T per rileggerlo).
Attraverso poi gli “Attributi Oggetti” è possibile impostare quali
“etichette+valore campo” verranno letti.
17
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile
Tramite un apposita interfaccia
(richiamabile dal menù StrumentiPersonalizzazioni-Aggiunta Colonne)
sarà possibile aggiungere colonne ai subfile.
In generale, i campi/colonne recuperati nei formati record
presenti verranno descritti tramite la forma
&nomeformato.nomecampo (oppure solo &nomecampo se
il formato è lo stesso su cui viene fatta la
personalizzazione).
18
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile
I campi che possono essere aggiunti possono essere
valorizzati in quattro modalità diverse:
DECODIFICHE
EXIT PROGRAM
FORMULE MATEMATICHE
ISTRUZIONI SQL
19
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Parte comune
Tutti i 4 tipi di aggiunta hanno in comune il primo pannello di
dati:
20
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Decodifiche
Nel dizionario di Webgate400 viene codificato per
ogni campo che programma usare per decodificarlo
(tecnica usata anche in DBLink, FastQuery, ecc.)
Il programma chiamato ha una struttura di parametri
fissa, ma potrebbe essere usato un pgm standard
per le decodifiche utilizzata attraverso il files
DECOD
21
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Decodifiche
I parametri di questo programma di decodifica saranno:
Per le decodifiche composte, è previsto il “campo associato”
22
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Exit Program
Verrà richiamato il programma dichiarato passando due
particolari strutture di parametri:
La prima è unica e identificherà quante strutture del
secondo tipo verranno passate, che dimensione avranno e
in quale struttura c’è il campo che si deve valorizzare
La seconda struttura verrà ripetuta “n” volte e contiene
l’intero elenco dei campi del formato record con le sue
caratteristiche, compreso dove nel buffer si trova il dato
23
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Exit Program
Queste sono le strutture: vedere esempio CWG009
24
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: Formula
Valgono le () e sono ammessi i classici operatori algebrici.
Dovendo far riferimento ad un dato presente su un altro
formato (esposto): &nomeformato.nomecampo
25
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: SQL
Rispettando la sintassi dell’SQL, è possibile fare delle
“SELECT” utilizzando come WHERE I campi presenti a video
(non necessariamente lo stesso formato).
Per sfruttare il fatto che da una Select potremmo recuperare
più campi, è stato introdotto il concetto di campo “Master”
e campo “Slave”. Quindi può essere eseguita una sola
Select che popola più colonne aggiunte.
26
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: SQL
Nel caso riportato sopra, la Select riguarda più campi: JANIN1,
JANIN2, JANLOC, JANPRV
Se non diversamente specificato, il primo campo in Select
viene utilizzato per popolare questa colonna aggiunta. Il
nome della nuova colonna sarà utilizzato come “Master” in
modo da ripartire gli altri campi (JANIN2, JANLOC, JANPRV)
su altrettanti nuove colonne aggiunte.
27
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: SQL
Nel caso riportato sopra, la Select riguarda più campi: JANIN1,
JANIN2, JANLOC, JANPRV
Se non diversamente specificato, il primo campo in Select
viene utilizzato per popolare questa colonna aggiunta. Il
nome della nuova colonna sarà utilizzato come “Master” in
modo da ripartire gli altri campi (JANIN2, JANLOC, JANPRV)
su altrettanti nuove colonne aggiunte.
28
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
Aggiunta colonne subfile: SQL
Questo sarà quello che metteremo nel secondo
campo aggiunto (il “Campo Riferimento” è utile se
il nome del campo aggiunto è diverso da quello
utilizzato nel comporre lo statement Sql sul campo
Master)
E così via…..
29
Progetto Getra Graphic
Implementazioni “avanzate” interfaccia
I Colori
La gestione dei colori avviene
tramite il menù Strumenti +
Gestione Colori.
Un utente Designer può
memorizzare i colori scelti.
Le impostazioni Company/Utente vengono salvate su
IFS nella cartella /webgate400/styles (crearla se
assente). Le impostazioni di default devono essere
create da un Client e poi copiate dalla cartella di
cache /IndirizzoIP/Styles alla cartella
/webgate400/styles, chiamando l’XML: default.xml
30
Progetto Getra Graphic
Alcune “facility” di Webgate400
Le Tabs e gli attributi di formato:
Sono SQL con cui possiamo “arricchire” un video direttamente
da interfaccia.
Possono essere:
Statiche (la “where” è fissa)
Dinamiche (la “where” è legata a qualche altro campo
presente a video (sia parte fissa che subfile)
Non dobbiamo dimenticare che all’interno delle Tabs,
possiamo utilizzare i “Format Attribute” di Webgate400 per
creare Gerarchizzazioni (con Riepiloghi) e possiamo anche
introdurre le chiavi per poter generare un grafico.
31
Progetto Getra Graphic
Alcune “facility” di Webgate400
Le Tabs e gli attributi di formato:
Il programma CWG002 altro non è che un video vuoto (lato
codice, solo EXFMT), e attraverso questa Tabs
diventa qualcosa di fruibile
32
Progetto Getra Graphic
Alcune “facility” di Webgate400
Le Tabs e gli attributi di formato:
Addirittura in grado, premendo l’apposito pulstante
produrre immediatamente un grafico.
di
33
Progetto Getra Graphic
Alcune “facility” di Webgate400
Immagini e Button Image:
Facilmente vengono messe nei form Immagini, Text
Icons e Extended Icons (per I Button Image).
E’ utile ricordare che è possibile utilizzare proprie
immagini (soprattutto .ico), magari mettendole in
una sottocartella della /WGPublic.
Sia per le Text Icons che per le Extended Icons è
utile ricordare che per “standardizzare” le
descrizioni associate è possibile codificale nel file
XFIMG della propria libreria oggetti (anche quando
hanno associato un comando)
34
Progetto Getra Graphic
Alcune “facility” di Webgate400
Keyword “poco” conosciute:
<w>*hide</w>: utilizzata sui campi Hidden,
impedisce che un informazione non utile in grafica
venga passata dal Server al Client.
<w>*cpyright</w>: 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)…
<w>*fit</w>: adatta le immagini alla dimensione
reale del campo.
35
Progetto Getra Graphic
Alcune “facility” di Webgate400
Keyword “poco” conosciute:
<w><h>intestazione_colonna</h></w>:
– Semplice: una sola descrizione
– Condivise: si raggruppano diverse intestazioni tramite una parte
comune: se contigue l’effetto è:
– Variabile: <h>nomeFormato.nomevariabile</h>
– File Messaggi: <h>&filemessaggi.mic</h>
In tutti I casi, se presente anche costante/variabile a video, è
necessario attribuirle la keyword (<w>*ignore</w>)
36
Progetto Getra Graphic
Più avanti nella Modernizzazione
%Bif:
E’ possibile utilizzare le %Bif (Build in Function)
anche quando riguardano le operazioni di I/O con il
DSPF:
Chain Subfile If %Found(Subfile); ReadC Subfile If
%Eof(Subfile)
L’unico prerequisito è che dopo la %Bif sia sempre
dichiarato il nome del formato record utilizzato.
Rpg/free:
E’ possibile utilizzare l’RPG/Free anche per le parti di
gestione del DSPF.
37
Progetto Getra Graphic
Più avanti nella Modernizzazione
Drag & Drop:
L’effetto del Drag & Drop avviene tramite un particolare tipo di
Service Command.
Viene invocato il Service Command quando uno o più elementi
a video specifici vengono “draggati”. Il Comando può già
autonomamente chiamare dei componenti di “Gestione
dell’oggetto” (Interrogazione, Modifica, Cancellazione,
Stampa), oppure compiere un azione che un altro
programma, attraverso un artificio (non esistono eventi in
RPG!), può intercettare.
38
Progetto Getra Graphic
Più avanti nella Modernizzazione
Drag & Drop:
Gli esempi CWG004 e CWG005 sono stati predisposti proprio
per dimostrarne l’effetto.
Dal pgm Origine (CWG004) sarà possibile “draggare” uno o
più Codici Cliente nel pgm Destinazione (CWG005)
39
Progetto Getra Graphic
Più avanti nella Modernizzazione
Drag & Drop:
Il Service Command è stato realizzato in questo modo: da
notare il 1° parametro ‘*DS’ e 6° che è ‘&5’ e non ‘%5’
40
Progetto Getra Graphic
Più avanti nella Modernizzazione
LOBS:
Gestione di oggetti complessi all'interno di applicazioni 5250
convertite Webgate400.
Obiettivo: poter gestire oggetti esterni come fossero dati
nativi delle applicazioni, utilizzando una tecnica simile a
quella utilizzata per la gestione dei CLOB/BLOB dal DB/2,
ma semplificata dal punto di vista della programmazione.
L’utilizzo richiede conoscenza delle tecniche di realizzazione e
gestione degli oggetti CLOB (Character Large Object) o
BLOB (Binary Large Object):
No!!
41
Progetto Getra Graphic
Più avanti nella Modernizzazione
LOBS:
Alla data sono gestiti due tipi di oggetti LOB: Txt e Mht
L’esempio CWG003 dimostra l’utilizzo di entrambe i controlli.
I campi lob devono avere il nome con il prefisso WLOB_ e
devono necessariamente essere lunghi 18Char.
Devono avere la TEXT <lob> … </lob>, qualificante come
negli esempi seguenti:
<w><lob>txt h:10 w:80 s:F1 d:F4 l:F5 </lob></w>
<w><lob>mht h:10 w:80 s:F1 d:F4 l:F5</lob></w>
Le key s: (tasto save), d: (tasto delete), l: (tasto lose change)
42
Progetto Getra Graphic
Più avanti nella Modernizzazione
LOBS:
Il programmatore deve fondamentalmente occuparsi di
salvare sui suoi normali archivi il campo lungo 18Char!
Vengono archiviati su IFS in un particolare percorso:
/WGPublic/Lobs/lobstore_subdir/annomese/UNIDE.xxx
I Lobs possono essere trasportati da un sistema all’altro
semplicemente salvando e ripristinando la directory IFS che
li contiene (non va mai salvato il loro indice).
Hanno una serie di Api per automatizzare alcune funzioni:
Copia, Rebuild index, Delete, ecc.
43
Progetto Getra Graphic
Più avanti nella Modernizzazione
LOBS:
Il Lobs “Txt” è un oggetto che permette di gestire a video un
editor avanzato (anche se solo testuale) e permette di
creare/modificare/stampare testi direttamente dai pgm.
44
Progetto Getra Graphic
Più avanti nella Modernizzazione
LOBS:
Il Lobs “Mht” è un oggetto che permette di gestire a video un
editor avanzato (quello di Outlook Express) e permette di
creare/modificare documenti direttamente dai pgm.
45
Progetto Getra Graphic
Più avanti nella Modernizzazione
Script e WGEXEIOUT:
Alcuni applicativi creano/gestiscono documenti (tipo .pdf, .doc,
.xls, .html, .xml) e hanno la necessità di aprirli da un
programma.
L’utilizzo dell’STRPCCMD (anche emulato da Webgate400)
funziona se il documento è già sul PC (o in un percorso di
rete).
Se invece l’oggetto è su IFS (non condiviso) è possibile usare
il componente WGEXEIOUT per aprire il documento da
programma.
46
Progetto Getra Graphic
Più avanti nella Modernizzazione
Script e WGEXEIOUT:
L’esempio CWG008 dimostra come sia possibile creare un
semplice files HTML su IFS per poi aprirlo direttamente.
La stessa cosa può essere utilizzata tramite Link (exei://)
richiamando un programma RPG: Il Print Box di
Webgate400, fondamentalmente fa questo.
47
Progetto Getra Graphic
….fine….
Grazie a tutti dell’attenzione!
48