Vai al contenuto

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

  1. 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 in x-controlla-dati.

  2. Creazione transito (a-creazione-transito): viene ricreato da zero il file cogtrans (close + open output + open i-o, con messaggio "Funzione gia' in uso dall'operatore" se il file e' bloccato). Poi si eseguono due scansioni:

  3. a1-crea-tracog — legge COGTESBO per cliente (chia4), filtra per intervallo date e per tipo bolla (I, B, D). Per ogni bolla risale con COGRACBB (CD) alla commessa lotto e legge LODPRESC per paziente/progressivo/data; con COGRACCO recupera l'eventuale riferimento fattura. Scrive un record cogtrans di tipo B.
  4. a2-crea-tralod — legge LODCMRIG per data consegna, filtra per medico (cliente) e stato C; verifica che la riga sia un controllo utente leggendo LODCMTES (piano) e LODPNRIG (lpr-fl-check = "C"). Scrive un record cogtrans di tipo C.

  5. Caricamento griglia: la griglia e' paginata (utilpggr.cpy, fscrol2.cpy); x-spaginamento-start e i paragrafi rn-*/sn-read/sp-read gestiscono lo start e le letture avanti/indietro su cogtrans. rd1-ft-go riempie la tabella di maschera tm-tab dal record letto; x-riempi-grid-record formatta la riga visualizzata (grid-record). Se non ci sono elementi si avvisa "Nessun elemento trovato".

  6. 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 cogtrans e' 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.