Vai al contenuto

COGV01 - Gestione Numerazioni Magazzino

Sorgente: cbl/cogv01.cbl | Tipo: Programma interattivo con griglia | Program-ID: COGV01

Menu:

  • Magazzino > Archivi & Tabelle > Tabelle > Numerazioni

Scopo

Gestisce i numeratori progressivi per i 13 tipi di documenti di magazzino (prima nota, trasferimenti, bolle vendita, consegne, carichi, buoni di consegna, buoni di prelievo, ecc.). Permette di visualizzare e modificare l'ultimo numero assegnato per ciascuna tipologia, filtrato per magazzino e anno.


Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB (cogfiles) Input Tabella parametri generali
COGNUMER I/O Tabella numeratori (chiave: tipo + mag + anno + codice)
COGMAGAZ Input Anagrafica magazzini (validazione codice magazzino)

Copybook principali

Copybook Descrizione
cogv01.select SELECT per i file del programma
cogv01.fd File description
cogv01.wrk Working storage generata da Screens
cogv01-01.scr Screen section della maschera
cogv01.decla Declaratives per gestione errori I/O
cogv01.prc Procedure generate da Screens (apertura/chiusura file, I/O COGNUMER, COGMAGAZ)
cogfiles.cpy Descrizione record FEURTAB
cogazien.cpy Dati azienda corrente
wgrid.cpy Supporto griglia
utilgdad.cpy Utility GRIDADMN (amministrazione griglia)
utils52.cpy Utility gestione date (COGS52W)
utilw36.cpy Utility ricerca magazzino (W36)
sendw36.cpy Invio ricerca magazzino
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy Utility standard
wcont.cpy, wcont1.cpy Area di comunicazione con il chiamante (linkage)

Costanti

Costante Valore Descrizione
k-num-tipo "12" Tipo record in COGNUMER per numerazioni magazzino
k-max-ele-tab 13 Numero di tipologie di documento
k-max-num 999999 Valore massimo ammesso per un numeratore

Variabili principali

tab-maschera:

Campo Tipo Descrizione
tm-anno PIC 9(04) Anno selezionato
tm-cod PIC X(01) Codice magazzino selezionato
tm-nome PIC X(25) Descrizione magazzino (display only)
tm-pnt PIC 9(04) Puntatore righe
tm-tab occurs 13 Tabella delle 13 tipologie
tm-des (i) PIC X(35) Descrizione della tipologia (da tab-des)
tm-num (i) PIC 9(12) Ultimo numero assegnato

tab-des: tabella statica con le 13 descrizioni dei tipi documento:

  1. Prima nota magazzino (P)
  2. Trasferimenti (T)
  3. Bolle vendita TP (I)
  4. Consegne a clienti
  5. Consegne da fornitori
  6. Bolle non fiscali (D)
  7. Carichi da fornitore (C)
  8. Buoni di consegna (B)
  9. Documenti no merci (S, Q)
  10. Allegato presidi sanitari
  11. Buoni di prelievo
  12. Trasferimenti (tipo U per BN)
  13. Pre-Bolle

Record griglia (grid-record)

Campo Tipo Descrizione
grd-des PIC X(35) Descrizione tipologia
grd-num PIC Z(12) Ultimo numero

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Gestione griglia: preparazione colonne, aggiunta record, modifica record, svuotamento, personalizzazione (S-F4)
W36 (send-w36) Ricerca magazzino con F8
COGS52W Gestione campo anno con calendario

Flusso di elaborazione

  1. Inizializzazione: apertura file, lettura dati azienda, impostazione tasti funzione (F3 conferma, Invio modifica, S-F4 griglia, F8 aiuto), preparazione griglia
  2. Accept filtri (a4):
  3. a-tm-cod: accept codice magazzino (F8 per ricerca W36), validazione su COGMAGAZ
  4. a-tm-anno: accept anno (tramite COGS52W), validazione >= 1994
  5. Conferma (a-richiesta-conferma): validazione completa, conferma utente
  6. Caricamento dati (a-rd-tab): ciclo su 13 tipologie, per ciascuna legge COGNUMER con chiave (tipo="12", mag=tm-cod, anno=tm-anno, codice=i). Se il record non esiste, il numero viene inizializzato a zero
  7. Visualizzazione griglia (a-grid): mostra le 13 righe. L'utente puo' selezionare una riga con Invio/doppio click per modificarla
  8. Modifica riga (a-riga-dettaglio):
  9. Lock del record COGNUMER (rd-cognumer-lk)
  10. Accept del nuovo numero (a-tm-num)
  11. Validazione: numero > 0 e <= 999999
  12. Conferma utente
  13. Se il record non esiste (w-verbo-invalido dopo lock), esegue wr-cognumer (write) + rwr-cognumer (rewrite); altrimenti solo rwr-cognumer

Modalita' called

Il programma supporta una modalita' called (w-dc-called = "S") che abilita un tasto F3 per passare da modalita' "Aggiornamento" (A) a "Selezione" (S). In modalita' selezione, Invio non modifica ma seleziona la riga.

Struttura chiave COGNUMER

La chiave di accesso e' composta da:

  • num-tipo = "12" (costante k-num-tipo)
  • num-r3-mag = codice magazzino
  • num-r3-ann = anno
  • num-r3-cod = indice 1..13 (tipologia documento)

Note

  • Le sezioni di inserimento (Ctrl+A) e cancellazione (Ctrl+E) sono presenti nel sorgente ma commentate.
  • Il programma usa PERFORM ... THRU in a-rd-tab thru ex-a per il ciclo di caricamento dati e b-elabora thru ex-b / c-elabora thru ex-c non sono presenti (a differenza del pattern COGM01).
  • La griglia non e' paginata: mostra sempre tutte le 13 righe.

Documentazione tecnica -- 2026-04-06