Vai al contenuto

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.