COGZ82M - Stampa documenti laboratorio su modelli Word/AreaReport¶
| Campo | Valore |
|---|---|
| Sorgente | cbl/cogz82m.cbl |
| Tipo | Programma interattivo (maschera) |
| Chiamato da | Menu Laboratori odontotecnici |
| Righe sorgente | ~1.800 |
Descrizione¶
Programma per la stampa della Dichiarazione di Conformita' e altri documenti del laboratorio odontotecnico, utilizzando modelli Word gestiti tramite il modulo WORDMDL (Word Model). Permette la selezione della commessa, la scelta del modello di stampa (tramite COGPA3), e la generazione del documento con i dati estratti dalla commessa.
Supporta anche la generazione tramite AreaReport, passando i parametri di processo e programma MDC al modulo WORDMDL.
File e tabelle¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB (cogfiles) | Input | Parametri generali azienda |
Tabelle da cogz82m.select |
I-O | Tabelle gestionale e laboratorio |
| COGASCII | Output | File binario sequenziale per output XML (record da 2000 byte) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| cogz82m.wrk / .select / .fd / .scr / .prc / .decla | Screen Designer: working, select, fd, screen, procedure, declaratives |
| utilcogpa3.cpy | Interfaccia COGPA3 (scelta modello stampa) |
| utils54.cpy | Interfaccia S54 |
| utils98.cpy | Interfaccia S98 |
| utilzs3.cpy | Interfaccia COGZS3 (estrazione dati laboratorio) |
| utilzs9.cpy | Interfaccia COGZS9 (estrazione XML allegati) |
| utilsview.cpy | Interfaccia SVIEW (visualizzatore) |
| utilwordmdl.cpy | Interfaccia WORDMDL (generazione documenti Word) |
| utilcogsc1.cpy | Interfaccia COGSC1 (configurazione specifica programma) |
| utilu06.cpy | Interfaccia COGU06 (archiviazione documenti) |
| utilgesstr.cpy | Interfaccia GESSTR (manipolazione stringhe) |
| cogz62-wrk.cpy | Working storage condivisa con COGZ62 |
| utilz82.cpy | Interfaccia del programma (linkage) |
| utilncnf.cpy | Struttura per lettura configurazioni RNEWCONF |
| k-personal.cpy | Costanti personalizzazioni aziendali |
| l-copiaf.cpy / u-copiaf.cpy | Linkage e utilita' per copia file |
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGPA3 | Scelta modello di stampa (2 modalita': con modello forzato o con filtro descrizione) |
| WORDMDL | Generazione documento Word/AreaReport (apertura XML, scrittura, esecuzione) |
| COGZS9 | Estrazione dati XML per allegati laboratorio |
| SVIEW | Visualizzatore file generato |
| COPIAF | Copia file per archiviazione |
| COGSC1 | Configurazione specifica programma (area-report-attivo, default "N") |
| COGU06 | Archiviazione documenti: verifica esistenza ("Cerca-esistenza-doc"), eliminazione ("Elimina-doc") e inserimento ("Inserisci-file") allegati |
| RNEWCONF | Lettura configurazioni |
Configurazioni RNEWCONF¶
| # | Gruppo | Chiave | Descrizione |
|---|---|---|---|
| 1 | WORDMDL | COPIE-DC | Numero copie Dichiarazione di Conformita' |
| 2 | WORDMDL | COPIE-SI | Numero copie Scheda Istruzioni |
| 3 | WORDMDL | COPIE-IS | Numero copie Istruzioni d'Uso |
| 4 | WORDMDL | COPIE-DR | Numero copie report DR |
| 5 | WORDMDL | COPIE-AC | Numero copie report AC |
| 6 | WORDMDL | COPIE-DP | Numero copie report DP |
| 7 | WORDMDL | COPIE-RP | Numero copie report RP |
| 8 | WORDMDL | COPIE-DC-RIF | Copie DC con riferimento |
| 9 | WORDMDL | ARCHIVIAZ | Archiviazione documenti |
| 10 | WORDMDL | MODELLO-DC | Modello DC |
| 11 | WORDMDL | FL-COGZ50 | Flag COGZ50 |
| 12 | ARC-OTT | PATH-APRI-FILE | Path per apertura file archiviati |
| 13 | odonto | modo-gestione-allegati | Modalita' gestione allegati |
| 14 | WORDMDL | MODO-CREAZIONE-PDF | Modalita' creazione PDF |
| 15 | LABAVANZ | ARCHIVIAZIONE-AUTOMATICA-ALLEGATI | Archiviazione automatica allegati laboratorio avanzato |
Configurazione specifica programma (via COGSC1, sottoprogramma COGZ82):
| Gruppo | Chiave | Default | Descrizione |
|---|---|---|---|
| stampe | area-report-attivo | N | Abilita la modalita' AreaReport per la gestione firma responsabile. Se "S", la firma viene cercata sul server; se "N", viene gestita tramite Word con copia client-side |
Logica di elaborazione¶
Flusso principale¶
- Selezione commessa: l'utente inserisce il numero commessa (con navigazione F5 per ricerca).
- Scelta modello: il programma chiama COGPA3 per selezionare il modello di stampa. Due modalita':
- Con modello forzato da
lmst-mdc-prog(tipo "COGZ82") - Con filtro per descrizione su
w-dc-modello - Configurazione programma: chiamata a COGSC1 per leggere la configurazione specifica
stampe/area-report-attivo(sottoprogramma COGZ82, default "N"). - Generazione XML: apertura del file XML tramite
WORDMDLcon operazione "Apri-XML", passando il path del modello e il nome del file di output. - Integrazione AreaReport: i parametri
cogpa3-tipecogpa3-o-mdc-progvengono passati rispettivamente awordmdl-processoewordmdl-mdc-prog, permettendo ad AreaReport di identificare il processo di stampa e il programma MDC associato. - Estrazione dati allegati: chiamata a COGZS9 per estrarre le informazioni della commessa in formato XML.
- Gestione firma responsabile: la firma viene gestita in modo diverso a seconda della configurazione
area-report-attivo: - AreaReport (
tm-cfg-area-report-attivo = "S"): la firma grafica (firma-responsabile.jpg) viene cercata direttamente sul server. In ambiente multisede il path e' configurato per sede; altrimenti viene usata la sottocartellasede/della directory modelli. Il tag XML generato e'FIRMA-SEDE-IMG. - Word (default): la firma grafica e testuale vengono copiate dal server al client tramite COPIAF. Genera i tag XML
FIRMA-SEDE-IMG(immagine) eFIRMA-SEDE-TXT(testo letto dafirma-responsabile.txt). - Archiviazione: se la configurazione
ARCHIVIAZIONE-AUTOMATICA-ALLEGATI(LABAVANZ, posizione 15) e' attiva, oppure se il flag archiviazione e' impostato, il documento generato viene archiviato automaticamente tramite COPIAF. - Esecuzione WORDMDL: il documento viene finalizzato e aperto/stampato.
Archiviazione automatica¶
Quando il parametro w-dc-archivia = "Archivia" e w-dc-fl-cogz50 <> "S", il programma forza il numero di copie a 1 per tutti i tipi di documento, bypassando i valori configurati in RNEWCONF.
Archiviazione automatica completa (m-archiviazione-automatica)¶
Il paragrafo m-archiviazione-automatica implementa il flusso completo di archiviazione, attivato quando la configurazione LABAVANZ / ARCHIVIAZIONE-AUTOMATICA-ALLEGATI e' abilitata. I passi sono:
- Verifica lato file: se il file di output e' lato client (non server), lo copia nella directory temporanea server tramite COPIAF prima di procedere.
- Ricerca ultimo progressivo: cerca in LODRACCO l'ultimo record di tipo "PI" per la commessa corrente, per determinare il progressivo su cui operare.
- Verifica esistenza documento: chiama COGU06 con operazione "Cerca-esistenza-doc" per verificare se il documento e' gia' archiviato. Se esiste, lo elimina tramite COGU06 "Elimina-doc" prima di procedere al re-inserimento.
- Archiviazione: inserisce il documento tramite COGU06 "Inserisci-file". Dopo l'inserimento, scrive un record LODRACCO di tipo "PI" per collegare il documento alla commessa. Il file viene poi eliminato dalla directory temporanea.
- Aggiornamento legame commessa: dopo l'archiviazione, aggiorna il legame tra il documento archiviato e la commessa di laboratorio.
Il nome del file PDF da archiviare e' reso disponibile da WORDMDL tramite il campo wordmdl-save-as, che viene valorizzato da WORDMDL stesso con stimutil-nome-pdf al termine della generazione del documento. Questo e' il meccanismo che permette a COGZ82M di sapere il nome esatto del PDF generato per passarlo all'archiviazione.
Mapping tipi allegato → indice tabella voci (m-cerca-tvc-idx)¶
Il paragrafo m-cerca-tvc-idx mappa il tipo di allegato corrente all'indice nella tabella delle voci (tab-voci), usato per sapere quale voce della griglia allegati e' in elaborazione:
| Tipo allegato | Indice tab-voci |
|---|---|
| DC | 5 |
| IS | 3 |
| SI | 4 |
| DR | 6 |
| AC | 7 |
| DP | 9 |
| RP | 8 |
Helper: prepare-copiaf-move¶
Paragrafo di supporto che prepara i parametri di COPIAF per un'operazione di spostamento file (move), centralizzando l'impostazione dei campi sorgente/destinazione prima della chiamata a COPIAF.
Note¶
- Il programma utilizza
mmmask.cpy(programma standalone con gestione finestra propria). - La chiave secondaria
lodcmtes.k02elodrmstd.k02e la chiave quinariagrplabod.k05vengono incluse manualmente in coda alla procedure division. - Il tipo processo per COGPA3 e' sempre
"COGZ82", che identifica i modelli di stampa specifici per il laboratorio odontotecnico.
Storico Modifiche¶
| Build | Descrizione |
|---|---|
| 2026/0401 | Aggiunta archiviazione automatica completa (m-archiviazione-automatica): copia server-side, ricerca progressivo su LODRACCO, controllo gia' archiviato, archiviazione e aggiornamento legame commessa. Aggiunto mapping tipi allegato (m-cerca-tvc-idx). Helper prepare-copiaf-move per operazioni di spostamento file |
| 2026/0401 | Gestione firma responsabile separata per AreaReport (gestione-firma-responsabile-area-report) e Word (gestione-firma-responsabile-word). In multisede usa tm-cfg-path-risorse-sede; altrimenti sottocartella sede/ di modelli_dir. Tag XML generati: FIRMA-SEDE-IMG e FIRMA-SEDE-TXT |
| 2026/0401 | WORDMDL ora esporta stimutil-nome-pdf in wordmdl-save-as, rendendo disponibile il nome del PDF generato per l'archiviazione automatica |
| 2026/0501 | Integrazione COGU06 per archiviazione: verifica esistenza, eliminazione e re-inserimento documenti. Aggiunto legame commessa su LODRACCO tipo "PI". Tag XML CF-RESP-SEDE (segnaposto). Copybook aggiunte: utilu06, utilgesstr, cogz62-wrk |
| 2026/0513 | Consolidamento del flusso m-archiviazione-automatica: aggiunto record di lavoro w-dati (wd-note/wd-data/wd-tip-img) scritto su LODRACCO; chiamata COGSC1 (stampe / area-report-attivo) inizializza la configurazione specifica programma a default "N" per i clienti senza Area Report; integrato x99-conf-programma nel m-00 per allineare il flag tm-cfg-area-report-attivo. Marcatore *>DOC introdotto su m-archiviazione-automatica |
| 2026/0514 | Validazione di configurazione: se tm-cfg-area-report-attivo = "S" e tm-cfg-modo-gestione-allegati = "2", mostra messaggio di errore in apertura (vbx-msg-error) — combinazione non supportata. Disabilitato temporaneamente il "Modello specifico per commessa" (lc2-modello-is) in modalita' Area Report (in a3-esecuzione-modello) con warning all'utente: in attesa di valutazione compatibilita' con il flusso Area Report il valore viene azzerato. Propagato z82-fl-no-email come wordmdl-fl-no-email a WORDMDL (allineamento col flusso COGZSD di invio mail unificato). Sostituito move ncnf-pnt = 14 con 15: introdotta riga 15 per la chiave LABAVANZ / ARCHIVIAZIONE-AUTOMATICA-ALLEGATI nella RNEWCONF principale (in precedenza era nel blocco x99-conf-programma) |