COGZ24 - Gestione istruzioni aziendali¶
Sorgente: cbl/cogz24.cbl | Program-ID: COGZ24 | Tipo: Programma interattivo GUI di gestione tabella con testo esteso
Menu: Lab.Odont. > Archivi > Istruzioni aziendali
Scopo¶
Gestisce le istruzioni aziendali del laboratorio odontotecnico (Legge 93/42): ogni istruzione ha un codice e una descrizione (testata su LODISTRU) e un testo esteso ("istruzione aziendale", fino a 2000 caratteri) memorizzato come blocco di descrizioni impaginate su LODDESCR con tipo descrizione "I1". Il testo esteso e' gestito tramite la subroutine COGZDEW, che converte tra il controllo multi-riga della maschera (zde-note) e i record su file.
L'operatore identifica l'istruzione per codice (con aiuto COGWZ05, tipo "C") oppure per descrizione (aiuto tipo "D"); il programma legge la testata (rd-lodistru-lk) distinguendo inserimento (fl-ela = "I") da variazione (fl-ela = "V", con caricamento del testo esteso via a1-carica). In variazione sono disponibili aggiornamento (F3), cancellazione (F4) e "Salva con nome" (F1), che duplica l'istruzione corrente su un nuovo codice.
Il programma e' richiamabile: se z24-called = "COGZ24-CALLED" riceve un codice (z24-cod) e un flag di abilitazione all'aggiornamento (z24-fl-agg -> w-dc-fl-agg); con codice valorizzato entra direttamente in lettura (a-10-read).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| LODISTRU | ISAM | I-O | Testata istruzione aziendale (liz-cod, liz-des); usa chiave 2 |
| LODDESCR | ISAM | I-O | Testo esteso istruzione (tipo lde-tip = "I1", lde-cod, lde-pro, lde-des) |
| LODTMDES | ISAM (temp) | I-O | Archivio temporaneo descrizioni per operatore, buffer per COGZDEW (ltd-rec) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogz24.select, cogz24.fd, cogz24.wrk, cogz24-01.scr, cogz24.prc, cogz24.decla |
Screen Designer |
feurtab.fd, cogfiles.cpy |
FEURTAB |
lodtmdes.fd, lodtmdes.cpy, lodtmdes.k01 |
File temporaneo descrizioni |
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy |
Working storage standard + dati azienda |
utilwz05.cpy, sendwz05.cpy |
Linkage e macro chiamata COGWZ05 (aiuto/ricerca) |
utilncnf.cpy |
Linkage RNEWCONF (predisposto) |
utilzde.cpy |
Linkage COGZDEW (gestione note estese) |
wcont.cpy, wcont1.cpy |
Linkage di contorno |
utilz24.cpy |
Parametri di chiamata (z24-called, z24-cod, z24-fl-agg) |
grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy |
Copybook di fine procedure |
Logica¶
- apri / main:
z-99-init-program,ctr-abil,rd-azi,open-files; rileva chiamata (z24-called); attiva F3 conferma/aggiorna, F4 cancella, F8 aiuto; carica bitmap custom "labodonto2" e pulsante custom "Salva Con Nome (F1)"; titolo "Istruzioni aziendali";rd-msk-pop;z-costruisci-controlli. - a4: reset maschera; costruisce il nome del temporaneo (
ext-tmp-dir+#$COGz24.+wo-oper), poi apreLODTMDESin output esclusivo come lock di funzione (se stato non "00" segnala "Funzione gia' in uso dall'operatore" e chiude), quindi riapre in i-o; se chiamato con codice va aa-10-read. - a-tm-cod: accept del codice; F8 richiama
COGWZ05(tipo "C"); se codice valorizzato va aa-10-read. - a-tm-des-1: accept della descrizione con aiuto tipo "D" via
COGWZ05(che restituisce il codice corrispondente). - a-10-read:
rd-lodistru-lk; se non trovato impostafl-ela = "I"e attiva F3; se trovato impostafl-ela = "V", eseguea1-carica(carica descrizione + testo esteso) ex1-tf-variazione(attiva F3/F4). - a1-carica: mostra descrizione; carica il blocco descrizioni tipo "I1" da
LODDESCRinLODTMDES(a2-carica-des); chiamaCOGZDEW(operazioneDa-file-a-zde-note) per comporre il testo esteso intm-istruzione-az. - a-tm-des / a-tm-istruzione-az: accept di descrizione e testo esteso; gestione F1 (salva con nome), F3 (aggiorna/inserisci), F4 (cancella, solo in variazione); ogni azione di scrittura verifica l'abilitazione
w-dc-fl-agg. - a-richiesta-conferma:
x-imposta-conferma(descrizione obbligatoria),acc-conf; su F3 esegue in variazionec-cancella+b-inserisci(riscrittura), in inserimentob-inserisci; su F4 eseguec-cancella. - b-inserisci: scrive la testata (
wr-lodistru), chiamaCOGZDEW(operazioneDa-zde-note-A-file) per riversare il testo esteso inLODTMDES, poib1-inseriscicopia il blocco descrizioni "I1" daLODTMDESaLODDESCR. - c-cancella / c1-cancella: cancella testata (
del-lodistru) e il relativo blocco descrizioni "I1" daLODDESCR. - a3-salva-con-nome: chiede un nuovo codice non esistente (
x-controlla-tm-cod-nuovoverifica cheLODISTRUnon lo contenga gia'), poi salva i dati correnti con il nuovo codice (b-inserisci) e lo rende corrente. - fine / z-chiudi:
z-close-files, chiude ed eliminaLODTMDES,cancel "COGZDEW",exit program.
Configurazioni (RNEWCONF)¶
utilncnf.cpy e' incluso ma non risulta alcuna chiamata attiva a RNEWCONF nel sorgente.
CALL¶
| Programma | Scopo |
|---|---|
COGZDEW |
Gestione note estese: conversione tra controllo multi-riga e file descrizioni |
COGWZ05 |
Aiuto/ricerca istruzione per codice ("C") o per descrizione ("D"), invocato via macro send-WZ05 |
Note¶
- Il testo esteso dell'istruzione e' memorizzato su
LODDESCRcon tipo "I1" (come da legendaloddescr.cpy), non nella testata; la testataLODISTRUcontiene solo codice e descrizione. LODTMDESfunge sia da lock di funzione per operatore (apertura in output esclusivo) sia da buffer di lavoro perCOGZDEW; il nome del file e' univoco per operatore (wo-oper).- La chiave secondaria di
LODISTRU(.k02) e' referenziata dai passird-lodistru-lk/st-loddescrma nel sorgente e' inclusa a fine procedure sololodtmdes.k01; l'accesso a LODISTRU per descrizione avviene tramite l'aiutoCOGWZ05. - "Salva con nome" (F1) e' disponibile solo in variazione (
fl-ela = "V") e crea una copia completa (testata + testo) su un nuovo codice. - Il salva-con-nome e F4 richiedono l'abilitazione
w-dc-fl-agg: se "N" viene mostrato "Non sei abilitato ad aggiornare".