Vai al contenuto

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-id e z59-caller non vuoto → w-dc-called = "S") e legge l'eventuale tipo forzato z59-in-tipo in w-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-tipo e' vuoto lo imposta a w-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-tipo imposta w-lta-tipo = 14 (correttive) o 15 (preventive).
  • a10 / a10-loop: carica in tm-tab tutti i record LODTABEL del tipo selezionato (st-lodtabel-notmin + rdnxt-lodtabel), estraendo la descrizione da lta-14-des o lta-15-des secondo 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 ritorno z59-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, chiave w-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-des o lta-15-des in 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-tipow-lta-tipo. La distinzione e' interamente nel prefisso di tipo della chiave LODTABEL.
  • In a-fine-dettaglio, prima dell'EVALUATE che scrive lta-14-des/lta-15-des, il codice esegue anche move tm-cod-des (i) to lta-13-des: poiche' lta-13-des, lta-14-des e lta-15-des sono redefines della stessa area lta-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 via z59-in-tipo).
  • Stile legacy con GO TO e PERFORM ... THRU, documentato come e'. Non usa configurazioni RNEWCONF ne' CALL oltre a GRIDADMN.