Vai al contenuto

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 stampa w-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-mod valida 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 su mdl-tip/mdl-mod) e le carica in tm-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-record mappa i tipi k-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 con send-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 personalizzazione k-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-dettaglio valida (x-controlla-dettaglio), conferma, poi scrive/riscrive LODMODEL (wr-lodmodel/rwr-lodmodel; in modifica con cambio progressivo esegue del-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) forza tm-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 e tm-mod-tip.
  • Il progressivo di riga (mdl-prog) e' gestito tramite tm-inf-occurs/tm-inf-occurs-sav; le note storiche marcate mr nel sorgente documentano il passaggio da tm-prog a tm-inf-occurs come chiave del progressivo.
  • Copia modello (b1-copia-modello): cancella le righe del modello destinazione, poi copia record per record dal modello base cambiando solo mdl-tip/mdl-mod.