Vai al contenuto

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 apre LODTMDES in 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 a a-10-read.
  • a-tm-cod: accept del codice; F8 richiama COGWZ05 (tipo "C"); se codice valorizzato va a a-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 imposta fl-ela = "I" e attiva F3; se trovato imposta fl-ela = "V", esegue a1-carica (carica descrizione + testo esteso) e x1-tf-variazione (attiva F3/F4).
  • a1-carica: mostra descrizione; carica il blocco descrizioni tipo "I1" da LODDESCR in LODTMDES (a2-carica-des); chiama COGZDEW (operazione Da-file-a-zde-note) per comporre il testo esteso in tm-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 variazione c-cancella + b-inserisci (riscrittura), in inserimento b-inserisci; su F4 esegue c-cancella.
  • b-inserisci: scrive la testata (wr-lodistru), chiama COGZDEW (operazione Da-zde-note-A-file) per riversare il testo esteso in LODTMDES, poi b1-inserisci copia il blocco descrizioni "I1" da LODTMDES a LODDESCR.
  • c-cancella / c1-cancella: cancella testata (del-lodistru) e il relativo blocco descrizioni "I1" da LODDESCR.
  • a3-salva-con-nome: chiede un nuovo codice non esistente (x-controlla-tm-cod-nuovo verifica che LODISTRU non 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 elimina LODTMDES, 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 LODDESCR con tipo "I1" (come da legenda loddescr.cpy), non nella testata; la testata LODISTRU contiene solo codice e descrizione.
  • LODTMDES funge sia da lock di funzione per operatore (apertura in output esclusivo) sia da buffer di lavoro per COGZDEW; il nome del file e' univoco per operatore (wo-oper).
  • La chiave secondaria di LODISTRU (.k02) e' referenziata dai passi rd-lodistru-lk/st-loddescr ma nel sorgente e' inclusa a fine procedure solo lodtmdes.k01; l'accesso a LODISTRU per descrizione avviene tramite l'aiuto COGWZ05.
  • "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".