COGZB5 — Stampa consuntivo commessa (modulo commessa con tempi)¶
Sorgente: cbl/cogzb5.cbl | Program-ID: cogzb5 | Tipo: Programma di stampa grafica (HP-GL/2) su spool
Menu: Lab.Odont. > Statistiche > Stampa consuntivo commessa
Scopo¶
Stampa il modulo di consuntivo di una commessa di laboratorio odontotecnico, riportando per ogni riga/azione il lavoro eseguito con i relativi tempi di esecuzione. Per ogni azione della commessa vengono stampati controlli, prestazioni, materiali (selezionati/automatici a seconda che la riga sia evasa o meno), l'operatore che l'ha eseguita, la data e il dettaglio dei tempi (paragrafo b44-tempi), oltre al tempo totale calcolato via COGZS8.
Il programma e' derivato da COGZ84 (con cui condivide la copybook di linkage utilz84.cpy) per differenziarne l'accesso e non appesantirlo. Puo' essere lanciato in modalita' standalone (l'operatore sceglie la prescrizione/commessa) oppure richiamato da COGZ84 (z84-called = "COGZ84-CALLED"), nel qual caso riceve gia' i dati della prescrizione e salta la fase di selezione. Supporta anche una modalita' "Archivia" (via z84-archivia/z84-fl-cogz50) in cui COGS54 viene usato solo per aprire il file di stampa.
L'output e' una stampa in linguaggio HP-GL/2 (comandi SP, PU, PD, EA, LB, SD...) composta riga per riga tramite la routine di stampa feurtab/s54, con posizionamento assoluto dei disegni (rettangoli, righe separatrici, etichette).
File e tabelle¶
| File | Copybook | Accesso | Scopo |
|---|---|---|---|
| feurtab | cogfiles.cpy / cogzb5.fd |
Lettura | Tabella archivi (open dinamico dei file) |
| LODCMTES | (via .select/.fd) |
Lettura (chia2, lk) |
Testata commessa laboratorio; imposta flag stampa lct-fl-sta |
| LODCMAGG | Lettura | Dati aggiuntivi commessa (coeff., progressivo agg.) | |
| LODCMRIG | Lettura sequenziale/diretta | Righe commessa (azioni, stato, minuti, piano) | |
| LODCMCTR | Lettura sequenziale | Controlli eseguiti sulle righe commessa | |
| LODCMDET | Lettura sequenziale (chia) |
Dettaglio esecuzione righe (data/ora inizio-fine, minuti, operatore) | |
| LODCMMTA | Lettura sequenziale | Materiali aggiuntivi consumati per prestazione (mpa-) |
|
| LODPNTES | Lettura | Testata piano di fabbricazione (descrizione) | |
| LODPNRIG | Lettura | Righe piano di fabbricazione (sequenza, flag check consegna) | |
| LODPNMAT | Lettura sequenziale | Materiali/prestazioni del piano (tipo "P"/"M") | |
| LODCONTR | Lettura | Anagrafica controlli (lcn-) |
|
| LODRACCO | Lettura sequenziale | Raccordi azione-controllo (tipo "AC") | |
| LODAZION | Lettura | Anagrafica azioni (descrizione) | |
| LODDESCR | Lettura sequenziale | Descrizioni progetto/riga (tipo "T1", "P2") | |
| LODRAPNC | Lettura sequenziale (chia6) |
Rapporti di non conformita' per riga commessa | |
| LODPRESC | (via COGS98) | Prescrizione medica | |
| COGMERCI | Lettura | Anagrafica merci (descrizione, unita' di misura) | |
| COGMAGAZ | Lettura | Intestazione azienda/magazzino (indirizzo) | |
| COGTABEL | Lettura | Tabelle (operatore tipo 36 mag "O") | |
| PRNTOPER | Lettura | Operatori (validita' logica) | |
| LODTMDES | lodtmdes.cpy |
I/O temporaneo | File temporaneo descrizioni caricate (blocco descrizioni) |
| LODTRDES | lodtrdes.cpy |
Input | File di lavoro descrizioni (righe testo da COGZDEW) |
| flsta | flsta.cpy |
Stato file |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGS54 | Gestione file/dispositivo di stampa (apertura, s54-after-print) |
| COGS98W | Selezione/ricerca prescrizione medica (subroutine schermata) |
| COGFNT | Calcolo lunghezza frase, taglio a misura, adattamento font per la stampa grafica |
| COGZDEW | Estrazione descrizioni di progetto/riga su file di lavoro (zde-ope = "E") |
| COGZS8 | Calcolo tempo totale di esecuzione della riga commessa |
| RNEWCONF | Lettura parametri di configurazione |
| ENCRYPT | (rimosso — gestione azienda criptata disattivata da PBUG-1925) |
Copybook incluse¶
Working Storage¶
cogzb5.wrk, wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy, utilfnt.cpy, utils54.cpy, utils98.cpy, utilzde.cpy, utilzs8.cpy, utilncnf.cpy
Linkage Section¶
wcont.cpy, utilz84.cpy, wcont1.cpy
Screen Section¶
cogzb5-01.scr
Procedure Division (finali)¶
stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy, cogzb5.prc, lodcmtes.k02, lodrapnc.k06, lodtmdes.k01, lodtrdes.k01
Parametri di configurazione (RNEWCONF)¶
| Gruppo | Chiave | Variabile interna | Effetto |
|---|---|---|---|
odonto |
Formattazione-portrait |
tm-cfg-formatta |
Stringa di formattazione emessa in testa a ogni pagina (comando iniziale di orientamento/setup stampante) |
Logica di elaborazione¶
- Inizializzazione (
apri): apre i file, carica configurazione, definisce i tasti funzione e il pulsante custom "Commessa (F5)", compone i nomi dei file temporanei (#$COGZB5.operper LODTMDES,#$COGZDE.operper il file descrizioni). Se richiamato da COGZ84 imposta i dati della prescrizione da linkage. - Selezione commessa: in modalita' standalone (
a-tm-cli) l'operatore indica studio/paziente/prescrizione/numero commessa via COGS98W;x-controlla-commessaverifica l'esistenza della prescrizione.cerca-presclegge la testata commessa (LODCMTES) e verifica che sia gia' stata aperta. - Apertura stampa (
a-90): chiamata a COGS54 per scegliere il dispositivo (salvo modalita' "Archivia" con COGS50). - Stampa (
b-stampa): legge intestazione azienda da COGMAGAZ, piano di fabbricazione, e carica in tabella interna le righe commessa (LODCMRIG) con stato "C" (chiuse) o "S", incluse le date di consegna (flag check "C"). Per ciascuna azione (b4-azione) carica controlli (LODCMCTR, o dall'anagrafica azione via LODRACCO se la riga e' ancora aperta), prestazioni (LODPNMAT tipo "P"), materiali (LODPNMAT tipo "M" + LODCMMTA), calcola l'ingombro e stampa una pagina nuova se necessario (b2-testa). - Dettaglio tempi (
b44-tempi): per ogni riga stampa le esecuzioni (LODCMDET) con data/ora inizio-fine, minuti e operatore; alla fine stampa il tempo totale via COGZS8. - Note di riga: se esistono descrizioni sulla riga (COGZDEW su chiave num+riga) le stampa da LODTRDES.
- Chiusura (
z-chiudi): chiude e cancella i temporanei, chiude la finestra, cancella i sottoprogrammi.
Paragrafi chiave¶
| Paragrafo | Scopo |
|---|---|
apri |
Inizializzazione, tasti funzione, pulsante custom, nomi temporanei |
a-tm-cli |
Accept dello studio/prescrizione (via COGS98W) |
cerca-presc |
Lettura testata commessa e verifica apertura |
a-90 / a-90-ok |
Apertura stampa COGS54 e avvio b-stampa |
b-stampa |
Intestazione azienda, caricamento righe commessa e consegne, ciclo azioni |
b2-testa |
Stampa intestazione pagina (riquadri, dati commessa, PDF) |
b21-int-completa |
Intestazione completa della prima pagina (riquadri e dati anagrafici) |
b4-azione |
Elaborazione di una singola azione: carica controlli/prestazioni/materiali e stampa |
b41-controlli / b42-prestazioni / b43-materiali |
Stampa delle righe di dettaglio di ciascun tipo |
b44-tempi |
Stampa esecuzioni (LODCMDET) e tempo totale (COGZS8) |
b5-controllo |
Stampa di una fase di tipo "controllo utente" |
x2-set-ea / x2-set-pd / x2-set-lb / x2-set-pu |
Routine di posizionamento e disegno HP-GL/2 |
x3-carica-des |
Carica un blocco di descrizioni (LODDESCR → LODTMDES) |
cerca-rnc |
Verifica esistenza rapporto di non conformita' sulla riga |
x99-confi |
Lettura configurazione Formattazione-portrait |
Note¶
- Il programma non usa una griglia: e' un generatore di stampa grafica. Le tabelle interne (
w-righe-commessa,w-consegne,w-controlli,w-materiali,w-prestazioni) hanno limiti fissi (500 righe, 20 consegne/controlli/prestazioni, 50 materiali) e vengono segnalati messaggi di superamento. - La gestione dell'azienda criptata (chiamate a
ENCRYPT) e' stata rimossa con PBUG-1925 (02/07/2024): oratm-intriceve semplicementeaz-int. - Il sorgente usa ancora
PERFORM ... THRUeGO TO; e' codice legacy pre-convenzioni.