Vai al contenuto

COGZ05 - Gestione testi allegati (tipo/modello)

Sorgente: cbl/cogz05.cbl | Program-ID: COGZ05 | Tipo: Programma interattivo di gestione anagrafica (maschera a schede)

Menu: Lab.Odont. > Archivi > Allegati > Allegati


Scopo

Gestisce i testi anagrafici degli allegati alle commesse di laboratorio (documenti previsti dalla direttiva 93/42: dichiarazioni di conformita', reperibilita', specifiche di installazione, istruzioni d'uso, ecc.). Per ogni combinazione tipo allegato + modello l'operatore definisce le note, i titoli e il corpo del testo che verranno poi impaginati e stampati dai programmi di stampa allegati (COGZ81, COGZ83, ecc.).

L'entita' gestita e' la coppia chiave tm-dsp (tipo allegato: D=Dich.conformita', R=Dich.reperibilita', S=Spec.installazione, I=Istruzioni d'uso, U, N=Doc.consegna, ecc.) e tm-mod (modello, da A a Z, oppure A..E per il tipo I che gestisce anche i capitoli). Il testo lungo dell'allegato e' conservato in LODDESCR come blocco di descrizioni; le note e i titoli (N1, N2, T1, T2) sono conservati in LODTABEL tipo 10.

Il tipo allegato I (Istruzioni d'uso) e' particolare: prevede una struttura a capitoli (tm-cap) con intestazione capitolo e testo per ogni capitolo, e usa un byte di tipo descrizione derivato dal modello (un byte esteso dedicato per ciascun modello A..E) per distinguere i blocchi di testo del capitolo.

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODDESCR ISAM I-O Testo lungo allegato per tipo (lde-tip, lde-cod, lde-pro, lde-rec)
LODTMDES ISAM I-O (temp) Buffer temporaneo descrizioni per operatore (ltd-tip, ltd-cod, ltd-pro, ltd-rec)
LODTRDES ISAM I-O (temp) Descrizioni impaginate a misura da COGZDEW (ltr-...)
LODTABEL ISAM I-O Note e titoli allegato tipo 10, chiave <dsp><mod>N1/N2/T1/T2 (lta-tipo, lta-cod, lta-10-des)

LODTMDES (nome ext-tmp-dir + #$COGZ05.<operatore>) e' aperto in output esclusivo come lock di funzione per operatore: se l'open fallisce (stato non 00) la funzione e' segnalata gia' in uso e il programma esce. LODTRDES (nome #$COGZDE.<operatore>) e' il file di lavoro usato da COGZDEW per l'impaginazione.

Copybook utilizzate

Copybook Descrizione
cogz05.select, cogz05.fd, cogz05.wrk, cogz05-01.scr, cogz05.prc, cogz05.decla Screen Designer
feurtab.fd, cogfiles.cpy FEURTAB
lodtmdes.fd/.cpy/.k01, lodtrdes.fd/.cpy File temporanei descrizioni
wgrave, wnscr, wopenf, wstato, cogazien Working storage standard + dati azienda
utils65, utilw02, utilzde Linkage subroutine (util-zde per COGZDEW)
grave, mmmask, opengen, stato, stato1, winmsg Copybook fine procedure standard
sendw02.cpy Invio a COGS02 (send-w02)
lodtmdes.k01 Chiave primaria file temporaneo (a fine procedure)

Logica

Programma goto-driven con una scheda "chiave" (tipo + modello) e una scheda "dati" (note, titoli, capitolo, intestazione, testo). Il testo lungo viene editato tramite il controllo multiriga e-tm-testo e convertito da/verso file via COGZDEW.

  • apri / main: z-99-init-program, ctr-abil, rd-azi, open-files; abilitazione tasti F3-conferma/F3-aggiorna/F4-cancella/F8-aiuto; costruzione controlli (z-costruisci-controlli).
  • a4: reset maschera, tm-sono-su-chiave = "S", costruzione nomi temporanei LODTMDES/LODTRDES, lock del temporaneo (close + open output; se occupato esce), riapertura in i-o.
  • a-tm-dsp / a-tm-mod: accept del tipo allegato (combo via COGS60) e del modello, con validazione range (A-E per I, A-Z altrimenti; U non richiede modello).
  • a-fine-chiave: x-controlla-chiave, poi a2-carica-titoli (legge N1/N2/T1/T2 da LODTABEL tipo 10), richiesta conferma; se confermato carica i testi da LODDESCR in maschera via COGZDEW (Da-file-a-zde-note).
  • a-tm-note-1 / a-tm-note-2 / a-tm-titolo-1 / a-tm-titolo-2 / a-tm-cap / a-tm-cap-int / a-tm-testo: accept dei singoli campi della scheda dati; F3 salva (a-50-var), F4 cancella (a-50-cancella).
  • a-50-var (salvataggio): c1-cancella-titoli + b1-ins-dati-tabella (riscrive N1/N2/T1/T2 su LODTABEL), poi per il testo: a4-set-tip-testo, c-cancella (elimina il blocco descrizioni esistente), COGZDEW Da-zde-note-A-file, b-inserisci (copia da LODTMDES a LODDESCR); per il tipo I gestisce anche l'intestazione capitolo.
  • a-50-cancella (cancellazione): conferma, c1-cancella-titoli e c-cancella sul blocco corrente (e sul titolo capitolo per I).
  • a1-set-tip-titolo / a4-set-tip-testo: compongono il byte di tipo descrizione (w-tip); per il tipo I il primo byte deriva dal modello A..E (mappato su un byte esteso dedicato) e il secondo byte e' il capitolo.
  • d-carica-des: legge il blocco descrizioni di un tipo da LODDESCR e lo copia in LODTMDES (loop st/rdnxt con rottura su lde-tip/lde-cod).
  • b-inserisci / c-cancella: rispettivamente riscrivono da LODTMDES a LODDESCR e cancellano il blocco descrizioni di un tipo.
  • fine / z-chiudi: z-close-files, close/delete LODTMDES, cancel "COGZDEW", exit program.

CALL

Programma Scopo
COGZDEW Impaginazione e conversione testo <-> file di lavoro (util-zde)

Note

  • Il testo lungo dell'allegato non e' un campo singolo ma un blocco di record in LODDESCR indicizzati per tipo (w-tip); l'editing avviene su un buffer temporaneo per operatore (LODTMDES) e la conversione tra il controllo di maschera e i record e' delegata a COGZDEW.
  • Il lock di funzione e' realizzato aprendo LODTMDES in output esclusivo: due operatori non possono usare la funzione contemporaneamente con lo stesso codice operatore.
  • Il tipo allegato I (Istruzioni d'uso) e' l'unico con struttura a capitoli e usa un byte esteso (dedicato per modello A..E) come primo byte del tipo descrizione; il ramo a-tm-cap/a-tm-cap-int e' attivo solo quando tm-dsp = "I".
  • Il codice usa ancora estensivamente GO TO e PERFORM ... THRU (d-carica-des thru ex-d, c-cancella thru ex-c, b-inserisci thru ex-b): e' codice legacy pre-convenzioni.