COGD16 -- Aggiorna Avanzamento¶
Sorgente: cbl/cogd16.cbl | Tipo: Programma maschera con griglia paginata (mmmask + GRIDADMN) | Program-ID: COGD16
Menu: Magazzino > Produzione > Produzione 2
Scopo¶
Importa un file di letture barcode (generato da lettori portatili) contenente sequenze di codici operatore e matricole, e aggiorna le matricole di produzione (COGMTPRE) registrando l'operatore che ha eseguito l'assemblaggio o il collaudo.
File e tabelle¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | File tabelle di sistema (path file) |
| COGTRANS | I-O | File temporaneo indexed per i dati importati; chiave composta trs-seq-i-key + trs-seq-ean-key |
| INPFIL | Input | File sequenziale di letture barcode (mwseq.<operatore>), generato da COGS08/COGV64B |
| COGMTPRE | I-O | Matricole di produzione; aggiornati campi mtp-ope-ass (operatore assemblaggio) e mtp-ope-col (operatore collaudo) |
| COGMERCI | Input | Anagrafica merci (per descrizione articolo) |
| FLSTA | Output | File stampa per report esito |
Copybook principali¶
cogd16.select,cogd16.fd,cogd16.wrk,cogd16.prc,cogd16.decla,cogd16-01.scr-- File screen-generatedcogfiles.cpy-- Record FD di FEURTABflsta.cpy-- File stampawgrid.cpy,utilgdad.cpy-- Gestione griglia (GRIDADMN)utils54.cpy-- Utility stampa (COGS54)utils08.cpy-- Utility per COGS08 (linkage:s08-prog,s08-flag)l-copiaf.cpy,u-copiaf.cpy,opensave.def-- Copia file client/server (COPIAF)utilpggr.cpy,fscrol2.cpy-- Paginazione grigliacogtrans.k01-- Chiave primaria COGTRANS
Struttura del programma¶
main section
apri -- Init, open file, crea COGTRANS temp, chiama x3-memowand
a4 -- Svuota griglia, init tab-maschera
vis-tabella-ini -- Avvia spaginamento e carica dati
vis-tabella-disp -- Accept griglia paginata (PgDn, PgUp, F3, ESC)
vis-tabella-fine -- Disattiva griglia
fine / z-chiudi -- Chiusura e cancellazione file temporaneo
Importazione file barcode:
x3-memowand -- Selezione file .dat, copia client->server, chiama COGS08/COGV64B
x3-00 -- Open inpfil, loop lettura sequenze EAN
x3-20-loop -- Parsing: distingue codici operatore (<= 999999) da codici matricola (> 999999)
x3-50 -- Fine lettura, segnalazione anomalie
Aggiornamento (F3):
aggiorna -- Configura stampa (COGS54), loop su COGTRANS
tratta-cogtrans -- Per ogni record: cerca matricola in COGMTPRE, aggiorna operatore
leggi-cogtrans -- Lettura sequenziale COGTRANS
Stampa:
scrivi-riga-ok -- Stampa riga con stato "AGGIORNATO"
scrivi-riga-n-ok -- Stampa riga con stato "NON AGGIORNATO"
stampa -- Scrittura riga con controllo salto pagina
intesta -- Intestazione pagina report
Paginazione griglia:
x-spaginamento-start -- Init cursore e dimensioni
rn-start-not-less/rn-start/rp-start-less -- Restart lettura avanti/indietro
sn-read/sp-read -- Lettura next/prev su COGTRANS
rd-controlli-fill -- Riempimento tab-maschera da COGTRANS
rd1-ft-go -- Popola campi: operatore, operazione, matricola, merce (via COGMTPRE + COGMERCI)
Logica di elaborazione¶
- Importazione file barcode (
x3-memowand): - L'utente seleziona un file .dat tramite
C$OPENSAVEBOX. - In thin client, il file viene copiato sul server tramite COPIAF.
- Chiama
COGS08con programmaCOGV64Bper l'elaborazione preliminare. - Legge il file sequenziale risultante (
mwseq.<operatore>). - Parsing: i codici EAN <= 999999 sono codici operatore (3 cifre operatore + 3 cifre operazione); i codici > 999999 sono codici matricola (3+4+8 cifre).
-
I record vengono scritti in COGTRANS con chiave progressiva + codice operatore/operazione.
-
Visualizzazione griglia:
- Griglia paginata con scroll tramite PgUp/PgDn.
- Per ogni record COGTRANS, cerca la matricola in COGMTPRE (tipo "A") per recuperare merce e descrizione.
-
Mostra: operatore, operazione (Assemblaggio/Collaudo), anno+numero matricola, merce, descrizione.
-
Aggiornamento (F3, paragrafo
aggiorna): - Configura stampante via COGS54 (132 colonne).
- Loop su tutti i record COGTRANS:
- Cerca matricola in COGMTPRE (tipo "A", chiave anno+numero).
- Se trovata e operazione valida (1=assemblaggio, 2=collaudo): aggiorna
mtp-ope-assomtp-ope-colcon il codice operatore, rewrite COGMTPRE. Stampa "AGGIORNATO". - Se non trovata o operazione non valida: stampa "NON AGGIORNATO" e imposta
flag-elaborazione-ok = "N".
-
Al termine: messaggio di esito (corretto o con errori).
-
Chiusura: cancella il file temporaneo COGTRANS (
delete file cogtrans). -
CALL chain:
COGS08(elaborazione batch cons08-prog = "COGV64B"),COGS54(stampa),GRIDADMN(griglia),COPIAF(copia file client/server).