Vai al contenuto

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 = COGT30 e t30-caller valorizzato, copybook utilt30.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 in t30-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 in apri confrontando t30-called con k-program-id e verificando t30-caller not = spaces.
  • Modalita' abilitazione: il campo ptpr-modo-abi assume O (Ottimistica) o P (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 a O.
  • 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 valore ptpr-modo-abi gestito qui e' proprio il parametro che regola la strategia di locking usata dagli altri programmi per gli operatori associati al profilo.