Vai al contenuto

COGZ73 - Tabelle per Composizione Lettera Ortodontica

Sorgente: cbl/cogz73.cbl | Program-ID: COGZ73 | Tipo: Programma interattivo (manutenzione tabelle a griglia)

Menu: Lab.Odont. > Ortodonzia > Tabelle > Tabelle x Lettera


Scopo

Gestisce le tabelle di frasi/descrizioni usate per comporre automaticamente la lettera ortodontica. Le tabelle sono memorizzate su LODTABEL con tipo tabella 12 e primo byte del codice = "1" (identificativo "lettera", w-prf-lettera). Per ciascuna tabella (identificata da un codice a un carattere) l'operatore gestisce:

  • una descrizione tabella e una descrizione stampa (testata);
  • un elenco di righe, ciascuna individuata da fascia e livello, con la descrizione (frase) corrispondente.

Le righe sono presentate in una griglia editabile (GRIDADMN): l'operatore puo' aggiungere, modificare, eliminare le voci e, tramite i pulsanti "Copia descrizione" (F1) / "Incolla descrizione" (F7), riportare rapidamente il testo di una riga su un'altra. Alla conferma l'intera tabella viene riscritta su LODTABEL (cancellazione dei record esistenti e reinserimento).

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODTABEL ISAM I-O Archivio tabelle di sistema; per la lettera ortodontica: lta-tipo = 12, codice a 5 componenti (lta-11222-1 = "1" lettera, lta-11222-2 = codice tabella, lta-11222-3 = fascia, lta-11222-4 = livello, lta-11222-5 = 0), descrizione in lta-12-des (lodtabel.cpy, tipo 12)

Struttura dei record LODTABEL usati: - testata: lta-11222-3/4/5 = 0 con lta-12-des = descrizione tabella; - testata stampa: lta-11222-4 = 1 (con lta-11222-3 = 0) con lta-12-des = descrizione stampa; - righe: lta-11222-3 = fascia, lta-11222-4 = livello, lta-12-des = frase.

Copybook utilizzate

Copybook Descrizione
cogz73.select, cogz73.fd, cogz73.wrk, cogz73-01.scr, cogz73.prc, cogz73.decla Screen Designer
feurtab.fd, cogfiles.cpy FEURTAB
wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy Working storage standard + griglia + dati azienda
utilgdad.cpy, utilgrid.cpy Linkage e utility per la griglia GRIDADMN
utils99.cpy Linkage COGS99
utilw52.cpy Gestione W52 (accesso LODTABEL: rd-lodtabel, wr-lodtabel, del-lodtabel, st-lodtabel-may, rdnxt-lodtabel, ecc.)
wcont.cpy, wcont1.cpy Linkage di programma
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy Copybook di fine procedure

Logica

Struttura goto-driven con griglia editabile. Flusso principale:

  • apri: init, ctr-abil, open-files, rd-azi; abilita invio/invio-modifica, F3-conferma/F3-aggiorna, F8, Shift-F4 (personalizzazione griglia), Ctrl-A (aggiungi), Ctrl-E (elimina); carica la bitmap labodonto e crea i pulsanti custom "Copia descrizione (F1)" e "Incolla descrizione (F7)"; z-prepara-tm-grid, z-costruisci-controlli.
  • a4: reset maschera e tabella (tm-tab, tm-pnt = 0); z-carica-controlli, z-costruisci-grid (griglia vuota); disattiva i tasti funzione sulla griglia.
  • a-tm-cod: accept del codice tabella (tm-cod, 1 carattere). Legge da LODTABEL la testata (lta-11222-1 = "1", lta-11222-2 = tm-cod) e valorizza tm-des; legge la testata stampa (lta-11222-4 = 1) e valorizza tm-des-sta. F3 va a a-conferma-dati.
  • a-tm-des / a-tm-des-sta: accept della descrizione tabella e della descrizione stampa.
  • a-conferma-dati -> a-inizio-dati: x-imposta-conferma, poi carica-dati legge tutte le righe della tabella da LODTABEL in tm-tab, z-costruisci-grid popola la griglia; attiva i tasti funzione sulla griglia.
  • a-grid / a-accept-grid: ciclo di gestione della griglia:
  • Ctrl-A: nuova riga (a-operazione = "I") -> a-riga-dettaglio;
  • Invio: modifica riga corrente (a-operazione = "M") -> a-riga-dettaglio;
  • Ctrl-E: elimina la riga (previa conferma), compattando l'array;
  • F1: copia la descrizione della riga corrente in w-desc;
  • F7: incolla w-desc nella riga corrente e aggiorna la cella (GRIDADMN "Modify-Record");
  • F3: conferma l'intera tabella (aggiorna) e torna a a4;
  • Shift-F4: personalizzazione griglia (GRIDADMN).
  • a-riga-dettaglio: pannello di dettaglio riga (fascia, livello, descrizione).
  • a-tm-r-fascia / a-tm-r-livello / a-tm-r-des: accept dei campi della riga; ESC annulla le modifiche (a-tm-to-tf), F3 va a a-riga-dettaglio-fine.
  • a-riga-dettaglio-fine: valida (x-imposta-conferma-dettaglio); su conferma aggiorna la griglia con GRIDADMN ("Add-Record" in inserimento, "Modify-Record" in modifica) e torna a a-grid.
  • aggiorna: riscrive la tabella su LODTABEL: cancella tutti i record esistenti della tabella (loop st-lodtabel-may / rdnxt-lodtabel-lk -> del-lodtabel), poi reinserisce le righe presenti in tm-tab (wr-lodtabel, segnalando eventuali duplicati fascia/livello). Aggiorna infine la testata (lta-12-des = tm-des) e la testata stampa (lta-11222-4 = 1, lta-12-des = tm-des-sta); se la tabella e' vuota (fl-agg = "N") cancella le testate.
  • fine / z-chiudi: z-close-files, chiusura finestra, z-99-exit-program, exit program.

CALL

Programma Scopo
GRIDADMN Gestione della griglia editabile (Prepara, Svuota-Tutto, Add-Record, Modify-Record) e personalizzazione colonne

Note

  • Il codice usa PERFORM ... THRU e GO TO in modo estensivo, e una griglia gestita via GRIDADMN (stile legacy pre-convenzioni attuali).
  • Discriminante lettera/cartella: COGZ73 gestisce le tabelle lettera (lta-11222-1 = "1", w-prf-lettera); le tabelle cartella sono gestite dal gemello COGZ75 (lta-11222-1 = "2").
  • La griglia mostra il codice riga come "fascia/livello" (grd-cod = tm-r-fascia/tm-r-livello) e la relativa descrizione.
  • La descrizione "stampa" e' un record LODTABEL separato dalla testata: ha la stessa chiave della testata ma con lta-11222-4 = 1, ed e' la descrizione effettivamente riportata nella lettera.
  • Il numero massimo di righe gestibili per tabella e' 300 (k-max-ele-tab).
  • I paragrafi c-cancella e c1-ctrl-canc (controllo cancellazione) sono presenti ma senza logica specifica: l'eliminazione della riga opera solo in memoria (compattazione array) e viene resa persistente solo alla conferma della tabella tramite aggiorna.