COGZF7 — Estrazione Statistiche (export CSV commesse/materiali)¶
Sorgente: cbl/cogzf7.cbl | Program-ID: cogzf7 | Tipo: Programma di estrazione/export su file di testo (CSV separato da ;)
Menu: Lab.Odont. > Statistiche > Estrazione Statistiche
Scopo¶
Estrae in due file di testo delimitati da punto e virgola le statistiche di esecuzione delle commesse di laboratorio per un periodo indicato:
- lodstat.txt — una riga per ogni dettaglio di esecuzione (record LODCMDET): commessa, operatore, cliente/studio, date e ore inizio/fine, tempo, reparto, azione, dispositivo, paziente, tempo standard.
- lodmate.txt — una riga per ogni materiale selezionato del piano (LODPNMAT
fl-sel = "S") collegato al dettaglio, con merce, quantita', lotto e fornitore.
I file vengono creati nella directory temporanea (ext-tmp-dir) e, se e' configurato un percorso di appoggio locale (Path-Apri-File), copiati anche in quella destinazione tramite la subroutine COPIAF. Sono file di interscambio pensati per l'import in strumenti esterni (es. fogli di calcolo / gestionale odontosoft).
File e tabelle¶
| File | Copybook | Accesso | Scopo |
|---|---|---|---|
| feurtab | cogfiles.cpy / cogzf7.fd |
Lettura | Tabella archivi |
| LODPRESC | (via .select/.fd) |
Lettura sequenziale per data (chia3) |
Prescrizioni — scansione principale per periodo |
| LODCMDET | Lettura sequenziale (k02) |
Dettaglio esecuzione righe commessa (record sorgente statistiche) | |
| LODCMTES | Lettura (k04) |
Testata commessa (piano, reparto) | |
| LODCMRIG | Lettura | Righe commessa (azione, reparto) | |
| LODPNMAT | Lettura sequenziale | Materiali del piano di fabbricazione (per lodmate.txt) |
|
| LODAZION | Lettura (lk) |
Anagrafica azioni (descrizione, tempo standard) | |
| LODTABEL | Lettura | Tabelle laboratorio (tipo dispositivo 8) | |
| COGGEANA | Lettura | Anagrafica (cliente/studio, fornitore materiale) | |
| COGTABEL | Lettura | Reparto (tipo 85) | |
| COGMERCI | Lettura | Anagrafica merci (descrizione materiale) | |
| filests | (FD interno sts-rec) |
Output binary sequential | File testo statistiche lodstat.txt |
| filemat | (FD interno mat-rec) |
Output binary sequential | File testo materiali lodmate.txt |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazione percorso locale |
| DTPRG | Conversione data → progressivo (calcolo giorni fine mese) |
| WINZ03 | Help/selezione azione (F8 su campo azione) |
| COPIAF | Copia dei file estratti nel percorso locale configurato |
| COGS52 | Gestione campo data (accept) |
Copybook incluse¶
cogzf7.wrk, wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy, utilncnf.cpy, utils52.cpy, UTILWZ03.CPY, l-copiaf.cpy; linkage wcont.cpy, u-copiaf.cpy, wcont1.cpy; screen cogzf7-01.scr; procedure grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogzf7.prc, chiavi lodpresc.k03/.k04, lodcmdet.k02, lodcmtes.k04.
Parametri di configurazione (RNEWCONF)¶
| File/Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|
ARC-OTT.CNF |
PATH-APRI-FILE |
tm-cfg-path-locale |
Percorso locale di appoggio dove copiare i file estratti (se vuoto, avviso e nessuna copia) |
Logica di elaborazione¶
- Apertura (
apri): apre i file, carica la configurazione del percorso locale (avvisa se non definito). - Filtri (
a4→ accept): imposta di default il periodo (dal 1° del mese corrente a fine mese, con calcolo giorni via DTPRG). L'operatore indica data inizio, data fine e — opzionale — un'azione (tm-cod, validata su LODAZION). F3 conferma. - Estrazione (
e-elabora): crea i due file di output; scandisce LODPRESC per data (e-05-loop). Per ogni prescrizione nel periodo scandisce LODCMDET (e-10-loop) filtrando i dettagli conlcd-data-ininel range. Per ogni dettaglio compone il recordsts-reccon i dati della commessa (LODCMTES), studio/cliente (COGGEANA), dispositivo (LODTABEL tipo 8), reparto e azione (LODCMRIG + COGTABEL/LODAZION); se e' impostato il filtro azione lo applica. Inserisce i separatori;, CR/LF e scrive sufilests. - Materiali (
find-pnmat): per ogni dettaglio scritto, scandisce LODPNMAT (piano/riga) e scrive sufilemati materiali selezionati (fl-sel = "S"), con merce (COGMERCI) e fornitore (COGGEANA tipo fornitore). - Salvataggio (
salva-file): se il percorso locale e' configurato, copia i due file nella destinazione via COPIAF; mostra i nomi dei file creati. - Chiusura (
fine/z-chiudi): chiude i file e la finestra.
Paragrafi chiave¶
| Paragrafo | Scopo |
|---|---|
apri / a4 |
Inizializzazione, config, default periodo |
a-tm-data-ini / a-tm-data-fin / a-tm-cod |
Accept dei filtri |
a-fine-parametri |
Validazione complessiva e avvio e-elabora |
e-elabora |
Creazione file, scansione LODPRESC/LODCMDET, scrittura statistiche |
find-pnmat |
Scansione LODPNMAT e scrittura materiali selezionati |
salva-file |
Copia dei file nel percorso locale (COPIAF) |
x-controlla-parametri / x-controlla-tm-* |
Validazione campi |
x99-confi |
Lettura configurazione percorso locale |
Note¶
- I due file usano organizzazione
binary sequentialcon campi separati esplicitamente da;(campists-fil-*/mat-fil-*) e terminatori CR/LF (k-cr/k-lf): formato CSV. - Il contatore a video (
clock-msg/view-clk) mostra letti/scritti statistiche e materiali durante l'elaborazione. - Il sorgente usa
GO TOePERFORM ... THRU: codice legacy pre-convenzioni.