COGM48 -- Visualizzazione e stampa lotti per merce¶
Sorgente: cbl/cogm48.cbl | Tipo: Programma con interfaccia grafica (griglia interattiva paginata) | Program-ID: COGM48
Menu: Magazzino > Giacenze & Sottoscorta > Lotti merce > Lotti per merce
Scopo¶
Visualizza e gestisce i lotti di magazzino relativi a un singolo articolo. Per ogni lotto mostra il numero interno, il lotto fornitore, la quantita', le date di produzione e scadenza, lo stato (Attivo/Chiuso/Bloccato) e altri dati. Supporta la cancellazione e la riapertura dei lotti, il dettaglio movimenti per lotto e la stampa.
Puo' funzionare sia in modalita' autonoma sia come programma richiamato (CALLED) da COGV55 o altre funzioni.
Interfaccia utente¶
Modalita' di funzionamento¶
| Modalita' | Condizione | Comportamento |
|---|---|---|
| Autonomo | Chiamata diretta da menu | Filtri liberi |
| CALLED | m48-called = k-program-id e m48-caller not = spaces |
Precompila merce, lotto, mag, stato, tipo ricerca |
Maschera di filtro¶
| Campo | Tipo | Descrizione |
|---|---|---|
tm-merce |
x(09) | Codice merce |
tm-mag |
x(01) | Codice magazzino |
tm-fl-stato |
x(01) | Stato lotto: A=Attivi, C=Chiusi, T=Tutti, B=Bloccati |
Griglia (grid-record tramite tmr-righe)¶
I campi della griglia sono definiti nella tabella tab-maschera con occorrenze di tmr-righe:
| Campo | Tipo | Descrizione |
|---|---|---|
tmr-prog |
9(06) | Numero lotto interno |
tmr-merce |
x(09) | Codice merce |
tmr-mag-mlt |
x(01) | Magazzino del lotto |
tmr-lotto |
x(20) | Codice lotto fornitore |
tmr-qta |
s9(07)v999 | Quantita' residua |
tmr-data-prod |
9(08) | Data produzione |
tmr-data-scad |
9(08) | Data scadenza |
tmr-stato |
x(01) | Stato: A=Attivo, C=Chiuso, B=Bloccato |
tmr-f4 |
x(01) | Flag cancellabile |
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F3 | Conferma ricerca |
| F4 | Cancella lotto (se tmr-f4 = "S") |
| F5 | Riapri lotto chiuso (se tmr-stato = "C" e tmr-qta > 0) |
| F8 | Dettaglio movimenti lotto (COGM46) |
| F9 | Stampa lotti (con/senza movimenti) |
| S-F4 | Gestione griglia (GRIDADMN) |
| S-F5 | Esportazione Excel |
| ESC | Uscita |
File e Tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTRANS | (definito inline) | File transito con chiave merce+lotto_int+mag+data+prog |
| FLSTA | flsta.cpy | File stampa |
| FEURTAB | cogfiles.cpy | File tabelle Euro |
| Tabelle via cogm48.select | cogm48.fd | COGMERLT (lotti merce), COGMERCI, COGMAGAZ, COGGEANA, ecc. |
Struttura del programma¶
Flusso principale¶
apri -> z-99-init-program -> ctr-abil -> rd-azi -> open-files
-> Gestione CALLED (precompilazione)
-> Creazione file transito COGTRANS
-> a4 (inizializzazione)
-> Accept filtri: a-tm-merce, a-tm-mag, a-tm-fl-stato
-> a-fine-dati (caricamento lotti in griglia)
-> a-grid (navigazione e operazioni)
Paragrafi principali¶
| Paragrafo | Funzione |
|---|---|
a4 |
Inizializzazione, creazione file transito, pulizia griglia |
a-tm-merce |
Accept codice merce |
a-tm-mag |
Accept magazzino |
a-tm-fl-stato |
Accept stato lotto (A/C/T/B) |
a-fine-dati |
Validazione e caricamento lotti |
a-fine-dati-called |
Caricamento lotti (variante CALLED) |
a-grid |
Navigazione griglia, gestione F4/F5/F8/F9 |
a-grid-fine |
Uscita dalla griglia |
stampa |
Stampa lotti con/senza movimenti |
x-spaginamento-start |
Caricamento paginato dei lotti |
Logica di elaborazione¶
Caricamento lotti¶
Il programma legge i lotti da COGMERLT posizionandosi sulla merce indicata. Per ogni lotto:
- Filtra per magazzino (se indicato) e per stato (A/C/T/B)
- Popola la griglia con i dati del lotto
- Determina se il lotto e' cancellabile (
tmr-f4 = "S"se non ha movimenti)
Riapertura lotto (F5)¶
Se un lotto e' in stato "C" (Chiuso) e ha una quantita' residua > 0: 1. Legge il record COGMERLT 2. Cambia lo stato da "C" ad "A" 3. Riscrive il record
Cancellazione lotto (F4)¶
Se il lotto e' marcato come cancellabile: 1. Richiede conferma 2. Cancella il record da COGMERLT 3. Ricarica la griglia
Dettaglio movimenti (F8)¶
Richiama COGM46 passando il numero lotto interno, la merce e il magazzino per visualizzare i movimenti del lotto.
Stampa (F9)¶
Chiede se includere i movimenti. Genera il report tramite il paragrafo stampa usando il file FLSTA.
Chiamate esterne¶
| Programma | Scopo |
|---|---|
| COGM46 | Dettaglio movimenti lotto |
| COGS54 | Utility stampa |
| COGS68W | Gestione campo merce |
| GRIDADMN | Gestione griglia interattiva |
Copybook utilizzate¶
Copybook generate da Screens¶
cogm48.select, cogm48.fd, cogm48.wrk, cogm48.prc, cogm48.decla, cogm48-01.scr
Copybook di libreria¶
cogfiles.cpy-- Definizione file Euroflsta.cpy-- File stampak-personal.cpy-- Costanti personalizzazionek-u10.cpy-- Costanti utility valutewstato.cpy,wopenf.cpy,wgrave.cpy,wnscr.cpy-- Working storage standardcogazien.cpy-- Dati aziendawgrid.cpy,utilgdad.cpy-- Griglia interattivautils54.cpy,utils68.cpy-- Interfacce sottoprogrammi
Linkage¶
wcont.cpy-- Struttura linkage standardwcont1.cpy-- Linkage supplementareutilm48.cpy-- Interfaccia per chiamata CALLED
Note tecniche¶
- Il file COGTRANS e' un file temporaneo per operatore, usato per la paginazione. Viene creato ad ogni nuovo caricamento e distrutto alla chiusura.
- La chiave del transito e': merce + lotto_int + mag + data + progressivo, che permette la scansione ordinata dei lotti per una merce.
- Il programma supporta la paginazione tramite
z-99-accept-paged-gride i paragrafipg-after-pg-dwn/pg-after-pg-up. - La riapertura di un lotto (F5) e' descritta come "operazione nascosta" nel codice, introdotta per correggere errori.
Documentazione tecnica -- 2026-04-18