Vai al contenuto

COGQ2A - Raggruppamenti Materiali (Cicli di Lavorazione)

Scopo

Gestione della tabella dei raggruppamenti materiali (CLCMTRAG). Il programma presenta una griglia di codice + descrizione con aggiornamento batch all'F3: inserimento, modifica e cancellazione vengono decisi confrontando il codice corrente (tm-cod) con il codice originale letto (tm-cod-prec). Puo' essere richiamato come pop-up di selezione da altri programmi (es. COGQ2B).

Magazzino > Produzione > Cicli di Lavorazione > Archivi > Raggruppamenti Materiali

File e tabelle

File Tipo Descrizione
FEURTAB Parametri File parametri di ambiente
CLCMTRAG Indicizzato Tabella raggruppamenti materiali (cmt-cod, cmt-des)

Copybook

File e select

  • feurtab.fd, cogfiles.cpy
  • cogq2a.select, cogq2a.fd, cogq2a.wrk
  • cogq2a-01.scr, cogq2a.decla, cogq2a.prc

Working-storage standard

  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • k-tipi-cogtabel.cpy

Utilita'

  • wgrid.cpy — Strutture griglia
  • utilgdad.cpy — Utility GRIDADMN
  • utile04.cpy, utilf62.cpy — Utility ausiliarie
  • utilcogq2a.cpy — Linkage del programma (chiamato come pop-up); doppia inclusione con replace util-cogq2a -> util-w-cogq2a per copia locale

Linkage

  • wcont.cpy, wcont1.cpy
  • utilcogq2a.cpy (util-cogq2a con w-cogq2a-called/-caller/-out-cod)

Procedure

  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy

CALL

Programma Descrizione
GRIDADMN Gestione griglia (Prepara, Add-Record, Modify-Record, amministrazione)
C$NARG (intrinseco) Conteggio argomenti di linkage

Logica di elaborazione

  1. Apertura (apri): C$NARG per gestire chiamata 1-arg (standalone) o 2-arg (con util-cogq2a). Se w-cogq2a-called = k-program-id e w-cogq2a-caller not = spaces, modalita' chiamato (w-dc-called = "S").
  2. a4: pulisce la griglia, carica i controlli, chiama x-trova-col-num-tm-tab e x-set-fl-mod per coordinare la griglia con la modalita' corrente.
  3. Caricamento griglia:
  4. START su CLCMTRAG, READ NEXT loop.
  5. Per ogni record: copia cmt-cod in tm-cod(i) E tm-cod-prec(i) (per tracciare modifiche), cmt-des in tm-des(i).
  6. a-grid / a-accept-grid: ciclo di input sulla griglia.
  7. F3: in modalita' "A" se ci sono modifiche (fl-esc-agg = "S"), propone di salvare prima di tornare in selezione. Altrimenti alterna A/S o chiama a1-aggiorna (standalone) e termina.
  8. Invio in modalita' "S": restituisce tm-cod(i) in w-cogq2a-out-cod e termina.
  9. Ctrl+A: aggiunge riga (z-aggiungi-riga-tm-tab da utilgrid).
  10. Ctrl+E: cancella riga (svuota e marca per cancellazione al salvataggio).
  11. Shift+F4: amministrazione griglia.
  12. a1-aggiorna: valida tutta la tabella (x-controlla-tm-tab-tutto) e chiama b-aggiorna.
  13. b-aggiorna: per ogni riga della griglia decide l'operazione confrontando tm-cod(b-k) con tm-cod-prec(b-k):
  14. tm-cod = " " e tm-cod-prec <> " ": cancellazione (b3-cancella).
  15. tm-cod = tm-cod-prec e tm-fl-riga-mod = "S": modifica (b2-modifica).
  16. tm-cod-prec = " ": inserimento (b1-inserisci).
  17. tm-cod <> tm-cod-prec (entrambi valorizzati): cancellazione + inserimento.

Operazioni di aggiornamento

  • b1-inserisci: legge CLCMTRAG con cmt-cod = tm-cod; se gia' esiste chiede conferma di sovrascrittura, altrimenti wr-clcmtrag; in ogni caso rwr-clcmtrag con la nuova descrizione.
  • b2-modifica: legge il record; se non esiste piu' propone di ricrearlo; aggiorna descrizione con rwr-clcmtrag.
  • b3-cancella: legge il record con tm-cod-prec; se esiste del-clcmtrag.

Struttura dati in memoria

tab-maschera (k-max-ele-tab = 500):
  tm-grid-dati-pnt — numero elementi caricati (in wrk generato)
  tm-grid-dati-ele(500):
    tm-cod         — codice corrente in griglia
    tm-cod-prec    — codice originale letto da DB (per diff)
    tm-des         — descrizione
    tm-fl-riga-mod — flag riga modificata ("S"/"N")

(Le strutture dettagliate sono nella copybook generata cogq2a.wrk.)

Note tecniche

  • Pattern "diff-update" su griglia: tm-cod vs tm-cod-prec consente di gestire in un solo passaggio inserimenti, modifiche, cancellazioni e cambi di chiave.
  • Il flag fl-esc-agg segnala modifiche pendenti per evitare uscite involontarie senza salvataggio.
  • Il programma e' progettato per essere standalone o popup di selezione (w-cogq2a-called/-caller/-out-cod).
  • Usa il pattern di griglia evoluto con utilgrid.cpy (paragrafi z-99-accept-tm-tab, z-aggiungi-riga-tm-tab, z-svuota-tutto-tm-tab, z-costruisci-tm-tab).
  • Validazione contestuale: il colore della cella cambia (x-ctr-color-*) in base all'esito.