CFG08 - Ordinamento tasti funzione toolbar¶
Sorgente: cbl/cfg08.cbl | Tipo: Programma interattivo GUI con griglia | Program-ID: CFG08
Menu:
- Sistema > Configurazione > Menu/Operatori > Ordinamento toolbar
Scopo¶
Gestisce la sequenza di ordinamento dei tasti funzione nella toolbar dell'applicazione. Consente di riordinare l'elenco dei tasti riconosciuti dal sistema (ESC, F1..F12, S-F1..S-F9, CTRL-A, CTRL-E, INVIO, CTRL-X, CTRL-V, CTRL-F1) assegnando a ciascuno un numero d'ordine; l'ordine cosi' definito determina la posizione con cui i pulsanti compaiono nella barra dei comandi.
La configurazione e' memorizzata nella tabella configurazioni COGCNF (file COGCNF.ARC) tramite la chiave applicativa:
cfg-pack = "*"cfg-prog = "TOOLBAR"cfg-param-key = "ORDINAMENTO-TASTI-FUNZIONE"cfg-param-sub = " "
Il valore e' persistito nella redefines cfg-dati-toolbar del record COGCNF, che espone la tabella cfg-tot-exception (occurs 50): un array ordinato dei codici-tasto (funzio) nella sequenza voluta.
Struttura del programma¶
Il programma segue il pattern delle maschere Eurocoge basate su griglia con dettaglio, ma non gestisce un'anagrafica record-per-record: la griglia (e-tm-tab, via GRIDADMN) mostra l'elenco dei tasti funzione (tm-tasto-f) con il relativo numero d'ordine (tm-ordine), e la riga di dettaglio consente solo di modificare l'ordine di un tasto. La tabella interna tab-maschera (fino a k-max-ele-tab = 50 elementi) e' l'immagine di lavoro della sequenza.
Inizializzazione (apri)¶
ctr-abil, z-99-init-program, x-carica-lingua, open-files, rd-azi, get-divisa-conto. Imposta i tasti funzione (invio-modifica, F3 conferma, F3 aggiorna, F8 aiuto, Shift-F4 griglia), il titolo maschera "Gestione ordine tasti funzione", rd-msk-pop, prepara la griglia (z-prepara-tm-grid) e i controlli. In base a w-dc-called imposta modalita' Selezione (S) o Aggiornamento (A).
Caricamento configurazione (carica-tab)¶
Legge da COGCNF (rd-cogcnf) il record con chiave */TOOLBAR/ORDINAMENTO-TASTI-FUNZIONE:
- se non presente (
carica-tab-1): carica l'elenco completo dei tasti nell'ordine di default (ESC, F1..F12, S-F1, S-F4..S-F9, CTRL-A, CTRL-E, INVIO, CTRL-X, CTRL-V, CTRL-F1), assegnandotm-ordine (i) = i; - se presente (
carica-tab-2): riprende i codici-tasto salvati dalla tabellacfg-tot-exception (i)del record letto, riproponendo l'ordinamento memorizzato.
In entrambi i casi riempi-tm-tasto-f traduce ogni codice-tasto (tm-tot-exception) nella label testuale (tm-tasto-f) via EVALUATE sui letterali k-fun-wesc, k-f1..k-f12, k-sf*, k-fun-ctrl-*, k-fun-invio.
Griglia (a-grid / a-accept-grid)¶
L'invio su una riga apre la riga in modifica per cambiarne l'ordine. Shift-F4 apre la personalizzazione griglia (GRIDADMN). F3 conferma l'ordinamento: prima di salvare verifica che non esistano due tasti con lo stesso numero d'ordine (segnalazione flag-errori), poi esegue aggiorna e termina.
Riga di dettaglio (a-riga-dettaglio / a-tm-ordine / a-fine-dettaglio)¶
Accetta il solo campo Ordine (tm-ordine (i), controllo x-controlla-tm-ordine: valore obbligatorio diverso da zero). Alla conferma (a-fine-dettaglio) l'array viene riordinato (ordina-tm-tab, bubble sort su tm-ordine in ciclo1/ciclo2 che scambia tm-ele) e i numeri d'ordine vengono rinormalizzati progressivi; poi la griglia viene ricostruita.
Aggiornamento (aggiorna)¶
Trasferisce la sequenza di codici-tasto tm-tot-exception nell'array cfg-tot-exception del record COGCNF e lo persiste con wr-cogcnf; se il record esiste gia' (verbo non OK in scrittura) esegue rwr-cogcnf.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema (aperta via cogfiles.cpy) |
| COGCNF | cfg-chia1 = * / TOOLBAR / ORDINAMENTO-TASTI-FUNZIONE / sub spazio / pers operatore |
Tabella configurazioni (COGCNF.ARC). Qui usata per memorizzare la sequenza dei tasti toolbar nella redefines cfg-dati-toolbar (cfg-tot-exception occurs 50) |
| PRNTOPER | ptop-cod |
Anagrafica operatori di stampa: usata da x-controlla-tm-oper (rd-prntoper) per convalidare il codice operatore associato alla personalizzazione |
COPY incluse¶
Working-Storage¶
cfg08.wrk, k-u10.cpy, wrk-u10.cpy, wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy, utilgdad.cpy, utilwp04.cpy, utilu10.cpy, utilu20.cpy
Linkage¶
wcont.cpy, wcont1.cpy
Procedure Division¶
cfg08.decla, cfg08-01.scr (screen), stato1.cpy, GetDCont.cpy, sendwp04.cpy, stato.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cfg08.prc
Le routine di I/O su COGCNF (rd-cogcnf, wr-cogcnf, rwr-cogcnf) e su PRNTOPER (rd-prntoper) sono incluse tramite la catena di COPY generata (.k01).
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Inizializza) e personalizzazione colonne (Shift-F4) |
| COGU10W | Formattazione/gestione valori numerici (routine z-u10, campo funzio) e recupero divisa di conto (get-divisa-conto) |
| COGWP04 | Help/selezione operatore, richiamato via send-wp04 (sendwp04.cpy) sul campo operatore con F8 |
Configurazioni RNEWCONF¶
Il programma non usa il meccanismo RNEWCONF (x99-confi). La configurazione qui gestita e' invece persistita nella tabella configurazioni COGCNF con chiave */TOOLBAR/ORDINAMENTO-TASTI-FUNZIONE, tramite la redefines cfg-dati-toolbar.
Note tecniche¶
- Non e' un'anagrafica: la "griglia" non elenca record di una tabella, ma i tasti funzione del sistema; l'unico dato modificabile per riga e' il numero d'ordine. La sequenza risultante e' salvata in un unico record di
COGCNF. - Codici-tasto simbolici: i valori memorizzati in
cfg-tot-exception/tm-tot-exceptionsono i codici numerici dei tasti (k-fun-wesc,k-f1..k-f12,k-sf*,k-fun-ctrl-*,k-fun-invio, ecc.), tradotti in etichette leggibili solo per la visualizzazione. - Ordinamento:
ordina-tm-tabesegue un bubble sort scambiando gli elementitm-elein base atm-ordine, quindi rinumera progressivamente; il controllo anti-duplicato sull'ordine avviene alla conferma F3 ina-accept-grid. - Codice ampiamente commentato: gran parte della logica di anagrafica ereditata dal modello di partenza (paragrafi
a-tm-fl-oper,a-tm-oper, i rami Ctrl-A/Ctrl-E,c-cancella) e' disattivata/commentata: nell'uso corrente il programma gestisce solo l'ordinamento della toolbar. - Redefines
cfg-dati-toolbar: il layout del valore inCOGCNFper questa chiave e' documentato direttamente nel copybookcogcnf.cpy.