COGZ59 - Tabella Codici Azioni Correttive/Preventive¶
Sorgente: cbl/cogz59.cbl | Program-ID: COGZ59 | Tipo: Programma interattivo di gestione tabella (griglia), richiamabile come selettore
Menu: Lab.Odont. > Archivi > Tabelle > Codici Azioni Correttive/Preventive
Scopo¶
Gestisce le tabelle dei codici di azione a fronte di una non conformita', distinte in due famiglie: azioni correttive e azioni preventive. Entrambe sono conservate su LODTABEL, ma su tipi diversi: tipo 14 per le correttive (lta-tipo-14, lta-14-des) e tipo 15 per le preventive (lta-tipo-15, lta-15-des). Ogni codice e' un codice a 4 caratteri con descrizione a 40.
La maschera presenta in testa un selettore "Tipo Azione" (tm-tipo = "C" correttiva / "P" preventiva) e sotto una griglia editabile a due colonne (Codice, Descrizione). Cambiando il tipo si ricarica la tabella corrispondente. Il tipo scelto determina la costante w-lta-tipo (14 o 15) usata come lta-tipo in tutte le operazioni di I/O.
Come COGZ99, il programma opera in modalita' "Aggiornamento" e "Selezione" commutabili con F3. In modalita' Selezione (attiva quando richiamato da un altro modulo) funge da lista di scelta e restituisce il codice selezionato via util-z59 (z59-out-cod). Il chiamante puo' anche forzare il tipo iniziale passando z59-in-tipo = "C" o "P" (memorizzato in w-dc-tipo), che imposta tm-tipo e aggiorna il titolo della maschera ("Codici azioni correttive" / "Codici azioni preventive").
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| LODTABEL | ISAM | I-O | Codici azione: tipo 14 correttive (lta-14-des), tipo 15 preventive (lta-15-des); chiave lta-tipo + lta-cod |
Il numero massimo di righe caricabili in griglia e' 900 (k-max-ele-tab).
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogz59.select, cogz59.fd, cogz59.wrk, cogz59-01.scr, cogz59.prc, cogz59.decla |
Screen Designer |
feurtab.fd, cogfiles.cpy |
FEURTAB |
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy |
Working storage standard + dati azienda |
wgrid.cpy, utilgdad.cpy |
Gestione griglia GRIDADMN |
wcont.cpy, wcont1.cpy |
Linkage di contesto (stringhe) |
utilz59.cpy |
Area di linkage di chiamata/ritorno (z59-caller, z59-called, z59-out-cod, z59-in-tipo) |
grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, utilgrid.cpy |
Copybook di fine procedure |
Logica¶
- apri: init programma,
ctr-abil,rd-azi,open-files. Rileva la chiamata (z59-called = k-program-idez59-callernon vuoto →w-dc-called = "S") e legge l'eventuale tipo forzatoz59-in-tipoinw-dc-tipo. Attiva i tasti funzione, imposta il titolo in base al tipo,rd-msk-pop, modalita' iniziale ("S" se richiamato, "A" altrimenti), prepara la griglia. - a4: svuota la griglia, inizializza la maschera; se
tm-tipoe' vuoto lo imposta aw-dc-tipo(se fornito) o a "C" di default, ricarica il combo tipo. - a-tm-tipo: accept del selettore Tipo Azione (gestito con COGS60); ESC termina.
- a-fine-dati: in base a
tm-tipoimpostaw-lta-tipo= 14 (correttive) o 15 (preventive). - a10 / a10-loop: carica in
tm-tabtutti i record LODTABEL del tipo selezionato (st-lodtabel-notmin+rdnxt-lodtabel), estraendo la descrizione dalta-14-desolta-15-dessecondo il tipo. - a30 / a-grid / a-accept-grid: costruisce e visualizza la griglia; gestisce ESC (se richiamato termina, altrimenti torna in
a4), eventi mouse (x-test-mouse), SF4 (GRIDADMN), F3 (commuta modalita'), Invio (modifica o selezione con ritornoz59-out-cod), Ctrl+A (inserimento), Ctrl+E (eliminazione con conferma e compattamento). - a-riga-dettaglio: entra nel dettaglio; in modifica legge/locka LODTABEL (
rd-lodtabel-lk, chiavew-lta-tipo+lta-cod), in inserimento inizializza la riga. - a-tm-cod / a-tm-cod-des: accept di codice e descrizione con controlli di obbligatorieta'.
- a-fine-dettaglio: valida, chiede conferma, aggiorna la griglia, verifica esistenza (inserimento su codice esistente degradato a modifica) e scrive LODTABEL. La descrizione viene mossa nel campo
lta-14-desolta-15-desin base al tipo tramite EVALUATE. - c-cancella: rilegge/locka e cancella il record LODTABEL del tipo corrente (
del-lodtabel). - fine / z-chiudi: chiusura file, chiusura finestra,
exit program.
CALL¶
| Programma | Scopo |
|---|---|
GRIDADMN |
Gestione, riempimento e amministrazione colonne della griglia |
Note¶
- Un solo programma gestisce due tabelle logiche (correttive tipo 14 / preventive tipo 15) commutando via
tm-tipo→w-lta-tipo. La distinzione e' interamente nel prefisso di tipo della chiave LODTABEL. - In
a-fine-dettaglio, prima dell'EVALUATE che scrivelta-14-des/lta-15-des, il codice esegue anchemove tm-cod-des (i) to lta-13-des: poiche'lta-13-des,lta-14-deselta-15-dessono redefines della stessa arealta-descr(primi 40 byte), l'assegnazione e' innocua e viene comunque sovrascritta dal ramo corretto. E' un residuo di copia dal programma gemello COGZ99 (tipo 13). - Programma a doppio uso: gestione tabella da menu oppure selettore richiamato (ritorno via
z59-out-cod, tipo forzabile viaz59-in-tipo). - Stile legacy con
GO TOePERFORM ... THRU, documentato come e'. Non usa configurazioni RNEWCONF ne' CALL oltre a GRIDADMN.