Vai al contenuto

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-id valorizzato via user-area, copybook util021.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 (formato tf-tip x(4) + tf-len 9(3) + tf-des x(40)); l'aggiunta di una stampa richiede la modifica di questa tabella e di t-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-id del user-area (copybook util021.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-personal dell'azienda.