Questa parte tratta della gestione dei messggi sui programmi.
I messaggi vengono creati su Screens tramite il TF "F9".
I Messaggi con la spunta "Messaggio Generico" saranno memrizzati in "gen.lng", tutti gli altri invece nello file specifico del programma es. areamsg.lng.
Gli "Id messaggio" saranno del tipo "msgnnn" done nnn=progressivo numerico cosicchè all'interno del programma verranno referenziati come:
move m-msgnnn to wb-msg
Screens genera sia la working necessaria (m-idmessaggio) sia 2 perform standard:
x-set-codicemessaggio-id.
initialize util-areamsg
move “codicemessaggio” to areamsg-id
.
x-set-codicemessaggio.
x-set-codicemessaggio
move codicemessaggio to wb-msg
.
Sono i messaggi che vengono emessi di default per es. dall'acc-conf o dalla test-wesc (presenti in util1.cpy). Per gestire questi si è creato un programma "fake" su screens per poter gestire l'inserimento di mesasggi all'interno della gen.lng (usando la spunta "Messaggio generico" presente nell'opportuna maschera): il programma si chiama "MESSAGGI" vengono inseriti i messaggi generici utilizzati in copy generiche, questi avranno id del tipo:
gen-codiceparlante
es.
m-gen-cnf-question="Confermi?"
m-gen-wrn-loose-update="Attenzione: vuoi perdere gli aggiornamenti?"
L'attuale elenco di messaggi gestiti è il seguente:
Tipo |
Id messaggio |
Sez. |
Testo messaggio |
Generico? |
|
Messaggio |
gen-cannot-logfext |
1 |
Il programma LOGFEXT non puo' essere eseguito; |
Generico |
|
Messaggio |
gen-cannot-logfext |
2 |
Lo stato di errore e': |
Generico |
|
Messaggio |
gen-cannot-logfext1 |
|
Il programma LOGFEXT non puo' essere eseguito; |
Generico |
|
Messaggio |
gen-cannot-logfext2 |
|
Lo stato di errore e': |
Generico |
|
Messaggio |
gen-cannot-logfile |
|
Impossibile eseguire la chiamata a 'LOGFILE'!! |
Generico |
|
Messaggio |
gen-cnf-canc1 |
|
CONFERMA: |
Generico |
|
Messaggio |
gen-cnf-question |
|
Confermi? |
Generico |
|
Messaggio |
gen-cnf-update |
|
Confermi l'aggiornamento dei dati? |
Generico |
|
Messaggio |
gen-wrn-canc1 |
|
ATTENZIONE: vuoi eseguire la cancellazione? |
Generico |
|
Messaggio |
gen-wrn-canc2 |
|
ATTENZIONE: confermi la cancellazione? |
Generico |
|
Messaggio |
gen-wrn-loose-update |
|
Attenzione: vuoi perdere gli aggiornamenti? |
Generico |
|
Messaggio |
gen-wrn-wanna-exit |
|
Attenzione: vuoi veramente uscire? |
Generico |
|
Messaggio |
gen-wrn-wanna-save |
|
Vuoi salvare prima di uscire? |
Generico |
|
|
|
|
|
|
|
La generazione su Screens di MESSAGGI serve a valorizzare gen.lng per cui è importante venga sempre fatta quando si aggiunge/modifica un messaggio
I messaggi generici sono inseriti in 2 copy distinte:
"wrk-m-gen.cpy" contiene la working (inserita nella WOPENF.CPY)
"prc-m-gen.cpy" contiene le subroutine opportune (x-set-codicemessaggio) e la lettura dei messaggi da gen.lng mediante
la x-read-lingua-m-gen (inserita nella UTIL1.CPY. La x-read-lingua-m-gen viene eseguita SOLO una volta all'interno del programma perchè poi viene alzato un flag che inibisce ulteriori caricamenti.
Uno dei problemi evidenziati nella gestione dei messaggi in lingua è il poter identificare la riga di codice sul programma, da cui proviene il messaggio indicato.
Per fare questo si è deciso di procedere in questo modo:
Screens sviluppa un blocco di codice utile all'implementazione di una corretta gestione dei messaggi su programma quindi è importante rigenerare il programma tramite F7 su Screens.
In questo modo all'interno di un programma in cui è presente la:
move m-for-no-sel to wb-msg
perform vbx-msg
per implementare la visualizzazione dell'id del messaggio basterà aggiungere:
perform x-set-m-for-no-sel-id
move m-for-no-sel to wb-msg
perform vbx-msg
oppure sostituire in blocco con
perform x-set-m-for-no-sel
perform vbx-msg
dove codicemessaggio=m-idmessaggio
sia la x-set-codicemessaggio-id che la x-set-codicemessaggio sono sviluppate dalla rigenerazione via screens.
Nella gestione programmi è stato aggiunto il campo "Lingua?" che indica che sul programma è stata implementata una corretta gestione della lingua, sia per quanto riguarda la codifica dei messaggi sia per quanto riguarda l'implementazione della valorizzazione del codice mesaggio tramite la x-set-codicemessaggio-id, copra descritta.