COGZ48 — Stesura progetto tecnico
| Campo |
Valore |
| Sorgente |
cbl/cogz48.cbl |
| Program-ID |
cogz48 |
| Tipo |
Maschera GUI a controlli dinamici (form generata a runtime) |
| Posizione menu |
Lab.Odont. > Operativo > Stesura progetto |
Scopo
Aggancia una prescrizione/commessa del laboratorio a un modello di progetto tecnico e consente di compilarne i valori. La maschera non e' statica: i controlli (entry, combo, check, note, tabelle, rischi, fascicolo, ecc.) vengono costruiti dinamicamente a runtime leggendo il template dal modello LODMODEL, distribuiti su pagine (tab). Lo stesso programma opera anche in modalita' "Progettazione" per definire/gestire i modelli (progetto o stampa).
Struttura e flusso
Programma modeless che genera le pagine e i controlli in base al modello, li accetta uno per uno e salva i valori compilati su LODPROGE.
main/screen-0: init, open-files, rd-azi. Determina la modalita' (m-modo: O operativo / P progettazione) e il tipo modello (m-modello: P progetto / S stampa) da w-dc-ope/wo-parametro. Carica bitmap e pulsanti custom (F5 commessa/prescrizione, F9 note lavoro, S-F7 note medico, F7 fascicolo tecnico, F2 rischi).
a4: reset maschera; apre/chiude LODTMDES per lock funzione per operatore; instrada in base a w-dc-called/m-modo.
a-10-cli/a-10-cerca: accept prescrizione via COGS98W; verifica esistenza su LODPRESC, controllo stato (chiusa/evasa), verifica apertura commessa su LODCMTES, recupero modello lpm-mod.
a-tm-mod/a-tm-mod-cerca/a-richiesta-conferma: accept del codice modello (aiuto via WINZ09/send-wz09), descrizione da LODTABEL tipo 4.
a-carica (thru ex-a): motore di costruzione form.
a1-carica-pagine: legge le pagine del modello da LODMODEL (verifica sequenza pagine).
a2-carica-controlli: per ogni pagina legge i controlli da LODMODEL, ne risolve la tipologia su LODINFPR (nfp-), calcola posizioni/dimensioni e crea a video (display entry-field/label/combo/check/…) memorizzando gli handle nelle tabelle thf-/thb-/thc-/thr-/thl-/thp-.
a24-carica-rischi/a241-mostra-rischi: gestione informazioni di tipo rischio (WINZ20).
m-70-accept/m-70-fun: loop principale di accept sui controlli dinamici della pagina attiva, con navigazione tra campi (ftab/ftab-l), cambio pagina (cmd-tabchanged) e gestione tasti: F2 rischi (WINZ20), F3 conferma/salva, F5 immagine prescrizione, F7 fascicolo tecnico (COGZ51), F9 note lavoro, S-F7 note medico (COGZDEW). Le date sono gestite da COGS52W, i numerici da COGU20W, le tabelle validate su LODTABEL tipo 5 con aiuto WINZ12.
c-aggiorna (thru ex-c): salvataggio.
- Cancella tutte le informazioni progetto della commessa su
LODPROGE e le reinserisce leggendo i valori dai controlli a video (wr-lodproge).
c1-note: gestione blocchi note su LODDESCR/LODTMDES via COGZDEW.
c-60/c-80: rigenera i rischi del progetto su LODPRRIS dalla selezione WINZ20.
- Imposta
lct-fl-prg = "S" su LODCMTES, memorizza il modello su LODPRESC (lpm-mod, lpm-fl-estratta = "N").
- Dialog finale (
DIALOGS) con opzione stampa progetto via COGZ89.
Tabelle utilizzate
| Tabella |
Accesso |
Descrizione |
LODMODEL (mdl-) |
lettura/riscrittura (chiave .k02) |
Template modello progetto/stampa: pagine, controlli, posizioni |
LODINFPR (nfp-) |
lettura |
Anagrafica informazioni progetto (tipo controllo, tabella, lunghezza) |
LODPROGE (lpg-) |
lettura/scrittura/cancellazione |
Valori compilati del progetto per commessa |
LODPRESC (lpm-) |
lettura/riscrittura (chiave .k04) |
Prescrizione/commessa (modello, flag estratta) |
LODCMTES (lct-) |
lettura/riscrittura |
Testata commessa (flag progetto eseguito) |
LODPRRIS (lrr-) |
lettura/scrittura/cancellazione |
Rischi del progetto |
LODDESCR (lde-) |
lettura/scrittura/cancellazione |
Blocchi descrizione/note |
LODTABEL (lta-) |
lettura |
Tabella laboratorio: tipo 4 modelli, tipo 5 tabelle valori |
LODTMDES (ltd-) |
temporaneo (open output/i-o) |
File di lavoro/lock funzione per operatore |
feurtab (lodfiles.cpy) |
— |
File tabelle laboratorio |
Programmi chiamati
| Programma |
Interfaccia |
Scopo |
COGS98W |
util-s98 |
Selezione/validazione prescrizione |
COGS52W |
util-s52 |
Gestione campo data |
COGU20W |
util-u20 |
Gestione campo numerico |
COGU06 |
util-u06 |
Utility (gestione controlli/valori) |
COGZDEW |
util-zde |
Editor testo/note (note lavoro, note medico, note progetto) |
COGZ51 |
util-z51 |
Fascicolo tecnico |
COGZ89 |
util-z89 |
Stampa progetto |
WINZ09 |
util-wz09 (send-wz09) |
Aiuto/ricerca modelli |
WINZ12 |
util-wz12 (send-wz12) |
Aiuto/ricerca valori tabella |
WINZ20 |
util-wz20 |
Selezione rischi |
DIALOGS |
util-dlg |
Dialog a scelte multiple (fine salvataggio) |
RNEWCONF |
util-ncnf |
Lettura configurazioni |
Copybook principali
| Copybook |
Ruolo |
cogz48.select/.fd/.wrk/.prc/.decla |
Definizioni generate |
cogz48-01.scr |
Screen section |
labproge-wrk.cpy |
Strutture di lavoro del motore progetto (pagine/controlli tp-/tc-, handle thf- ecc.) |
costanti-labod.cpy |
Costanti laboratorio (tipi informazione k-inf-tip-*, k-inf-hnd-*) |
utilz48.cpy |
Linkage di chiamata (prescrizione/modello/operazione in ingresso) |
utilz89/utilz51/utildlg/utilzde/utils52/utils98/utilwz09/utilwz12/utilwz20/utilu06/utilu20/utilcogz48f/utilcogz48p |
Linkage subroutine chiamate |
lodpresc.k04, lodmodel.k02, lodtmdes.k01 |
Chiavi secondarie |
mmmask.cpy |
Maschera GUI standalone |
Note
- Il programma e' un vero e proprio "motore di form": la struttura dei campi non e' definita nel sorgente ma nel modello (
LODMODEL + LODINFPR), rendendo la maschera completamente configurabile.
- Tipologie di informazione gestite (
costanti-labod.cpy): data, numero, tabella, val-fissi (combo), check, note, esterna, etichetta, linea, riquadro, fascicolo, allegato, rischi.
- Un commento nel sorgente documenta un fix per un bug storico su
TC-OCC 9(02): progressivi informazione > 99 venivano troncati; m-cerca-lodproge tenta il recupero cercando prima con il valore corretto poi con quello troncato.
- Le finestre ausiliarie COGZ48F/COGZ48P (elenco controlli e proprieta') sono presenti nel linkage ma le call in thread risultano commentate.