COGZ27 - Preparazione Modelli progetto / Preparazione Stampe¶
Sorgente: cbl/cogz27.cbl | Program-ID: COGZ27 | Tipo: Programma interattivo (maschera testata + area dettaglio + griglia)
Menu: Lab.Odont. > Archivi > Modelli Progetto > Preparazione Modelli. La stessa maschera serve anche Preparazione Stampe (modalita' "S"), distinta tramite il parametro di chiamata wo-parametro.
Scopo¶
Configura la disposizione grafica delle informazioni all'interno di un modello di progetto (o modello di stampa). Per ogni informazione appartenente al modello si definiscono tre gruppi di coordinate (informazione, etichetta, descrizione tabella): posizione verticale/orizzontale e dimensioni. Il risultato e' il layout usato a video (modello "P") o in stampa (modello "S") nella compilazione del progetto tecnico del dispositivo medico.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| LODMODEL | ISAM | I-O | Righe layout del modello. Chiave 1: mdl-tip+mdl-mod+mdl-prog+mdl-inf; chiave 2 (lodmodel.k02) usata da st-lodmodel-notmin-chia2. Campi coordinate: mdl-v-pos-i/mdl-h-pos-i, mdl-siz-inf/mdl-siz-inf-v, mdl-v-pos-e/mdl-h-pos-e, mdl-siz-eti, mdl-v-pos-t/mdl-h-pos-t, mdl-siz-tab, mdl-des |
| LODTABEL | ISAM | Input | Tabella generica; tipo 4 = elenco modelli. Descrizione lta-04-des, chiave lta-tipo+lta-cod |
| LODINFPR | ISAM | Input | Anagrafica informazioni progetto. Campi: nfp-cod, nfp-tip, nfp-etichetta, nfp-lun, nfp-lun-dec |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogz27.select, cogz27.fd, cogz27.wrk, cogz27-01.scr, cogz27.prc, cogz27.decla |
Screen Designer |
cogfiles.cpy |
Layout FEURTAB |
k-personal.cpy, costanti-labod.cpy |
Costanti (incl. k-inf-tip-* tipi informazione, k-personal-lab-lori) |
wgrave, wnscr, wopenf, wstato, cogazien |
Working storage standard + dati azienda |
wgrid.cpy, utilgdad.cpy, utilgrid.cpy |
Griglia + linkage GRIDADMN |
utilu20.cpy |
Subroutine accept coordinate (util-u20, z-u20-*) |
utilwz09.cpy, sendwz09.cpy |
Ricerca/selezione modello (F8 su codice modello) |
utilwz11.cpy, sendwz11.cpy |
Ricerca/selezione informazione (F8 su codice informazione) |
utilz48.cpy |
Linkage verso COGZ48 (anteprima F7) |
wcont, wcont1 |
Contesto chiamata (linkage) |
lodmodel.k02 |
Chiave secondaria LODMODEL |
grave, mmmask, opengen, stato, stato1, winmsg |
Copybook fine procedure |
Struttura dati (accumulatore in memoria)¶
Le righe del modello sono caricate in tab-maschera -> tm-tab / tm-righe occurs 900. Per ogni riga: tm-inf-cod, tm-inf-des, tm-inf-tip, tm-size/tm-size-dec, tm-label, le coordinate tm-v-pos/tm-h-pos/tm-v-size/tm-h-size, quelle etichetta tm-label-*, quelle descrizione tabella tm-dt-*, e tm-inf-occurs/tm-inf-occurs-sav (usati come progressivo mdl-prog). tm-pnt = numero righe, tm-massimo = max progressivo.
Logica (flusso, paragrafi principali)¶
- apri: init; determina modalita' da
wo-parametro("S"-> modello stampaw-mod-tip="S"; altrimenti"P"progetto); imposta titolo, tasti funzione, prepara griglia (z-prepara-tm-grid). - a4: reset maschera e griglia; carica testata; attiva F3.
- a-tm-mod: accept del codice modello; F8 ->
send-wz09(selezione);x-controlla-tm-modvalida su LODTABEL tipo 4 (messaggi "Tipologia obbligatoria/non esistente"); F3 ->a-inizio-dati. - a-inizio-dati / carica-dati: legge da LODMODEL tutte le righe del modello (
st-lodmodel-notmin-chia2+rdnxt-lodmodel, rottura sumdl-tip/mdl-mod) e le carica intm-tab, arricchendole con l'anagrafica informazione (LODINFPR). Se il modello di stampa e' vuoto, lo inizializza copiando il modello progetto omonimo (b1-copia-modello). - a-inizio-grid / z-costruisci-grid: riempie la griglia GRIDADMN da
tm-tab(x-riempi-grid-recordmappa i tipik-inf-tip-*in etichette leggibili). - a-accept-grid: loop eventi griglia:
- S-F1
b-copia-da: copia tutte le informazioni/coordinate da un altro modello selezionato consend-wz09(previa conferma e cancellazione righe attuali). - S-F4: apre GRIDADMN (configurazione colonne griglia).
- F7: anteprima grafica -> chiama COGZ48 (
z48-called="COGZ48-CALLED",z48-ope="MODELLO-"+tipo,z48-mod). - Invio: modifica riga (
a-operazione="M",a-riga-dettaglio). - Ctrl+A: aggiunge riga in coda (max 900 -> "Tabella piena").
- Ctrl+E
c-cancella: elimina riga (con conferma, salvo personalizzazionek-personal-lab-lori) da LODMODEL e compatta la tabella. - a-riga-dettaglio ... a-fine-dettaglio: sequenza di accept dei campi di dettaglio (codice informazione con F8
send-wz11, progressivo, etichetta, size/pos informazione, size/pos etichetta, size/pos descrizione tabella). In inserimento precalcola posizioni verticali/orizzontali dal controllo precedente.a-fine-dettagliovalida (x-controlla-dettaglio), conferma, poi scrive/riscrive LODMODEL (wr-lodmodel/rwr-lodmodel; in modifica con cambio progressivo eseguedel-lodmodel+reinserimento) e aggiorna la griglia via GRIDADMN (Add-Record/Modify-Record). - a3-sposta-controlli: se in modifica si sposta la posizione di un controllo, propaga (previa conferma) lo spostamento verticale/orizzontale ai controlli successivi, aggiornando LODMODEL.
- fine/z-chiudi: chiude file/finestra, exit program.
Controlli campo principali¶
x-controlla-tm-mod: modello obbligatorio ed esistente in LODTABEL tipo 4.x-controlla-tm-inf-cod: informazione obbligatoria ed esistente in LODINFPR; ne copia tipo/etichetta/lunghezza.x-controlla-tm-label: etichetta obbligatoria.x-controlla-tm-v-size/h-size: dimensioni obbligatorie se il controllo e' abilitato. Per tipo etichetta (k-inf-tip-etichetta) forzatm-label-v-pos = tm-v-pos.x-controlla-tm-v-pos/h-pos: posizioni obbligatorie.
CALL¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (Prepara/Add-Record/Modify-Record/Svuota) |
| COGZ48 | Anteprima grafica del modello a video (F7) |
| Gestori tabella generati | Accesso a LODMODEL/LODTABEL/LODINFPR (st-/rdnxt-/rd-/wr-/rwr-/del-) e selettori WZ09 (modelli) e WZ11 (informazioni) via send-wz09/send-wz11 |
Note¶
- Massimo righe per modello: 900 (
k-max-ele-tab). - La modalita' (progetto "P" / stampa "S") arriva dal chiamante via
wo-parametro; determina titolo etm-mod-tip. - Il progressivo di riga (
mdl-prog) e' gestito tramitetm-inf-occurs/tm-inf-occurs-sav; le note storiche marcatemrnel sorgente documentano il passaggio datm-progatm-inf-occurscome chiave del progressivo. - Copia modello (
b1-copia-modello): cancella le righe del modello destinazione, poi copia record per record dal modello base cambiando solomdl-tip/mdl-mod.