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, bitmaplabodonto, 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-codlegge la testata (lta-tipo=5) e, se presente, ripropone descrizione e lunghezza. - a-inizio-dati / a-elabora: dopo la conferma,
fill-file->carica-trscopia le voci della tabella da LODTABEL a COGTRANS;vis-tabellapopola 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 globaleaggiorna). - 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 lunghezzatm-len; controlli di duplicato viard-cogtrans.a-fine-dettaglioconferma e aggiorna COGTRANS (aggiorna-cogtrans) e la griglia. - b-materiali: F7 sulla voce corrente; carica i materiali gia' collegati (
LODRACCOtipo "TM") inutil-u05, chiamaCOGU05, 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-matelimina 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-2low-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.k02non presente in coda: i raccordi "TM" sono letti/scritti con la chiave primaria di LODRACCO. Lak02non e' aggiunta perche' non usata. - La copybook
utilgesdebug/gesdebugnon e' inclusa: gli errori sono segnalati solo con box messaggio.