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:
- Prima nota magazzino (P)
- Trasferimenti (T)
- Bolle vendita TP (I)
- Consegne a clienti
- Consegne da fornitori
- Bolle non fiscali (D)
- Carichi da fornitore (C)
- Buoni di consegna (B)
- Documenti no merci (S, Q)
- Allegato presidi sanitari
- Buoni di prelievo
- Trasferimenti (tipo U per BN)
- 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¶
- Inizializzazione: apertura file, lettura dati azienda, impostazione tasti funzione (F3 conferma, Invio modifica, S-F4 griglia, F8 aiuto), preparazione griglia
- Accept filtri (
a4): a-tm-cod: accept codice magazzino (F8 per ricerca W36), validazione su COGMAGAZa-tm-anno: accept anno (tramite COGS52W), validazione >= 1994- Conferma (
a-richiesta-conferma): validazione completa, conferma utente - 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 - Visualizzazione griglia (
a-grid): mostra le 13 righe. L'utente puo' selezionare una riga con Invio/doppio click per modificarla - Modifica riga (
a-riga-dettaglio): - Lock del record COGNUMER (rd-cognumer-lk)
- Accept del nuovo numero (
a-tm-num) - Validazione: numero > 0 e <= 999999
- Conferma utente
- 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 magazzinonum-r3-ann= annonum-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 ... THRUina-rd-tab thru ex-aper il ciclo di caricamento dati eb-elabora thru ex-b/c-elabora thru ex-cnon sono presenti (a differenza del pattern COGM01). - La griglia non e' paginata: mostra sempre tutte le 13 righe.
Documentazione tecnica -- 2026-04-06