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).
Menu¶
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.cpycogq2a.select,cogq2a.fd,cogq2a.wrkcogq2a-01.scr,cogq2a.decla,cogq2a.prc
Working-storage standard¶
wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpyk-tipi-cogtabel.cpy
Utilita'¶
wgrid.cpy— Strutture grigliautilgdad.cpy— Utility GRIDADMNutile04.cpy,utilf62.cpy— Utility ausiliarieutilcogq2a.cpy— Linkage del programma (chiamato come pop-up); doppia inclusione con replaceutil-cogq2a->util-w-cogq2aper copia locale
Linkage¶
wcont.cpy,wcont1.cpyutilcogq2a.cpy(util-cogq2aconw-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¶
- Apertura (
apri): C$NARG per gestire chiamata 1-arg (standalone) o 2-arg (con util-cogq2a). Sew-cogq2a-called = k-program-idew-cogq2a-caller not = spaces, modalita' chiamato (w-dc-called = "S"). a4: pulisce la griglia, carica i controlli, chiamax-trova-col-num-tm-tabex-set-fl-modper coordinare la griglia con la modalita' corrente.- Caricamento griglia:
- START su CLCMTRAG, READ NEXT loop.
- Per ogni record: copia
cmt-codintm-cod(i)Etm-cod-prec(i)(per tracciare modifiche),cmt-desintm-des(i). a-grid/a-accept-grid: ciclo di input sulla griglia.- 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 chiamaa1-aggiorna(standalone) e termina. - Invio in modalita' "S": restituisce
tm-cod(i)inw-cogq2a-out-code termina. - Ctrl+A: aggiunge riga (
z-aggiungi-riga-tm-tabdautilgrid). - Ctrl+E: cancella riga (svuota e marca per cancellazione al salvataggio).
- Shift+F4: amministrazione griglia.
a1-aggiorna: valida tutta la tabella (x-controlla-tm-tab-tutto) e chiamab-aggiorna.b-aggiorna: per ogni riga della griglia decide l'operazione confrontandotm-cod(b-k)contm-cod-prec(b-k):tm-cod = " "etm-cod-prec <> " ": cancellazione (b3-cancella).tm-cod = tm-cod-precetm-fl-riga-mod = "S": modifica (b2-modifica).tm-cod-prec = " ": inserimento (b1-inserisci).tm-cod <> tm-cod-prec(entrambi valorizzati): cancellazione + inserimento.
Operazioni di aggiornamento¶
b1-inserisci: legge CLCMTRAG concmt-cod = tm-cod; se gia' esiste chiede conferma di sovrascrittura, altrimentiwr-clcmtrag; in ogni casorwr-clcmtragcon la nuova descrizione.b2-modifica: legge il record; se non esiste piu' propone di ricrearlo; aggiorna descrizione conrwr-clcmtrag.b3-cancella: legge il record contm-cod-prec; se esistedel-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-codvstm-cod-precconsente di gestire in un solo passaggio inserimenti, modifiche, cancellazioni e cambi di chiave. - Il flag
fl-esc-aggsegnala 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(paragrafiz-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.