Vai al contenuto

COGZ00 — Unione di azioni

Campo Valore
Sorgente cbl/cogz00.cbl
Program-ID cogz00
Tipo Maschera GUI interattiva (griglia)
Posizione menu Lab.Odont. > Archivi > Varie > Unione di Azioni

Scopo

Utility del laboratorio odontotecnico che crea una nuova azione (LODAZION) "accorpando" piu' azioni esistenti in una sola. L'operatore indica il codice, la descrizione e l'operatore preferenziale della nuova azione, poi elenca in una griglia le azioni da unire; alla conferma il programma genera l'azione di destinazione e vi copia note (LODDESCR) e raccordi (LODRACCO) di tutte le azioni elencate. E' pensata per consolidare azioni ripetitive in un'unica azione riepilogativa senza reinserirne manualmente descrizioni e collegamenti.

Struttura e flusso

  • apri: inizializzazione standard (z-99-init-program, ctr-abil, open-files, rd-azi), predisposizione tasti funzione (F8 aiuto, S-F4 griglia, C-E elimina, F3 conferma), calcolo del nome del file temporaneo di lavoro LODTMDES (#$cogz00. + operatore), costruzione controlli e griglia.
  • a-tm-azion / a-tm-azion-des / a-tm-ope: accept dell'intestazione (codice nuova azione, descrizione, operatore). Il codice deve NON esistere gia' in LODAZION; l'operatore viene validato su COGTABEL tipo 36 e su PRNTOPER.
  • a-fine-intestazione: chiude la testata (x-controlla-intestazione) e passa alla griglia di dettaglio.
  • a-grid / a-accept-grid: gestione della griglia e-tm-tab dove si inseriscono i codici delle azioni da accorpare (colonna tm-el-azion); ogni codice viene validato su LODAZION (x-controlla-tm-el-azion) e non deve essere gia' presente nell'elenco.
  • Alla pressione di F3 con almeno un elemento presente (controlla-tab), viene eseguito registra: crea l'azione di destinazione e ne popola note e raccordi.
  • registra: scrive il record LODAZION (wr-lodazion), poi per ciascuna azione elencata copia le note tipo A1 (registra-des, tramite tabella temporanea LODTMDES e la routine COGZDEW) e i raccordi tipo AC/AR/AI/AM (registra-rac). Le note testuali vengono concatenate e riscritte a blocchi da 2000 caratteri (LODDESCR, campo lde-des).
  • fine/z-chiudi: chiusura file, cancellazione del file temporaneo LODTMDES.

Tabelle utilizzate

Tabella Accesso Descrizione
LODAZION (laz) lettura/scrittura Anagrafica azioni: verifica esistenza del nuovo codice, scrittura azione di destinazione
LODDESCR (lde) lettura/scrittura Note/descrizioni testuali (tipo A1) legate all'azione
LODRACCO (lrc) lettura/scrittura Raccordi azione↔piani di controllo/rischi/istruzioni/macchine (tipi AC,AR,AI,AM)
LODTMDES (ltd) I-O temporaneo File di lavoro per il trasferimento delle note tramite COGZDEW
COGTABEL (euta) lettura Tabella operatori (tipo 36, mag O) per la descrizione operatore
PRNTOPER (ptop) lettura Verifica validita' operatore (flag cancellazione logica ptop-fl-val)

Programmi chiamati

Programma Interfaccia Scopo
WINZ03 util-wz03 Finestra di aiuto/ricerca azioni (per codice e descrizione)
WIN073 util-w73 Finestra di aiuto operatori (w73-in-tab = "O")
COGZDEW util-zde Gestione note testuali: trasferimento tra file di lavoro e struttura note in memoria
GRIDADMN util-gdad Gestore standard della griglia (prepara, add/modify record, svuota)

Copybook principali

Copybook Ruolo
cogz00.select / cogz00.fd / cogz00.prc / cogz00-01.scr Definizioni generate da Screen Designer (file, screen, procedure)
cogz00.wrk Costanti e ID controlli della maschera
lodtmdes.fd / lodtmdes.cpy / lodtmdes.k01 File temporaneo delle descrizioni
wgrid.cpy / utilgdad.cpy / utilgrid.cpy Gestione griglia GUI
utilwz03.cpy / utilw73.cpy / utilzde.cpy Interfacce verso WINZ03, WIN073, COGZDEW
cogazien.cpy / wstato.cpy / wopenf.cpy / wgrave.cpy / wnscr.cpy Working-storage standard

Note

  • La griglia contiene un solo campo editabile (tm-el-azion, codice azione); la descrizione (tm-el-azion-des) e' derivata dall'anagrafica e mostrata a fianco.
  • Il numero massimo di azioni accorpabili in un'unica operazione e' 80 (k-max-ele-tab).
  • Il file LODTMDES e' aperto/chiuso in output e poi i-o per verificare che la funzione non sia gia' in uso da parte dello stesso operatore (lock implicito sul nome temporaneo per operatore).