COGZ97 -- Stampa Dichiarazione di Riparazione (allegato)¶
Sorgente: cbl/cogz97.cbl | Tipo: Programma di menu / stampa allegato (richiamabile) | Program-ID: COGZ97
Menu: Lab.Odont. > Operativo > Stampe > Allegati [Dichiarazione di Riparazione]
Scopo¶
COGZ97 stampa la "Dichiarazione di Riparazione", uno degli allegati documentali che accompagnano la consegna di un dispositivo del laboratorio odontotecnico. A partire da una commessa/prescrizione selezionata, il programma determina il tipo di allegato applicabile, carica il testo descrittivo dell'allegato e lo impagina su un modulo prestampato (cornice, intestazioni e corpo testo) inviato alla stampante in linguaggio HP-GL/2 + PCL.
Il programma ha due modalita' di stampa allegato, decise dalla configurazione:
- Modalita' interna (default): COGZ97 impagina e stampa direttamente l'allegato.
- Modalita' WORD: se la configurazione
MODO-STAMPA-ALLEGATI = "WORD", COGZ97 delega la produzione a COGZ82M (documento su modello Word / Area Report), passandogli il tipo allegatoRPe uscendo subito.
Puo' essere lanciato dal menu (selezione interattiva della prescrizione) oppure richiamato da altri programmi in modalita' "silent" (linkage util-z82 con z82-called = "COGZ97-CALLED"), per esempio nell'ambito dell'archiviazione o della stampa allegati di fine commessa.
Configurazione (RNEWCONF)¶
Letta da ODONTO.CNF via RNEWCONF in x99-confi / x99-confi-operatore (pacchetto C):
| Chiave | Uso |
|---|---|
| Formattazione-portrait | Stringa di formattazione pagina (tm-cfg-formatta) |
| copie-dichiarazione-riparazione | Numero copie da stampare (forzato a 1 in archiviazione senza COGZ50) |
| MODO-STAMPA-ALLEGATI | WORD -> delega a COGZ82M; altrimenti stampa interna |
operatore-clinica-su-lab (gruppo apo, suddivisione = operatore attivo) |
Clinica dell'operatore (tm-cfg-clinica-ope): filtra le commesse per prefisso clinica (lpm-num (1:2)) |
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| LODPRESC | cogfiles.cpy (lpm-rec) |
Prescrizione/commessa: lettura dati (lpm-num, lpm-med, lpm-paz, lpm-pro) e controllo appartenenza clinica |
| LODCMTES | cogfiles.cpy (lct-rec) + lodcmtes.k02 |
Testata commessa: verifica commessa aperta e stato completo (chiave .k02 per prescrizione tm-presc) |
| LODPNTES | cogfiles.cpy (lpt-rec, tipo T) |
Testata piano di lavorazione: descrizione commessa (lpt-des) |
| LODDESCR | cogfiles.cpy (lde-rec) |
Descrizioni allegato: righe di testo dell'allegato (lde-tip = tipo allegato), copiate nel temporaneo |
| LODTABEL | cogfiles.cpy (lta-rec, tipo 10) |
Testi/titoli del modulo allegato ({allegato}T1, {allegato}T2) usati come intestazioni |
| LODTMDES | lodtmdes.fd / .cpy / .k01 |
File temporaneo testate descrizioni (di lavoro per l'editor testo) |
| LODTRDES | lodtrdes.fd / .cpy / .k01 |
File temporaneo righe descrizioni: righe impaginate da stampare (tab-des) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGZ82M | Modalita' MODO-STAMPA-ALLEGATI = "WORD": genera l'allegato su modello Word / Area Report (allegato RP), a cui COGZ97 delega interamente la stampa |
| COGZS3 | Determina il tipo di allegato applicabile alla commessa per il documento "Riparazione" (zs3-allegato); se vuoto l'allegato non e' previsto |
| COGZDEW | Editor/estrattore del testo descrittivo dell'allegato (operazione P): calcola e restituisce le righe da stampare (zde-n-rig) nel file di lavoro |
| COGFNT | Calcolo della lunghezza in stampa di una frase (Ritorna-Lunghezza-Frase) per centrare i titoli del modulo |
COGS98W (z-s98-* / fill-s98-* / flow-s98-*) |
Gestione interattiva della selezione prescrizione (cliente/studio, paziente, progressivo, numero) |
| COGS54 | Selezione/apertura della periferica di stampa (s54-emu = HPLJ3) e chiusura post-stampa |
| RNEWCONF | Lettura configurazione ODONTO.CNF |
COGS52 (z-carica-*) |
Gestione controlli maschera (Y*) |
Flusso principale¶
apri/main-- init standalone (mmmask.cpy); compone i nomi dei file temporanei di lavoro (#$COGZ97.{operatore},#$COGZDE.{operatore}); se richiamato (z82-called = "COGZ97-CALLED") recupera dal linkageutil-z82archiviazione, prescrizione e flag COGZ50.x99-confi/x99-confi-operatore-- lettura configurazione (formattazione, copie, modo allegati, clinica operatore). SeMODO-STAMPA-ALLEGATI = "WORD"chiama COGZ82M e termina.a4/a-tm-cli-- (modalita' interattiva) apertura del temporaneoLODTMDESin uso esclusivo per operatore e selezione della prescrizione via COGS98W; in modalita' richiamata salta la selezione (a-10-cerca).x-controlla-commessa-- valida la prescrizione: leggeLODCMTES(commessa aperta), verifica stato completo (s98-lpm-stato=C/E), controlla l'appartenenza alla clinica dell'operatore, ricava descrizione commessa daLODPNTESe determina il tipo allegato via COGZS3 (w-allegato=P+zs3-allegato).a-20-- selezione periferica via COGS54 (emulazioneHPLJ3); in archiviazione senza COGZ50 la richiesta periferica viene soppressa.a-30/b-carica-- carica le righe descrittive dell'allegato: copia le righe diLODDESCR(tipo =w-allegato) nel temporaneoLODTMDES, invoca COGZDEW per l'impaginazione del testo e rilegge le righe daLODTRDESin tabella (tab-des). Se l'allegato non ha testo, esce.- Ciclo copie (
ctr-copiefino atm-cfg-n-copie) -- per ogni copia:x41-init-page,x4-format-page/d-rect(cornice del modulo, titoli centrati con COGFNT),c-stampa(corpo testo riga per riga in HP-GL/2:PU/LB), gestione salto pagina,x41-close-page. fine/z-chiudi-- disattivazione periferica, chiusura file/finestra, cancel di COGZS3/COGS98W/COGZDEW.
Note¶
- Il testo del corpo e la cornice sono prodotti in HP-GL/2 (
SD1,...,PU,LB,EA,%0B/%0A,IN;SP1;PW0;TR0) su periferica PCL (E,&l...); non e' usato Jasper. - Le chiavi secondarie
lodcmtes.k02,lodtrdes.k01,lodtmdes.k01sono incluse manualmente in coda alla procedure division. - All'apertura,
LODTMDESviene aperto inoutputcome lock esclusivo per operatore: se occupato la funzione avvisa che e' gia' in uso. - Con PBUG-1925 la verifica dell'azienda criptata (ENCRYPT su
az-int) e' stata rimossa: oraaz-intviene semplicemente copiato intm-int. - In modalita' richiamata (
w-dc-called = "S") gli errori di validazione commessa (non aperta, non completa, clinica non corrispondente, allegato non previsto) chiudono direttamente il programma anziche' tornare alla maschera.
Documentazione tecnica -- 2026-08-05