Vai al contenuto

COGT23 - Emulazioni per stampante

Sorgente: cbl/cogt23.cbl | Tipo: Programma interattivo GUI con selezione stampante e griglia di dettaglio | Program-ID: COGT23

Menu:

  • Sistema > Configurazione > Stampanti

Scopo

Gestisce l'associazione tra stampanti ed emulazioni (tabella PRNTEMST): per una data stampante definisce l'elenco delle emulazioni che vi sono configurate e, per ciascuna, le stringhe di comando di attivazione e disattivazione dell'emulazione stessa.

E' il programma che mette in relazione le due anagrafiche di base del sottosistema di stampa:

  • le stampanti sono definite in COGT22 (PRNTSTMP);
  • le emulazioni sono definite in COGT21 (PRNTEMUL);
  • COGT23 (questo) crea la tabella di incrocio PRNTEMST con i comandi di attivazione/disattivazione;
  • le periferiche che usano queste stampanti sono definite in COGT24 (PRNTPERF).

A differenza degli altri tre programmi, COGT23 non e' pensato come lookup richiamabile (il ramo t23-called e' presente ma commentato) e lavora sempre in modalita' aggiornamento.


Struttura del programma

La maschera e' organizzata in due livelli: una testata con la stampante selezionata e una griglia di dettaglio con le emulazioni ad essa associate.

Inizializzazione (apri)

ctr-abil, z-99-init-program, open-files, rd-azi, abilitazione tasti (invio, F3 conferma, F7 comandi, F8 aiuto, Shift-F4 griglia, Ctrl-A, Ctrl-E), preparazione griglia e controlli.

Selezione stampante (a-tm-sta-cod)

Accetta il codice stampante (tm-sta-cod). Con F8 richiama COGT22 come finestra di selezione stampante (t22-called = COGT22), riportando il codice scelto. Il controllo x-controlla-tm-sta-cod verifica l'esistenza in PRNTSTMP (rd-prntstmp) e ne visualizza la descrizione (tm-sta-des). Alla conferma (a-inizio-dati) carica il dettaglio.

Caricamento dettaglio (carica-dati / carica-dati-loop)

Scandisce PRNTEMST a partire dalla stampante selezionata (st-prntemst-notmin + rdnxt-prntemst), fermandosi al cambio di ptes-stm. Per ogni riga carica codice emulazione (ptes-emu), stringa di attivazione (ptes-emu-att), stringa di disattivazione (ptes-emu-dis); risolve inoltre la descrizione dell'emulazione leggendo PRNTEMUL (rd-prntemul, ptem-des) per mostrarla in griglia.

Griglia e dettaglio riga (a-grid / a-riga-dettaglio ... a-riga-dettaglio-fine)

Ctrl-A/Ctrl-E aggiungono/eliminano associazioni; l'invio apre la modifica della riga. I campi di dettaglio sono: codice emulazione (a-tm-emu-cod), stringa di attivazione (a-tm-emu-att), stringa di disattivazione (a-tm-emu-dis). Sul campo codice emulazione, F8 richiama COGT21 come selezione emulazione (t21-called = COGT21). Il controllo x-controlla-tm-emu-cod verifica che l'emulazione esista in PRNTEMUL, ne carica la descrizione e impedisce il doppione della coppia stampante+emulazione su PRNTEMST. Alla conferma scrive (wr-prntemst) o riscrive (rwr-prntemst) il record.

Comandi emulazione (F7)

Sulla griglia, F7 richiama COGT28 passando emulazione e stampante correnti (t28-in-emu, t28-in-stm) per la gestione dei relativi comandi/sequenze.

Cancellazione (c-cancella)

Rilettura in lock (rd-prntemst-lk) della coppia stampante+emulazione ed eliminazione (del-prntemst).


Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema (aperta via cogfiles.cpy)
PRNTEMST primaria ptes-chia1 (ptes-stm+ptes-emu); secondaria ptes-chia2 (ptes-emu+ptes-stm); accesso dinamico Emulazioni per stampante: stampante, emulazione, stringa di attivazione (ptes-emu-att), stringa di disattivazione (ptes-emu-dis)
PRNTSTMP ptst-chia1 (ptst-cod) Anagrafica stampanti (lettura per validare la stampante e leggerne la descrizione)
PRNTEMUL ptem-chia1 (ptem-cod) Anagrafica emulazioni (lettura per validare l'emulazione e leggerne la descrizione)

COPY incluse

Working-Storage

cogt23.wrk, wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilgdad.cpy, utilt21.cpy, utilt22.cpy

Linkage

wcont.cpy, utilt28.cpy, wcont1.cpy

Procedure Division

cogt23.decla, cogt23-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cogt23.prc

Le routine di I/O su PRNTEMST (st-, rdnxt-, rd-, wr-, rwr-, del-prntemst), su PRNTSTMP e su PRNTEMUL sono incluse tramite la catena di COPY generata (.k01/.k02).


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Gestione griglia (Prepara, Svuota, Add-Record, Modify-Record) e personalizzazione colonne (Shift-F4)
COGT22 Selezione stampante (F8 sul campo stampante), copybook utilt22.cpy
COGT21 Selezione emulazione (F8 sul campo codice emulazione), copybook utilt21.cpy
COGT28 Gestione dei comandi/sequenze per la coppia emulazione+stampante (F7), passando t28-in-emu e t28-in-stm

Configurazioni RNEWCONF

Il programma non contiene un paragrafo x99-confi e non legge chiavi RNEWCONF applicative.


Note tecniche

  • Tabella di incrocio: PRNTEMST collega le due anagrafiche di base (stampanti di COGT22 ed emulazioni di COGT21); la chiave primaria e' la coppia stampante+emulazione, con chiave secondaria invertita (emulazione+stampante) per la ricerca inversa.
  • Stringhe di controllo: ptes-emu-att e ptes-emu-dis (60 caratteri ciascuna) contengono le sequenze di escape/comando che il sistema di stampa invia per attivare e disattivare l'emulazione sulla stampante.
  • Descrizioni derivate: la descrizione della stampante e quella dell'emulazione non sono memorizzate in PRNTEMST ma risolte a runtime leggendo PRNTSTMP e PRNTEMUL.
  • Coerenza a cascata: eliminando un'emulazione da COGT21 o una stampante da COGT22, le associazioni relative in PRNTEMST non vengono ripulite automaticamente da questo programma.