COGZB6 - Stampa Commessa Interna (Scheda di lavoro)¶
Sorgente: cbl/cogzb6.cbl | Program-ID: COGZB6 | Tipo: Stampa (programma interattivo con stampa diretta)
Menu: Lab.Odont. > Operativo > Stampe > Scheda di lavoro
Scopo¶
Stampa la scheda di lavoro interna ("commessa interna") relativa a una commessa di laboratorio odontotecnico. Il documento riporta dati di prescrizione, paziente, righe del piano di fabbricazione, materiali, prestazioni, controlli, consegne previste, RNC (non conformita') eventuali. Si appoggia a stampa via COGS54 (laser) con font gestiti da COGFNT.
Puo' essere richiamato come sottoprogramma (linkage utilzb6): in tal caso prende prescrizione da zb6-presc ed entra direttamente in stampa senza fase di accept interattivo.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles) |
| LODTMDES | ISAM (temp) | I-O | Transito descrizioni per stampa testi multipli (lodtmdes) |
| LODTRDES | ISAM (temp) | I-O | Transito righe descrizioni (lodtrdes) |
| FLSTA | binary seq. | Output | File di stampa generato per la stampa laser |
| LODPRESC | ISAM | Input | Prescrizione (medico/paziente/numero) |
| LODCMTES | ISAM | Input | Testata commessa (chiave 2 = prescrizione) |
| LODCMAGG | ISAM | Input | Dati aggiuntivi commessa (tecnico, ora ingresso, prescrittore, operatore inserimento/preparazione) |
| LODCMRIG | ISAM | Input | Righe commessa (azioni, reparto, data/ora, stato) |
| LODCMMMD | ISAM | Input | Materiali commessa |
| LODPNTES | ISAM | Input | Testata piano di fabbricazione |
| LODPNRIG | ISAM | Input | Righe piano di fabbricazione (azioni e flag check) |
| LODPNMAT | ISAM | Input | Materiali piano |
| LODRAPNC | ISAM | Input | Non conformita' (RNC) commessa |
| LODCMCTR | ISAM | Input | Controlli commessa |
| LODRACCO | ISAM | Input | Raccordi / collegamenti azioni |
| LODCONTR | ISAM | Input | Controlli definiti |
| LODAZION | ISAM | Input | Azioni di fabbricazione |
| LODDESCR | ISAM | Input | Descrizioni / note libere |
| COGTABEL | ISAM | Input | Codifiche tabelle generiche |
| COGMERCI | ISAM | Input | Anagrafica merci/materiali |
| COGGEANA | ISAM | Input | Anagrafica clienti / studi medici |
| COGAPPOG | ISAM | Input | Tabella appoggio |
| COGDBASE / COGDESCR | ISAM | Input | Database descrizioni |
| LODNPDFC | ISAM | Input | Note PDF commessa |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogzb6.select, cogzb6.fd, cogzb6.wrk, cogzb6-01.scr, cogzb6.prc, cogzb6.decla |
Screen Designer: select, FD, working, screen, procedure I/O, declaratives |
flsta.fd, flsta.cpy |
File di stampa |
cogfiles.cpy |
Layout FEURTAB |
wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy |
Working storage standard (stato, open file, errori gravi, scr) |
cogazien.cpy |
Dati azienda |
k-personal.cpy |
Costanti personalizzazioni |
utilcrms06.cpy |
Linkage per CRMS06 (gestione stato CRM) |
utilfnt.cpy |
Linkage gestione font (COGFNT) |
utils54.cpy |
Linkage stampa COGS54 |
utils98.cpy |
Linkage COGS98W (ricerca prescrizione) |
utilzde.cpy |
Linkage COGZDEW (descrizioni estese) |
utilncnf.cpy |
Linkage RNEWCONF |
utilzb6.cpy |
Linkage del programma (per chiamata esterna) |
wcont.cpy, wcont1.cpy |
Linkage standard |
stato, stato1, winmsg, grave, mmmask, opengen |
Infrastruttura standard fine procedure |
Logica di elaborazione¶
Apertura (apri): init programma, apertura file, costruzione percorsi di output #$cogzb6.<oper> e #$cogzde.<oper> in ext-tmp-dir. Se chiamato come COGZB6-CALLED legge la prescrizione dal linkage. Imposta tasti funzione (F1 configura, F4 cancella, F8 aiuto/calendario, pulsante custom Commessa F5). Carica configurazioni RNEWCONF.
Selezione commessa (a-tm-cli): accept dei campi prescrizione (cliente, paziente, n. prescrizione, n. commessa) tramite COGS98W (sottoprogramma di ricerca prescrizione standard).
Validazione (a-fine-commessa -> x-controlla-commessa): verifica esistenza prescrizione e commessa, presenza testata lodcmtes (errore "Non hai ancora eseguito l'apertura commessa!!").
Stampa (a-90 / a-90-ok / b-stampa): richiesta stampante via COGS54, poi b-stampa esegue:
- Lettura del piano di fabbricazione dalla prima riga commessa (rd-lodcmrig).
- Lettura malattie paziente (loddescr tipo P2).
- Loop righe commessa (rdnxt-lodcmrig): per ogni riga recupera dal piano (lodpnrig) il tipo controllo (lpr-fl-check = C controllo, I interno, F finale), accumula consegne in w-consegne (max k-max-n-c = 20), aggiorna w-righe-commessa (max 500 righe).
- Lettura RNC associate via lodrapnc (chiave 6).
- Lettura materiali via lodcmmmd e prestazioni.
- Generazione pagine PDF con x41-init-page/x4-format-page/c-stampa (formattazione portrait o landscape in base alla configurazione).
Chiusura: dopo la stampa chiusura file COGS54, eliminazione file temporanei LODTMDES/LODTRDES, cancel di COGZDEW, COGS98W, CRMS06.
Chiamate a sottoprogrammi¶
| Programma | Utilizzo |
|---|---|
COGS54 |
Selezione stampante e gestione stampa laser |
COGS98W |
Ricerca/dialogo prescrizione |
COGZDEW |
Formattazione descrizioni estese / wrap testo |
COGFNT |
Gestione font in stampa |
CRMS06 |
Lettura stato CRM (per indicazioni nella scheda) |
RNEWCONF |
Lettura configurazioni |
Configurazioni RNEWCONF¶
| Gruppo | Chiave | Descrizione |
|---|---|---|
| ODONTO | FORMATTAZIONE-PORTRAIT | Formato di stampa portrait o landscape |
| LABPREPARA | MODO-STAMPA-PM-SU-SCHEDA-COMMESSA | Modalita' stampa piano di manutenzione/lavorazione sulla scheda |
| ODONTO | PREST-ACCETTAZIONE | Codice prestazione di accettazione (gestione particolare) |
Note implementative¶
- Pulsante custom "Commessa (F5)" definito tramite bitmap
labodonto, indice 5; consente di saltare direttamente al campo numero commessa. - Tabelle interne dimensionate: 500 righe commessa, 20 consegne, 20 note, 20 controlli, 20 materiali, 20 prestazioni; in caso di superamento viene mostrato un messaggio che invita a contattare l'assistenza.
- Il programma supporta entrata da chiamante (
COGZB6-CALLEDinzb6-called) saltando la fase di accept. - L'azienda criptata e' stata rimossa con PBUG-1925 (codice commentato); resta solo
move az-int to tm-int. - Stampa basata su pagine PDF: ogni copia viene gestita con
x41-init-page/x41-close-page(al momento e' previsto un'unica copia, ma il ciclo e' presente come scheletro). - L'uso di
PERFORM ... THRUe' presente nel codice originale (legacy): convenzione progetto richiede di evitarlo nei nuovi sviluppi.