Vai al contenuto

COGZ99 - Tabella Codici di non conformita'

Sorgente: cbl/cogz99.cbl | Program-ID: COGZ99 | Tipo: Programma interattivo di gestione tabella (griglia), richiamabile come selettore

Menu: Lab.Odont. > Archivi > Tabelle > Codici di non conformita'


Scopo

Gestisce la tabella dei codici di non conformita' del laboratorio odontotecnico (codice a 4 caratteri + descrizione a 40). I codici sono conservati su LODTABEL tipo 13 (record lta-tipo-13, chiave lta-cod, descrizione lta-13-des). La maschera e' una griglia editabile a due colonne (Codice, Descrizione) con dettaglio di riga per inserimento e modifica.

Il programma opera in due modalita' commutabili con F3: "Aggiornamento" (a-modalita = "A", editing libero della tabella) e "Selezione" (a-modalita = "S"). La modalita' Selezione e' rilevante solo quando il programma e' richiamato da un altro modulo: in tal caso funge da lista di scelta e restituisce al chiamante il codice selezionato tramite l'area di linkage util-z99 (z99-out-cod).

Il riconoscimento della chiamata avviene confrontando z99-called con il proprio program-id e verificando che z99-caller non sia vuoto (w-dc-called = "S"); in quel caso all'ingresso il programma si posiziona in modalita' Selezione e abilita i tasti F3-selezione/F3-modifica.

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODTABEL ISAM I-O Codici di non conformita' tipo 13 (lta-tipo=13, lta-cod, lta-13-des)

Il numero massimo di righe caricabili in griglia e' 900 (k-max-ele-tab); oltre tale soglia gli ulteriori record vengono scartati con avviso.

Copybook utilizzate

Copybook Descrizione
cogz99.select, cogz99.fd, cogz99.wrk, cogz99-01.scr, cogz99.prc, cogz99.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)
utilz99.cpy Area di linkage di chiamata/ritorno (z99-caller, z99-called, z99-out-cod, z99-out-des)
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 se e' stato richiamato (z99-called = k-program-id e z99-caller non vuoto → w-dc-called = "S"). Attiva i tasti funzione (SF4 griglia, Invio modifica/Invio, F3 conferma; se richiamato anche F3-selezione e F3-modifica). Imposta titolo "Codici di NON Conformita'", rd-msk-pop, modalita' iniziale ("S" se richiamato, "A" altrimenti), prepara la griglia.
  • a10 / a10-loop: carica in tm-tab tutti i record LODTABEL tipo 13 (st-lodtabel-notmin + rdnxt-lodtabel), fino a rottura tipo o esaurimento; conta le righe in tm-pnt.
  • a30 / a-grid / a-accept-grid: costruisce e visualizza la griglia (z-costruisci-grid, z-99-accept-grid); gestisce ESC (fine), eventi mouse (x-test-mouse), SF4 (GRIDADMN colonne), F3 (commuta modalita' A/S), Invio (in Aggiornamento = modifica riga; in Selezione = restituisce z99-out-cod e termina), Ctrl+A (inserimento riga), Ctrl+E (eliminazione con conferma e compattamento tabella).
  • a-riga-dettaglio: entra nel dettaglio; in modifica legge/locka LODTABEL (rd-lodtabel-lk), in inserimento inizializza la riga.
  • a-tm-cod / a-tm-cod-des: accept di codice e descrizione con x-controlla-tm-cod (codice obbligatorio) e x-controlla-tm-cod-des (descrizione obbligatoria).
  • a-fine-dettaglio: valida il dettaglio, chiede conferma, aggiorna la griglia via GRIDADMN, verifica esistenza (se in inserimento il codice esiste gia' viene degradato a modifica) e scrive/riscrive LODTABEL (wr-lodtabel / rwr-lodtabel).
  • c-cancella: rilegge/locka e cancella il record LODTABEL (del-lodtabel).
  • fine / z-chiudi: chiusura file, chiusura finestra, exit program.

CALL

Programma Scopo
GRIDADMN Gestione, riempimento e amministrazione colonne della griglia

Note

  • Programma a doppio uso: sia gestione tabella da menu (modalita' Aggiornamento) sia selettore richiamato da altri moduli (modalita' Selezione, ritorno via z99-out-cod). Il campo z99-out-des esiste nell'area di linkage ma non viene valorizzato al ritorno (viene restituito solo il codice).
  • Tabella limitata a 900 righe in memoria; oltre la soglia i record eccedenti non vengono caricati (avviso a video).
  • Stile legacy con GO TO e PERFORM ... THRU: struttura non conforme alle convenzioni attuali, documentata come e'.
  • Non usa configurazioni RNEWCONF ne' altre CALL oltre a GRIDADMN.