COG021 - Sequenze di stampa merce¶
Sorgente: cbl/cog021.cbl | Tipo: Programma interattivo carattere (menu di stampe scrollabile) | Program-ID: COG021
Menu:
- Sistema > Configurazione > Sequenze (voce "Stampa merci")
- Sistema > Configurazione
Scopo¶
E' il menu di selezione delle stampe di magazzino/merce con configurazione della relativa sequenza. Presenta l'elenco delle stampe disponibili (Stampa Merci Nuove, Stampa Modulo Inventario, Liste Prelievo, Distinte Base, Giacenze, Prima Nota Magazzino, ecc.), ciascuna identificata da un codice funzione a 4 caratteri e da una lunghezza di ricerca; alla selezione di una voce richiama la subroutine COG021S che gestisce la specifica stampa/sequenza.
Il programma opera in due modalita':
- Da menu: mostra la maschera con l'elenco stampe scorrevole; l'operatore seleziona una voce con Invio.
- Richiamato direttamente (campo
021-idvalorizzato viauser-area, copybookutil021.cpy): salta la visualizzazione della maschera, cerca la voce corrispondente nella tabella statica e richiama subito COG021S per quella stampa (a-call-021s).
Struttura del programma¶
Il programma disegna una maschera carattere (tabella mm-1, 16 righe) e scorre la tabella statica tab-funzioni (t-size = 53 voci), ognuna con codice (tf-tip), lunghezza (tf-len) e descrizione (tf-des). La riga selezionata e' evidenziata in reverse (str-reverse).
Inizializzazione (apri)¶
ctr-abil, open-files, rd-azi. Se 021-id non e' spaces, esegue il ramo diretto a-call-021s e termina; altrimenti carica la maschera (rd-msk-all) e prosegue con la griglia.
Richiamo diretto (a-call-021s)¶
Scorre la tabella statica cercando la voce con tf-tip = 021-id; se la trova, ne copia l'intero elemento in 021s-id e chiama COG021S. Se non la trova, emette un messaggio "Funzione non trovata".
Griglia stampe (c-acc-tab)¶
Visualizza l'elenco (disp-tab) con la riga corrente in reverse, gestisce la navigazione su/giu/pagina/inizio/fine (tst-fun), e alla pressione di Invio copia l'elemento selezionato in 021s-id e chiama COG021S per la stampa; ESC esce.
Personalizzazioni cliente¶
In c-acc-tab e' presente una personalizzazione: per l'azienda az-personal = "BO" (Broc Metal) la lunghezza della voce 5 (Stampa Rubrica Listino Vendita) e' forzata a 62.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | File di sistema aziende (aperto via cogfiles.cpy, rd-azi) |
| COGTABEL | primaria euta-key; aperto in sola lettura (open input) |
Tabella generalizzata; il file e' aperto ma nel flusso letto l'elenco stampe proviene dalla tabella statica interna tab-funzioni |
COPY incluse¶
Working-Storage¶
feurtab.fd, cogtabel.fd (SELECT), cogfiles.cpy, cogtabel.cpy, wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, utils21.cpy, cogazien.cpy
Linkage¶
wcont.cpy, util021.cpy (redefine 021-id sul user-area), wcont1.cpy
Procedure Division¶
stato.cpy, winmsg.cpy, grave.cpy, open1.cpy, mmmask.cpy, dtab.cpy (routine disp-tab/disp-msk), tstfun2.cpy (tst-fun navigazione con riga in reverse)
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COG021S | Gestione della singola stampa/sequenza selezionata; riceve in 021s-id l'elemento (codice + lunghezza + descrizione) della voce scelta |
Configurazioni RNEWCONF¶
Il programma non contiene un paragrafo x99-confi/x99-src-cfg e non legge chiavi RNEWCONF applicative.
Note tecniche¶
- Elenco stampe cablato: le 53 voci sono definite staticamente in
tab-funzioni(formatotf-tipx(4) +tf-len9(3) +tf-desx(40)); l'aggiunta di una stampa richiede la modifica di questa tabella e dit-size. - Campo lunghezza (
tf-len): rappresenta la lunghezza della parte in cui viene eseguita l'accept della merce per quella stampa, trasferita a COG021S insieme a codice e descrizione. - Doppia veste (menu / richiamo): discriminata dal campo
021-iddeluser-area(copybookutil021.cpy); se valorizzato, la stampa viene lanciata senza mostrare la maschera. - Personalizzazione Broc Metal: la lunghezza della voce "Stampa Rubrica Listino Vendita" e' condizionata all'
az-personaldell'azienda.