COGT30 - Profili operatori (abilitazioni)¶
Sorgente: cbl/cogt30.cbl | Tipo: Programma interattivo GUI con griglia (anche richiamabile via CALL come lookup) | Program-ID: COGT30
Menu:
- Sistema > Configurazione > Menu/Operatori > Profili Operatori
Scopo¶
Gestisce l'anagrafica dei profili operatore (tabella PRNTPROF), cioe' i profili di abilitazione a cui gli operatori possono essere associati. Ogni profilo e' identificato da un codice alfanumerico e da una descrizione, e definisce la modalita' di abilitazione al blocco record: Ottimistica (O) o Pessimistica (P).
Il programma opera in due modalita':
- Da menu: entra in modalita' "Aggiornamento" (
a-modalita = "A") per inserire, modificare ed eliminare profili. - Richiamato via CALL (
t30-called = COGT30et30-callervalorizzato, copybookutilt30.cpy): entra in modalita' "Selezione" (a-modalita = "S"), consentendo all'operatore di scegliere un profilo dalla griglia; il codice e la descrizione scelti sono restituiti int30-out-cod/t30-out-des.
Struttura del programma¶
Il programma segue il pattern standard delle maschere Eurocoge basate su griglia con dettaglio: una griglia (e-tm-tab, gestita via GRIDADMN) elenca i record, e un frame di dettaglio consente inserimento/modifica della singola riga. La tabella interna tab-maschera (fino a k-max-ele-tab = 900 elementi) e' l'immagine di lavoro dei record PRNTPROF.
Inizializzazione (apri)¶
move k-program-id, ctr-abil, z-99-init-program, open-files, rd-azi. Rileva la chiamata da altro programma confrontando t30-called/t30-caller per impostare w-dc-called = "S" e la modalita' selezione. Abilita i tasti funzione (invio, invio-modifica, F3 conferma, in selezione F3 selezione/F3 modifica, F8 aiuto, Shift-F4 griglia, Ctrl-A aggiungi, Ctrl-E elimina), prepara la griglia (z-prepara-tm-grid) e i controlli (z-costruisci-controlli).
Caricamento (a10 / a10-loop)¶
Scandisce PRNTPROF dall'inizio (st-prntprof-notmin + rdnxt-prntprof) e riempie tm-tab con codice (tm-cod <- ptpr-cod), descrizione (tm-des <- ptpr-des) e modalita' abilitazione (tm-modo-abi <- ptpr-modo-abi, default O se a spazi) di ogni profilo. Se la tabella e' piena (k-max-ele-tab) mostra il messaggio m-tabella-piena. Al termine (a30) costruisce la griglia (z-costruisci-grid); se non esiste alcun record entra direttamente in inserimento riga.
Griglia e selezione modalita' (a-grid / a-accept-grid)¶
Il tasto F3 commuta tra modalita' Selezione e Aggiornamento (la commutazione a Selezione avviene solo se w-dc-called = "S", cioe' se lanciato via CALL). In modalita' Selezione l'invio su una riga restituisce codice e descrizione al chiamante (t30-out-cod/t30-out-des) e termina; in modalita' Aggiornamento l'invio apre la riga in modifica (previo controllo w-abi-agg). Ctrl-A aggiunge una riga (controllo w-abi-ins), Ctrl-E la elimina con conferma (controllo w-abi-del, c1-ctrl-canc, c-cancella). Shift-F4 apre la personalizzazione griglia (GRIDADMN).
Riga di dettaglio (a-riga-dettaglio ... a-riga-dettaglio-fine)¶
Accetta codice profilo (a-tm-cod, chiave, editabile solo in inserimento - vedi z-cambia-tm-cod/x-enabled-tm-cod), descrizione (a-tm-des) e modalita' abilitazione (a-tm-modo-abi, radio gestito via COGS60). In inserimento verifica che il codice non esista gia' (x-controlla-tm-cod con rd-prntprof-lk). Alla conferma (a-riga-dettaglio-fine) rilegge in lock il record per determinare se e' presente o cancellato nel frattempo (correggendo a-operazione di conseguenza) e infine scrive (wr-prntprof) o riscrive (rwr-prntprof) il record su PRNTPROF, aggiornando la griglia via GRIDADMN (Add-Record / Modify-Record).
Cancellazione (c-cancella)¶
Rilegge il record in lock (rd-prntprof-lk) e, se presente, lo elimina (del-prntprof), quindi compatta la tabella interna e ricostruisce la griglia.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema (aperta via cogfiles.cpy) |
| PRNTPROF | primaria ptpr-chia1 (ptpr-cod); secondaria ptpr-chia2 (ptpr-des + ptpr-cod); accesso dinamico |
Anagrafica profili operatore: codice (ptpr-cod), descrizione (ptpr-des), modalita' abilitazione (ptpr-modo-abi) |
COPY incluse¶
Working-Storage¶
cogt30.wrk, wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy, utilgdad.cpy
Linkage¶
wcont.cpy, wcont1.cpy, utilt30.cpy
Procedure Division¶
cogt30.decla, cogt30-01.scr (screen), stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cogt30.prc
Le routine di I/O su PRNTPROF (st-, rdnxt-, rd-, rd-...-lk, wr-, rwr-, del-prntprof) sono incluse tramite la catena di COPY generata (.k01).
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record) e personalizzazione colonne (Shift-F4) |
Il programma e' a sua volta richiamabile via CALL come finestra di selezione profili (discriminante t30-called/t30-caller di utilt30.cpy).
Configurazioni RNEWCONF¶
Il programma non contiene un paragrafo x99-confi e non legge chiavi RNEWCONF applicative.
Note tecniche¶
- Doppia veste (menu / lookup): la stessa maschera funge da anagrafica quando lanciata da menu e da finestra di selezione quando richiamata via CALL; il discriminante e'
w-dc-called, valorizzato inapriconfrontandot30-calledconk-program-ide verificandot30-caller not = spaces. - Modalita' abilitazione: il campo
ptpr-modo-abiassumeO(Ottimistica) oP(Pessimistica); nella griglia viene mostrato in chiaro come "Ottimistica"/"Pessimistica" (x-riempi-grid-record). In caricamento e in accept, se il valore e' a spazi viene forzato aO. - Codice chiave immodificabile in modifica: il campo codice (
ptpr-cod) e' abilitato solo in inserimento; in modifica resta disabilitato (z-cambia-tm-cod/x-enabled-tm-cod). - Blocco pessimistico in dettaglio: entrando in modifica riga la routine rilegge il record in lock (
rd-prntprof-lk); il valoreptpr-modo-abigestito qui e' proprio il parametro che regola la strategia di locking usata dagli altri programmi per gli operatori associati al profilo.