Vai al contenuto

COGZ18 - Tabelle per informazioni di progetto

Sorgente: cbl/cogz18.cbl | Program-ID: COGZ18 | Tipo: Programma interattivo di gestione tabella con griglia (voci di dominio)

Menu: Lab.Odont. > Archivi > Modelli Progetto > Tabelle x Informazioni


Scopo

Gestisce le "tabelle di dominio" usate dalle informazioni di progetto del laboratorio: ogni tabella (codice a 2 caratteri, descrizione, e lunghezza del codice delle voci da 1 a 8) contiene un elenco di voci (codice + descrizione). Le informazioni di tipo "T" (COGZ28) fanno riferimento a queste tabelle per proporre all'operatore un valore da una lista chiusa.

Testata e voci sono tutte memorizzate in LODTABEL con lta-tipo = 5: la testata usa il codice tabella (lta-28-1) con secondo campo a low-values, le voci usano codice tabella + codice voce (lta-28-2). All'ingresso di una tabella il programma copia tutte le voci in un file temporaneo COGTRANS (per operatore), le mostra in una griglia paginata, permette inserimento/modifica/eliminazione riga, e al F3 di conferma riscrive l'intero blocco di voci in LODTABEL.

E' inoltre presente un pulsante custom "Materiali da escludere (F7)" che, tramite COGU05, associa a ciascuna voce un elenco di materiali (merci) da escludere, memorizzati come raccordi tipo "TM" in LODRACCO.

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODTABEL ISAM I-O Testata tabella (lta-tipo = 5, lta-28-1, lta-05-des, lta-05-len) e voci (lta-28-2, lta-descr)
LODRACCO ISAM (k02) I-O Raccordi voce->materiali da escludere (lrc-tip = "TM", lrc-key-1, lrc-key-2); pulizia dei materiali orfani a fine aggiornamento
COGTRANS ISAM (temp) I-O File temporaneo di lavoro con le voci della tabella corrente (trs-cod, trs-des); nome #$COGZ18.<operatore> in ext-tmp-dir

COGTRANS e' dichiarato manualmente nel sorgente (SELECT/FD/COPY cogtrans.k01), aperto in output esclusivo come lock di funzione e cancellato (delete cogtrans) in chiusura.

Copybook utilizzate

Copybook Descrizione
cogz18.select, cogz18.fd, cogz18.wrk, cogz18-01.scr, cogz18.decla, cogz18.prc Screen Designer
feurtab.fd, cogfiles.cpy FEURTAB
cogtrans.k01 Chiave file temporaneo COGTRANS
k-u10, wrk-u10 Costanti e working per COGU10W (aiuto tabelle)
wstato, wopenf, wgrave, wnscr, cogazien Working storage standard + dati azienda
wgrid, utilgdad Gestione griglia (GRIDADMN)
utils52 Linkage COGS52
utilu05 Linkage COGU05 (materiali da escludere)
utilu20, utilu10 Linkage subroutine utility
utilwz10 Linkage COGWZ10 (aiuto/ricerca tabelle, F8)
dtab, fscrol2, getdcont, utilpggr, sendwz10 Framework paginazione/scroll griglia e get divisa
wcont, wcont1 Linkage di chiamata
grave, mmmask, opengen, stato, stato1, winmsg Copybook di fine procedure

Logica

  • apri / main: init, tasti (F3 conferma/aggiorna, SF4 griglia, SF5 esporta Excel, F8 aiuto, invio-modifica, ctrl-A aggiungi, ctrl-E elimina), costruzione nome w-trs-name, bitmap labodonto, pulsante custom "Materiali da escludere (F7)", rd-msk-pop, z-prepara-tm-grid.
  • a4: svuota griglia, apri-cogtrans (open output esclusivo + reopen i-o), z-carica-controlli, attiva F3-conferma.
  • a-tm-cod / a-tm-des / a-tm-len: accept di codice tabella (con aiuto F8 via send-wz10), descrizione e lunghezza codice (1..8). x-controlla-tm-cod legge la testata (lta-tipo=5) e, se presente, ripropone descrizione e lunghezza.
  • a-inizio-dati / a-elabora: dopo la conferma, fill-file -> carica-trs copia le voci della tabella da LODTABEL a COGTRANS; vis-tabella popola e mostra la griglia paginata.
  • vis-tabella-disp: accept della griglia paginata; gestisce PgUp/PgDn (pg-after-pg-up/pg-after-pg-dwn), SF4 (personalizza griglia via GRIDADMN), SF5 (export Excel), F7 (b-materiali), invio (modifica riga), ctrl-A (inserimento), ctrl-E (eliminazione), F3 (conferma globale aggiorna).
  • a-riga-dettaglio / a-tm-r-cod8..a-tm-r-cod1 / a-tm-r-des: dettaglio riga: il codice voce e' spezzato in 8 controlli sovrapposti (tm-r-cod8..tm-r-cod1), abilitati/visibili in base alla lunghezza tm-len; controlli di duplicato via rd-cogtrans. a-fine-dettaglio conferma e aggiorna COGTRANS (aggiorna-cogtrans) e la griglia.
  • b-materiali: F7 sulla voce corrente; carica i materiali gia' collegati (LODRACCO tipo "TM") in util-u05, chiama COGU05, poi cancella i vecchi raccordi e riscrive quelli scelti.
  • aggiorna: al F3 globale cancella tutte le voci correnti in LODTABEL (lta-tipo=5), riscorre COGTRANS e riscrive le voci (tratta-cogtrans), aggiorna la testata (lta-05-des/lta-05-len) o la cancella se non restano voci; a1-controlla-mat elimina i raccordi "TM" rimasti orfani.
  • fine / z-chiudi: z-close-files, close+delete cogtrans, chiusura finestra, z-99-exit-program, exit program.

CALL

Programma Scopo
GRIDADMN Gestione/personalizzazione della griglia paginata (prepara, add/modify record, svuota, export)
COGU05 Selezione dei materiali (merci) da escludere per la voce
COGWZ10 Aiuto/ricerca tabelle (tasto F8, via send-wz10)

Note

  • Testata e voci coabitano in LODTABEL come lta-tipo = 5, distinte dal secondo campo chiave (lta-28-2 low-values per la testata, valorizzato per le voci).
  • Il codice voce e' a lunghezza variabile (1..8): la maschera usa 8 entry sovrapposte, di cui e' abilitata solo quella corrispondente a tm-len. Il tempo di lavoro passa da COGTRANS proprio per gestire in modo transazionale le modifiche prima del commit su LODTABEL.
  • Chiave secondaria lodracco.k02 non presente in coda: i raccordi "TM" sono letti/scritti con la chiave primaria di LODRACCO. La k02 non e' aggiunta perche' non usata.
  • La copybook utilgesdebug/gesdebug non e' inclusa: gli errori sono segnalati solo con box messaggio.