Vai al contenuto

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-out in tm-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'indirizzo ptpf-ind = "SVIEW-WINPRINT" la riga e' marcata tm-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; validazione x-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; validazione x-controlla-tm-prf-cod (periferica esistente in PRNTPERF); imposta il flag tm-fl-winprint in base a ptpf-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 periferiche SVIEW-WINPRINT;
  • a-tm-sta-cod (codice stampante): F8 = help stampanti COGT22; validazione x-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 ha ptpf-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 accept a-tm-fl-rev viene 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-lk prima della scrittura riallinea a-operazione in base alla presenza effettiva del record su PRNTFORZ.
  • Modalita' richiamata: se avviato da un chiamante (t26-called = "COGT26-CALLED") la funzione da configurare arriva in t26-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).