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), copiandoutil-z26inutil-w-dce impostandow-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)"; impostaa-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-startlegge il primo blocco daLODMACCH(posizionandosi su codice o descrizione secondow-dc-in-cod/z26-tip-vis);z-carica-controlli,z-costruisci-grid, attiva i tasti; se chiamato in modifica su un codice specifico, apre subitoa-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 afine), 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 intm-ele-savper 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-wescche ripristinatm-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/lockaLODMACCH; 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
LODMACCHa 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 (primarialmc-chia1sez26-tip-vis = "C", altrimenti chiave 2 su descrizione + codice) e riempiendo la tabella internatm-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, restituisceutil-w-dcinutil-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/utilpggrcon 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-ceesono visualizzati in griglia come "SI"/"NO" elmc-tipcome "Macchina"/"Attrezzatura" (x-riempi-grid-record).