Vai al contenuto

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-generated
  • cogfiles.cpy -- Record FD di FEURTAB
  • flsta.cpy -- File stampa
  • wgrid.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 griglia
  • cogtrans.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

  1. Importazione file barcode (x3-memowand):
  2. L'utente seleziona un file .dat tramite C$OPENSAVEBOX.
  3. In thin client, il file viene copiato sul server tramite COPIAF.
  4. Chiama COGS08 con programma COGV64B per l'elaborazione preliminare.
  5. Legge il file sequenziale risultante (mwseq.<operatore>).
  6. Parsing: i codici EAN <= 999999 sono codici operatore (3 cifre operatore + 3 cifre operazione); i codici > 999999 sono codici matricola (3+4+8 cifre).
  7. I record vengono scritti in COGTRANS con chiave progressiva + codice operatore/operazione.

  8. Visualizzazione griglia:

  9. Griglia paginata con scroll tramite PgUp/PgDn.
  10. Per ogni record COGTRANS, cerca la matricola in COGMTPRE (tipo "A") per recuperare merce e descrizione.
  11. Mostra: operatore, operazione (Assemblaggio/Collaudo), anno+numero matricola, merce, descrizione.

  12. Aggiornamento (F3, paragrafo aggiorna):

  13. Configura stampante via COGS54 (132 colonne).
  14. 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-ass o mtp-ope-col con il codice operatore, rewrite COGMTPRE. Stampa "AGGIORNATO".
    • Se non trovata o operazione non valida: stampa "NON AGGIORNATO" e imposta flag-elaborazione-ok = "N".
  15. Al termine: messaggio di esito (corretto o con errori).

  16. Chiusura: cancella il file temporaneo COGTRANS (delete file cogtrans).

  17. CALL chain: COGS08 (elaborazione batch con s08-prog = "COGV64B"), COGS54 (stampa), GRIDADMN (griglia), COPIAF (copia file client/server).