Vai al contenuto

COGP90 - Inventario da Terminalino

Sorgente: cbl/cogp90.cbl | Tipo: Programma a menu | Program-ID: COGP90

Menu: Magazzino > Inventario > Stampe > Inventario da Terminalino


Scopo

Stampa dell'archivio di transito inventario acquisito da terminalino portatile. Per ciascuna merce presente nell'archivio COGINVTR, filtrando per magazzino, produce una riga con descrizione e quantita' inventariata. La stampa e' in formato 80 colonne.


File e Tabelle

File/Tabella Uso
COGINVTR Input — archivio di transito inventario da terminalino
FEURTAB Input — tabella parametri euristici (standard)
FLSTA n/a — file di stato
File stampa (via cogp90.select) Output — stampa inventario

Programmi chiamati

Programma Scopo
COGS54 Dialogo selezione stampante / gestione stampa (chiamato due volte: prima per parametri, poi dopo stampa)
COGS50 Utility merci: recupero descrizione merce (s50-fun = "S" lettura stringa; s50-fun = "I" intestazione colonna)
send-w36 (utilw36) Ricerca e selezione magazzino (F8)
z-99-init-program Inizializzazione standard

Copybook principali

  • cogp90.select — file-control (file stampa)
  • feurtab.fd, cogp90.fd, coginvtr.fd (via cpy), flsta.fd / flsta.cpy
  • cogp90.wrk — working storage principale
  • wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy
  • utils50.cpy, utils54.cpy, utilw36.cpy
  • wcont.cpy, wcont1.cpy (linkage section)
  • cogp90-01.scr (screen section)
  • cogp90.decla (declaratives: COGINVTR, FLSTA)

Logica di Elaborazione

Inizializzazione (apri)

  1. z-99-init-program, ctr-abil, rd-azi, open-files
  2. Costruisce il path del file COGINVTR sostituendo "COGMERCI.ARC" (o minuscolo) con "COGINVTR.ARC" a partire da nf-name-2
  3. Apre coginvtr in input
  4. Imposta tasti funzione disponibili: Invio, F3 (aggiorna/conferma), F8 (aiuto magazzino)
  5. Legge la data di sistema (datasis)
  6. Visualizza maschera s-mm-1; propone il magazzino principale (az-main-mag) in tm-mag

Input maschera (a-tm-mag)

  • Accetta il campo magazzino (e-tm-mag)
  • F8: richiama send-w36 per selezione magazzino da catalogo
  • Esc: esce
  • F3: valida con x-controlla-tm-mag e x-imposta-conferma; se tutto ok prosegue con dialogo COGS54

Dialogo stampante (a222)

  • Chiama COGS54 con 132 colonne di stampa
  • Esc o F2: torna all'input magazzino
  • F3: avvia elaborazione

Elaborazione stampa (st-10a31-10-loopa31-99)

  1. Azzera contatori di pagina, riga e rottura merce
  2. start coginvtr key is not < itr-chia2 (posizionamento iniziale; se fallisce va ad a31-99)
  3. Loop a31-10-loop: legge record COGINVTR in sequenza
  4. Filtra per magazzino (itr-mag = tm-mag); se diverso salta iterazione
  5. Rileva rottura su merce (itr-merce not = w-rot-merce):
    • Chiama COGS50 per recuperare la descrizione (s50-strrg-merce)
    • Stampa riga con descrizione e quantita' accumulata (w-qta)
    • Reimposta w-rot-merce e azzera w-qta
  6. Accumula quantita': add 1 to w-qta
  7. a31-99: scarica l'ultima merce accumulata (se w-qta not = zero)
  8. Salta pagina finale
  9. Seconda chiamata a COGS54 con s54-after-print = "S" (dialogo post-stampa)

Intestazione pagina (testa)

  • Salta pagina se ctr-rig < 100
  • Stampa testa1 (data + titolo + numero pagina)
  • Chiama cs1-print (gestione interrupt stampa: Esc esce, F3 ristampa testata)
  • Stampa testa2 (magazzino)
  • Chiama COGS50 con s50-fun = "I" per intestazione colonne merci → ts3-merce
  • Stampa testa3 (intestazione colonne)

Chiusura (fine / z-chiudi)

  • Chiude COGS50 (s50-fl-opn = "C")
  • z-close-files, close coginvtr, close window w-sv-cur-prg
  • z-99-exit-program

Strutture di stampa

Record Descrizione
testa1 Data stampa, titolo "STAMPA INVENTARIO DA TERMINALINO", numero pagina
testa2 Codice e descrizione magazzino
testa3 Intestazione colonne (merce, quantita' inventariata)
rigel Riga dati: descrizione merce (48 car.) + quantita' (formato ------9,999)

Variabili principali

Variabile Tipo Descrizione
tm-mag x(01) Magazzino selezionato
w-qta 9(06) Quantita' accumulata per merce corrente
w-rot-merce gru(2)+sot(2)+cod(5) Chiave merce della rottura corrente
w-cur-id x(04) value "MDNV" ID corrente per COGS50
ctr-rig 9(06) Contatore righe pagina corrente
ctr-pag 9(06) Contatore pagine
nf-name-invtr x(70) Path del file COGINVTR (derivato da nf-name-2)

Documentazione tecnica — 2026-05-07