Vai al contenuto

COGZ26 - Gestione macchine

Sorgente: cbl/cogz26.cbl | Program-ID: COGZ26 | Tipo: Programma interattivo GUI di gestione tabella (griglia paginata + riga di dettaglio)

Menu: Lab.Odont. > Archivi > Macchine


Scopo

Gestisce l'anagrafica dei macchinari e delle attrezzature utilizzati nel processo di produzione del laboratorio odontotecnico (tabella LODMACCH, Legge 93/42). Ogni voce ha codice, descrizione, tipologia ("M" macchina / "A" attrezzatura), matricola e tre flag: prevede piano di manutenzione, prevede istruzioni d'uso, conformita' CEE.

L'interfaccia e' una griglia paginata (list-box gestita tramite l'infrastruttura di scrolling fscrol2/utilpggr): i record vengono letti a blocchi da LODMACCH con navigazione avanti/indietro (PgDn/PgUp) e ordinamento per codice o per descrizione a seconda del parametro di visualizzazione. La modifica del singolo record avviene su una riga di dettaglio separata (a-riga-dettaglio), attivata con invio (modifica) o Ctrl-A (inserimento).

Il programma e' richiamabile in modalita' selezione/aggiornamento: se z26-called = k-program-id e z26-caller valorizzato, riceve un intero blocco parametri (util-z26 -> util-w-dc) con codice/descrizione di ricerca, tipo visualizzazione e flag di abilitazione; alla chiusura restituisce il codice e la descrizione selezionati (w-dc-out-cod, w-dc-out-des).

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODMACCH ISAM I-O Anagrafica macchine/attrezzature (lmc-cod, lmc-des, lmc-matricola, lmc-tip, lmc-fl-man, lmc-fl-ist, lmc-fl-cee); usa chiave 2 (per descrizione)

Copybook utilizzate

Copybook Descrizione
cogz26.select, cogz26.fd, cogz26.wrk, cogz26-01.scr, cogz26.prc, cogz26.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
utilz26s.cpy Linkage COGZ26S (salva con nome)
wcont.cpy, wcont1.cpy Linkage di contorno
utilz26.cpy Parametri di chiamata (z26-called, z26-caller, z26-tip-vis, cod/des in-out)
grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy Copybook di fine procedure
dtab.cpy, fscrol2.cpy, utilpggr.cpy Infrastruttura griglia paginata / scrolling
lodmacch.k02 Chiave secondaria per descrizione (aggiunta a fine procedure)

Logica

  • apri / main: rileva chiamata (z26-called), copiando util-z26 in util-w-dc e impostando w-dc-tip-vis = "C" se vuoto; z-99-init-program, ctr-abil, open-files, rd-azi; attiva i tasti funzione (invio, invio-modifica, F3 conferma, SF4/SF5, Ctrl-A/Ctrl-E; F3 selezione/modifica se chiamato); carica bitmap custom "labodonto2" e pulsante "Salva Con Nome (F1)"; imposta a-modalita ("A" oppure "S"/"A" secondo il flag di aggiornamento del chiamante); z-costruisci-controlli, z-prepara-tm-grid.
  • a4 / vis-tabella-ini: svuota la tabella; dimensiona la griglia (w-grid-lines); x-spaginamento-start legge il primo blocco da LODMACCH (posizionandosi su codice o descrizione secondo w-dc-in-cod/z26-tip-vis); z-carica-controlli, z-costruisci-grid, attiva i tasti; se chiamato in modifica su un codice specifico, apre subito a-riga-dettaglio.
  • vis-tabella-disp: accept della griglia paginata (z-99-accept-paged-grid); gestione mouse, SF4 (GRIDADMN), SF5 (export), PgDn/PgUp (pg-after-pg-dwn/pg-after-pg-up), F3 (toggle modalita' selezione/aggiornamento), invio (in aggiornamento -> modifica riga; in selezione -> restituisce cod/des e va a fine), Ctrl-A (inserimento), Ctrl-E (eliminazione), F1 (salva con nome).
  • a-riga-dettaglio: passa alla riga di dettaglio; in modifica ("M") locka il record (rd-lodmacch-lk), in inserimento ("I") inizializza i campi con flag "N"; salva lo stato in tm-ele-sav per l'eventuale annullo.
  • a-tm-cod ... a-tm-fl-cee: accept in sequenza dei campi del dettaglio (codice, descrizione, tipologia via S60, matricola, tre flag S/N via S95), con validazioni e possibilita' di uscita (ESC -> a-riga-dettaglio-wesc che ripristina tm-ele-sav) o conferma (F3 -> a-fine-dettaglio).
  • a-fine-dettaglio: x-controlla-dettaglio (tutti i campi); conferma; aggiorna la griglia via GRIDADMN (Add/Modify record); rilegge/locka LODMACCH; se in inserimento il codice esiste gia' avvisa e passa a modifica; scrive (wr-lodmacch) o riscrive (rwr-lodmacch) il record; ricarica la tabella se inserimento.
  • c-cancella: locka e cancella il record da LODMACCH (del-lodmacch) con verifiche di esistenza e riuscita.
  • ricarica-tab: risvuota e ricostruisce la griglia rileggendo da LODMACCH a partire dalla posizione corrente.
  • routine di scrolling (rn-start-not-less, rn-start, rp-start-less, sn-read, sp-read, rd-fill-t-key, rd-fill-b-key, rd-controlli-fill, rd1-ft-go): implementano la paginazione bidirezionale scegliendo la chiave (primaria lmc-chia1 se z26-tip-vis = "C", altrimenti chiave 2 su descrizione + codice) e riempiendo la tabella interna tm-righe.
  • validazioni: x-controlla-tm-cod (segnala "Macchina gia' presente" in inserimento), x-controlla-tm-des (descrizione obbligatoria), x-controlla-tm-mat (matricola obbligatoria se tipologia = "M"); i flag non hanno vincoli.
  • fine / z-chiudi: z-close-files, restituisce util-w-dc in util-z26, exit program.

CALL

Programma Scopo
GRIDADMN Preparazione/gestione griglia paginata (prepara, add/modify record, svuota, SF4)
COGZ26S Salva con nome (F1): duplica il record corrente della macchina

Note

  • La griglia e' paginata (non caricata tutta in memoria): usa l'infrastruttura fscrol2/utilpggr con lettura a blocchi e navigazione PgDn/PgUp; la dimensione del blocco dipende dalle righe visibili (w-grid-lines).
  • L'ordinamento e la posizione di ricerca dipendono da z26-tip-vis: "C" usa la chiave primaria (codice), altrimenti la chiave secondaria .k02 (descrizione + codice), inclusa manualmente a fine procedure division.
  • In modalita' selezione (a-modalita = "S", richiamo da altro programma) l'invio restituisce codice e descrizione senza entrare in modifica.
  • La matricola e' obbligatoria solo per le voci di tipo "M" (Macchina); per le attrezzature ("A") e' facoltativa.
  • I flag lmc-fl-man/lmc-fl-ist/lmc-fl-cee sono visualizzati in griglia come "SI"/"NO" e lmc-tip come "Macchina"/"Attrezzatura" (x-riempi-grid-record).