Vai al contenuto

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), assegnando tm-ordine (i) = i;
  • se presente (carica-tab-2): riprende i codici-tasto salvati dalla tabella cfg-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-exception sono 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-tab esegue un bubble sort scambiando gli elementi tm-ele in base a tm-ordine, quindi rinumera progressivamente; il controllo anti-duplicato sull'ordine avviene alla conferma F3 in a-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 in COGCNF per questa chiave e' documentato direttamente nel copybook cogcnf.cpy.