COGZ57 — Visualizzazione Generale Uscite (Buoni Consegna)¶
Sorgente: cbl/cogz57.cbl | Program-ID: cogz57 | Tipo: Programma interattivo a griglia (maschera unica con filtri + griglia paginata)
Menu: Lab.Odont. > Buoni Consegna > Visual. Generale Uscite
Scopo¶
Presenta all'operatore, per un singolo cliente/medico e un intervallo di date, l'elenco delle uscite: le bolle (DDT) di uscita e i controlli utente (commesse di laboratorio) collegati. I dati vengono raccolti in un file di transito indicizzato (cogtrans) e mostrati in una griglia paginata. Dalla griglia l'operatore puo' agganciarsi al documento (F3/COGU78), aprire la commessa (F5/COGZ50) o visualizzare il dettaglio bolla (F8/WIN016).
Il programma e' di sola consultazione: non aggiorna i dati anagrafici o i movimenti; scrive solo il file di transito temporaneo.
File e tabelle¶
| File | Copybook | Accesso | Scopo |
|---|---|---|---|
| feurtab | cogfiles.cpy |
— | Tabella file/anagrafiche di sistema |
| COGTESBO | cogz57.select/cogz57.fd |
Lettura sequenziale per chia4 (tipocf + nonno) |
Testate DDT — bolle di uscita del cliente |
| COGRACBB | — | Lettura per chia2 |
Raccordi bolla-commessa lotto (CD): risale dalla bolla alla commessa/prescrizione |
| COGRACCO | — | Lettura per chia2 |
Raccordi bolla — recupera il riferimento fattura (se gia' fatturata) |
| LODPRESC | — | Lettura per chia4 (numero commessa) |
Prescrizioni: paziente, progressivo, data |
| LODCMRIG | — | Lettura sequenziale per chia4 (data consegna) |
Righe commessa laboratorio — controlli utente |
| LODCMTES | — | Lettura diretta | Testate commessa laboratorio — codice piano |
| LODPNRIG | — | Lettura diretta | Righe piano — flag check controllo utente |
| cogtrans | (definito nel sorgente) | Scrittura/lettura I-O | File indicizzato temporaneo di transito con i record da visualizzare in griglia |
Il tracciato di cogtrans e' dichiarato manualmente nel sorgente (FD con trs-rec): chiave trs-chia1 = data + chiave; contiene tipo record (B = bolla, C = controllo utente), riferimenti bolla/fattura, commessa, paziente, data entrata.
Programmi chiamati (CALL)¶
| Programma | Condizione | Scopo |
|---|---|---|
| COGU78 | F3 su riga bolla (a1-ges-doc) |
Gestione/aggancio documento (u78-doc-tip = "COGTESBO") |
| COGZ50 | F5 su riga con commessa | Apertura commessa laboratorio (passa studio, paziente, progressivo) |
| WIN016.COB | F8 su riga bolla (send-w16) |
Finestra dettaglio bolla |
| COGS65W | z-s65-tm-cli |
Gestione campo codice cliente/medico con help |
| GRIDADMN | preparazione e S-F4 | Gestione/personalizzazione colonne della griglia |
Copybook incluse¶
Working Storage: feurtab.fd, cogz57.select, cogz57.fd, cogz57.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilu78.cpy, utilgdad.cpy, utils52.cpy, utils65.cpy, utils68.cpy
Linkage: wcont.cpy, utilz50.cpy, wcont1.cpy
Screen: cogz57-01.scr
Procedure: grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogz57.prc, dtab.cpy, fscrol2.cpy, utilpggr.cpy
Chiavi file: cogtrans.k01, cogracbb.k02, cogtesbo.k03, cogracco.k02, lodpresc.k04, lodcmrig.k04
Logica di elaborazione¶
-
Filtri (accept): l'operatore digita il codice cliente/medico (
tm-cli, con help COGS65W), la data di partenza (tm-da-data) e la data di arrivo (tm-a-data). Le date sono precompilate al primo gennaio / 31 dicembre dell'anno corrente. F3 conferma e avvia la ricerca; i controlli su cliente e date sono inx-controlla-dati. -
Creazione transito (
a-creazione-transito): viene ricreato da zero il filecogtrans(close + open output + open i-o, con messaggio "Funzione gia' in uso dall'operatore" se il file e' bloccato). Poi si eseguono due scansioni: a1-crea-tracog— leggeCOGTESBOper cliente (chia4), filtra per intervallo date e per tipo bolla (I,B,D). Per ogni bolla risale conCOGRACBB(CD) alla commessa lotto e leggeLODPRESCper paziente/progressivo/data; conCOGRACCOrecupera l'eventuale riferimento fattura. Scrive un recordcogtransdi tipoB.-
a2-crea-tralod— leggeLODCMRIGper data consegna, filtra per medico (cliente) e statoC; verifica che la riga sia un controllo utente leggendoLODCMTES(piano) eLODPNRIG(lpr-fl-check = "C"). Scrive un recordcogtransdi tipoC. -
Caricamento griglia: la griglia e' paginata (
utilpggr.cpy,fscrol2.cpy);x-spaginamento-starte i paragrafirn-*/sn-read/sp-readgestiscono lo start e le letture avanti/indietro sucogtrans.rd1-ft-goriempie la tabella di mascheratm-tabdal record letto;x-riempi-grid-recordformatta la riga visualizzata (grid-record). Se non ci sono elementi si avvisa "Nessun elemento trovato". -
Gestione griglia (
a-grid): ciclo eventi con tasti funzione. ESC esce dal programma; PgUp/PgDn scorrono le pagine.
Paragrafi chiave¶
| Paragrafo | Scopo |
|---|---|
apri |
Inizializzazione: apre file, imposta titolo, tasti funzione, pulsante custom "Commessa (F5)", prepara griglia |
a4 |
Reset maschera, imposta date default (1/1 – 31/12 anno corrente), ricostruisce griglia vuota |
a-tm-cli / a-tm-da-data / a-tm-a-data |
Accept dei campi filtro con validazione |
a-richiesta-conferma / a-fine-dati |
Conferma filtri, ricrea cogtrans, lancia la creazione del transito |
a-creazione-transito |
Orchestratore delle due scansioni (bolle + controlli utente) |
a1-crea-tracog |
Scansione COGTESBO → scrive record B su cogtrans |
a2-crea-tralod |
Scansione LODCMRIG (controlli utente) → scrive record C su cogtrans |
a-grid |
Ciclo principale griglia: eventi, F3/F5/F8, PgUp/PgDn, S-F4/S-F5 |
a1-ges-doc |
F3: aggancio documento via COGU78 |
send-w16 |
F8: finestra dettaglio bolla (WIN016) |
x-riempi-grid-record |
Formattazione riga per la griglia |
fine / z-chiudi |
Chiusura file e uscita |
Note¶
- Il file
cogtranse' un transito temporaneo per processo/operatore: il nome (w-nome-trs) e' costruito come#$COGz57.{operatore}nella directory temporanea. - Il commento iniziale del sorgente ("Visualizzazione Bolle x cliente/fornitore") e il titolo maschera "Visualizzazione bolle uscita" riflettono l'origine del programma come visualizzatore generico di bolle di uscita, poi adattato al modulo laboratorio con l'aggancio a commesse e controlli utente.