Vai al contenuto

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

  1. Selezione commessa: l'utente inserisce il numero commessa (con navigazione F5 per ricerca).
  2. Scelta modello: il programma chiama COGPA3 per selezionare il modello di stampa. Due modalita':
  3. Con modello forzato da lmst-mdc-prog (tipo "COGZ82")
  4. Con filtro per descrizione su w-dc-modello
  5. Configurazione programma: chiamata a COGSC1 per leggere la configurazione specifica stampe/area-report-attivo (sottoprogramma COGZ82, default "N").
  6. Generazione XML: apertura del file XML tramite WORDMDL con operazione "Apri-XML", passando il path del modello e il nome del file di output.
  7. Integrazione AreaReport: i parametri cogpa3-tip e cogpa3-o-mdc-prog vengono passati rispettivamente a wordmdl-processo e wordmdl-mdc-prog, permettendo ad AreaReport di identificare il processo di stampa e il programma MDC associato.
  8. Estrazione dati allegati: chiamata a COGZS9 per estrarre le informazioni della commessa in formato XML.
  9. Gestione firma responsabile: la firma viene gestita in modo diverso a seconda della configurazione area-report-attivo:
  10. 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 sottocartella sede/ della directory modelli. Il tag XML generato e' FIRMA-SEDE-IMG.
  11. Word (default): la firma grafica e testuale vengono copiate dal server al client tramite COPIAF. Genera i tag XML FIRMA-SEDE-IMG (immagine) e FIRMA-SEDE-TXT (testo letto da firma-responsabile.txt).
  12. 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.
  13. 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:

  1. Verifica lato file: se il file di output e' lato client (non server), lo copia nella directory temporanea server tramite COPIAF prima di procedere.
  2. Ricerca ultimo progressivo: cerca in LODRACCO l'ultimo record di tipo "PI" per la commessa corrente, per determinare il progressivo su cui operare.
  3. 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.
  4. 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.
  5. 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.k02 e lodrmstd.k02 e la chiave quinaria grplabod.k05 vengono 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)