COGT26 - Attribuzione periferiche¶
Sorgente: cbl/cogt26.cbl | Tipo: Programma interattivo GUI con griglia (gestione tabella) | Program-ID: COGT26
Menu:
- Sistema > Configurazione > Stampanti
Scopo¶
Gestisce l'attribuzione (forzatura) di periferica e stampante a una funzione del gestionale, eventualmente distinta per operatore. Per un dato programma/funzione (tm-fun) mostra in griglia le forzature configurate: per ogni operatore (o "tutti", codice 999) l'associazione periferica + stampante da usare quando quella funzione produce una stampa.
I dati risiedono nella tabella PRNTFORZ (forzatura periferica su programmi), con chiave programma + operatore. Ogni riga porta anche due flag: richiedi comunque la periferica (ptfz-fl-ric) e stampa in ordine inverso (ptfz-fl-rev), quest'ultimo attivo solo per periferiche di tipo SVIEW-WINPRINT.
Il programma puo' essere richiamato da un chiamante che passa direttamente la funzione da configurare (linkage util-t26: t26-called = "COGT26-CALLED", t26-id = funzione), scavalcando la scelta interattiva della funzione.
Struttura del programma¶
Pattern standard a due livelli: griglia (a-grid) piu' riga di dettaglio (a-riga-dettaglio), con GRIDADMN.
Inizializzazione (apri)¶
ctr-abil, z-99-init-program, open-files, rd-azi; se il linkage indica t26-called = "COGT26-CALLED" imposta w-dc-called = "S" e memorizza la funzione in dep-fun. Abilita i tasti (Invio, Invio-modifica, F3 conferma, F8 aiuto, Shift-F4 griglia, Ctrl-A, Ctrl-E), carica lingua/titolo, prepara griglia e controlli.
Selezione funzione (a-tm-fun)¶
Se richiamato (w-dc-called = "S") usa direttamente dep-fun e salta a a-inizio-dati. Altrimenti accept del codice funzione con:
- F8: help funzioni tramite COGT33 (restituisce
cogt33-outintm-fun); - validazione
x-controlla-tm-fun: il codice funzione non puo' essere vuoto.
Caricamento righe (carica-dati)¶
Scansione di PRNTFORZ da ptfz-prg = tm-fun (st-prntforz-notmin + rdnxt-prntforz), rottura al cambio di ptfz-prg. Per ogni riga:
- operatore (
ptfz-ope): se 999 descrizione "tutti" (m-tutti-ope), altrimenti letto da PRNTOPER (rd-prntoper,ptop-des); - periferica (
ptfz-prf): letta da PRNTPERF (rd-prntperf); se l'indirizzoptpf-ind = "SVIEW-WINPRINT"la riga e' marcatatm-fl-winprint = "S"(abilita il flag Reversed), altrimenti il flag reverse e' forzato "N"; - stampante (
ptfz-stm): letta da PRNTSTMP (rd-prntstmp,ptst-des).
Accumulo in tm-tab (max 900 righe).
Griglia (a-grid / a-accept-grid)¶
Navigazione GRIDADMN; Ctrl-A apre il dettaglio in inserimento, Ctrl-E elimina previa conferma (c-cancella), Invio apre il dettaglio in modifica (a-operazione = "M").
Riga di dettaglio¶
Accept in sequenza dei campi:
a-tm-ope-cod(codice operatore): F8 = help operatori COGT20; validazionex-controlla-tm-ope-cod(operatore esistente in PRNTOPER, oppure 999 = tutti; blocca inserimento se la coppia funzione+operatore esiste gia' in PRNTFORZ);a-tm-prf-cod(codice periferica): F8 = help periferiche COGT24; validazionex-controlla-tm-prf-cod(periferica esistente in PRNTPERF); imposta il flagtm-fl-winprintin base aptpf-ind; se la stampante non e' ancora valorizzata propone quella collegata alla periferica (ptpf-stm);a-tm-fl-rev(stampa in ordine inverso, subroutine S95): abilitato solo per perifericheSVIEW-WINPRINT;a-tm-sta-cod(codice stampante): F8 = help stampanti COGT22; validazionex-controlla-tm-sta-cod(stampante esistente in PRNTSTMP);a-tm-fl-ric(richiedi comunque la periferica, subroutine S95).
Conferma / salvataggio (a-riga-dettaglio-fine)¶
x-imposta-conferma valida tutti i campi; con F3 aggiorna la griglia via GRIDADMN e scrive PRNTFORZ con ptfz-prg (funzione), ptfz-ope (operatore), ptfz-prf (periferica), ptfz-stm (stampante), ptfz-fl-ric, ptfz-fl-rev, tramite wr-prntforz o rwr-prntforz. Il rd-prntforz-lk precedente riallinea "I"/"M".
Chiusura (fine / z-chiudi)¶
z-close-files, chiusura finestra, z-99-exit-program, exit program. Se richiamato, l'uscita con Esc dalla griglia torna direttamente al chiamante.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| PRNTFORZ | primaria ptfz-chia1 (ptfz-prg + ptfz-ope) |
Forzatura periferica/stampante per funzione+operatore (flag ptfz-fl-ric, ptfz-fl-rev) |
| PRNTOPER | ptop-cod |
Anagrafica operatori (descrizione ptop-des; codice 999 = "tutti") |
| PRNTPERF | ptpf-cod |
Anagrafica periferiche (descrizione ptpf-des, indirizzo ptpf-ind, stampante collegata ptpf-stm) |
| PRNTSTMP | ptst-cod |
Anagrafica stampanti (descrizione ptst-des) |
COPY incluse¶
Working-Storage¶
cogt26.wrk, wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilgdad.cpy, utilt20.cpy, utilt22.cpy, utilt24.cpy, utilcogt33.cpy
Linkage¶
wcont.cpy, utilt26.cpy, wcont1.cpy
Procedure Division¶
cogt26.decla, cogt26-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cogt26.prc
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGT33 | Help / selezione funzione (programma) da forzare (F8 su codice funzione) |
| COGT20 | Help / selezione operatore (F8 su codice operatore) |
| COGT24 | Help / selezione periferica (F8 su codice periferica) |
| COGT22 | Help / selezione stampante (F8 su codice stampante) |
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record) |
I gestori delle tabelle indicizzate (rd-prntoper, rd-prntperf, rd-prntstmp, st-prntforz-notmin, rdnxt-prntforz, rd-prntforz-lk, wr-prntforz, rwr-prntforz, del-prntforz) 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. Le associazioni funzione→periferica sono definite esclusivamente nella tabella PRNTFORZ.
Note tecniche¶
- Flag Reversed condizionato al tipo periferica:
ptfz-fl-rev(stampa pagine in ordine inverso) e' gestibile solo quando la periferica haptpf-ind = "SVIEW-WINPRINT"(tm-fl-winprint = "S"); per le altre periferiche il flag e' forzato a "N" sia in caricamento sia in validazione, e il campo di accepta-tm-fl-revviene saltato se disabilitato. - Operatore "tutti" (999): consente una forzatura valida per qualunque operatore; e' gestito sia in caricamento (descrizione
m-tutti-ope) sia in validazione, senza lettura di PRNTOPER. - Proposta automatica della stampante: in validazione periferica, se la stampante non e' ancora impostata, viene proposta quella collegata alla periferica (
ptpf-stm). - Coerenza operazione I/M:
rd-prntforz-lkprima della scrittura riallineaa-operazionein base alla presenza effettiva del record su PRNTFORZ. - Modalita' richiamata: se avviato da un chiamante (
t26-called = "COGT26-CALLED") la funzione da configurare arriva int26-id, la scelta interattiva della funzione e' saltata e l'uscita ritorna al chiamante. - Limite griglia: massimo 900 righe per funzione (
k-max-ele-tab).