COGT25 - Periferiche per postazione¶
Sorgente: cbl/cogt25.cbl | Tipo: Programma interattivo GUI con griglia (gestione tabella) | Program-ID: COGT25
Menu:
- Sistema > Configurazione > Stampanti
Scopo¶
Gestisce l'abbinamento tra una postazione di lavoro e le periferiche che su di essa possono essere utilizzate. Per la postazione selezionata mostra in griglia l'elenco delle periferiche abilitate; permette di aggiungere e rimuovere righe di abbinamento. Ogni riga collega la postazione (PRNTPOST) a una periferica (PRNTPERF) e ne visualizza a corredo la stampante collegata (PRNTSTMP).
I dati risiedono nella tabella di raccordo PRNTPFPS (periferiche abilitate per postazione), che contiene solo la coppia postazione+periferica; descrizioni di periferica e stampante sono lette dalle rispettive anagrafiche per la sola visualizzazione.
Il programma puo' operare come funzione autonoma da menu oppure essere richiamato in modalita' selezione da un chiamante (variabile w-dc-called, oggi predisposta ma con il blocco di attivazione commentato in apri): in modalita' selezione la griglia consente di scegliere una periferica e restituirla al chiamante.
Struttura del programma¶
Il programma segue il pattern standard delle maschere Eurocoge a due livelli: griglia di elenco (a-grid) piu' riga di dettaglio (a-riga-dettaglio), con la griglia gestita da GRIDADMN.
Inizializzazione (apri)¶
ctr-abil, z-99-init-program, open-files, rd-azi; abilitazione dei tasti funzione previsti (Invio, F3 conferma, F8 aiuto, Shift-F4 griglia, Ctrl-A aggiungi, Ctrl-E elimina); lettura lingua e titolo maschera (x-carica-lingua, rd-msk-pop); impostazione della modalita' (a-modalita = "S" se richiamato, altrimenti "A"); preparazione griglia (z-prepara-tm-grid) e controlli (z-costruisci-controlli).
Selezione postazione (a-tm-pst-cod)¶
Accept del codice postazione con:
- F8: help postazioni tramite COGT27 (restituisce
t27-out-codintm-pst-cod); - validazione
x-controlla-tm-pst-cod: la postazione deve esistere in PRNTPOST (rd-prntpost), altrimenti errore; letta la descrizione (ptpo-des) intm-pst-des.
Confermata la postazione, a-inizio-dati esegue carica-dati e costruisce la griglia.
Caricamento righe (carica-dati)¶
Scansione di PRNTPFPS a partire da ptps-pst = tm-pst-cod (st-prntpfps-notmin + rdnxt-prntpfps), con rottura quando ptps-pst cambia. Per ogni periferica trovata (ptps-prf):
- legge PRNTPERF (
rd-prntperf) per descrizione (ptpf-des) e stampante collegata (ptpf-stm); - legge PRNTSTMP (
rd-prntstmp) per la descrizione della stampante (ptst-des).
Le righe sono accumulate in tm-tab (max k-max-ele-tab = 900).
Griglia (a-grid / a-accept-grid)¶
Navigazione con GRIDADMN. Da qui:
- F3 commuta tra modalita' Aggiornamento e Selezione;
- Ctrl-A apre il dettaglio in inserimento (
a-operazione = "I"); - Ctrl-E elimina la riga corrente previa conferma (
c1-ctrl-canc,c-cancella); - Invio in modalita' selezione restituisce la periferica al chiamante (ramo commentato).
Riga di dettaglio (a-riga-dettaglio / a-tm-prf-cod)¶
Accept del codice periferica con:
- F8: help periferiche tramite COGT24 (restituisce
t24-out-codintm-prf-cod); - validazione
x-controlla-tm-prf-cod: la periferica deve esistere in PRNTPERF; vengono lette descrizione, stampante collegata e descrizione stampante; se in inserimento la coppia postazione+periferica esiste gia' in PRNTPFPS (rd-prntpfps-lk) l'inserimento e' rifiutato.
Conferma / salvataggio (a-riga-dettaglio-fine)¶
Con F3 conferma: aggiorna la griglia via GRIDADMN (Add-Record / Modify-Record), quindi scrive su PRNTPFPS la coppia ptps-pst (postazione) + ptps-prf (periferica) con wr-prntpfps (inserimento) o rwr-prntpfps (riscrittura). Il controllo rd-prntpfps-lk immediatamente precedente riallinea l'operazione tra "I" e "M" a seconda della presenza effettiva del record.
Chiusura (fine / z-chiudi)¶
z-close-files, chiusura finestra, z-99-exit-program, exit program.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| PRNTPFPS | primaria ptps-chia1 (ptps-pst + ptps-prf) |
Periferiche abilitate per postazione (tabella di raccordo postazione↔periferica) |
| PRNTPOST | ptpo-cod |
Anagrafica postazioni di lavoro (descrizione ptpo-des) |
| PRNTPERF | ptpf-cod |
Anagrafica periferiche (descrizione ptpf-des, stampante collegata ptpf-stm) |
| PRNTSTMP | ptst-cod |
Anagrafica stampanti (descrizione ptst-des) |
COPY incluse¶
Working-Storage¶
cogt25.wrk, wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilgdad.cpy, utilt24.cpy, utilt27.cpy
Linkage¶
wcont.cpy, wcont1.cpy
Procedure Division¶
cogt25.decla, cogt25-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cogt25.prc
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGT27 | Help / selezione postazione di lavoro (F8 su codice postazione) |
| COGT24 | Help / selezione periferica (F8 su codice periferica) |
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record) |
I gestori delle tabelle indicizzate (rd-prntpost, rd-prntperf, rd-prntstmp, st-prntpfps-notmin, rdnxt-prntpfps, rd-prntpfps-lk, wr-prntpfps, rwr-prntpfps, del-prntpfps) sono i gestori tabella generati (Y*), richiamati via PERFORM tramite le COPY di procedura.
Configurazioni RNEWCONF¶
Il programma non legge configurazioni RNEWCONF: non include utilncnf.cpy e non contiene un paragrafo x99-confi. Il comportamento e' interamente determinato dal contenuto delle tabelle stampanti (PRNTPFPS/PRNTPOST/PRNTPERF/PRNTSTMP).
Note tecniche¶
- Tabella di raccordo minimale: PRNTPFPS memorizza solo la coppia postazione+periferica; tutte le descrizioni mostrate in griglia (periferica, stampante) sono derivate a runtime dalle anagrafiche e non persistite.
- Coerenza operazione I/M: prima della scrittura,
rd-prntpfps-lkverifica l'effettiva presenza del record e riallineaa-operazione("I"→"M" se gia' presente, "M"→"I" se scomparso), evitando errori di chiave duplicata o record inesistente. - Modalita' richiamata: il supporto alla modalita' selezione (
w-dc-called = "S", tasti F3-selezione/F3-modifica e ritornot25-out-cod/t25-out-des) e' predisposto nel codice ma attualmente commentato nel paragrafoaprie nel ramo Invio dia-accept-grid. - Limite griglia: massimo 900 righe per postazione (
k-max-ele-tab); al raggiungimento viene mostratom-tabella-pienae la scansione si interrompe.