Vai al contenuto

COGZ75 - Tabelle per Composizione Cartella Ortodontica

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

Menu: Lab.Odont. > Ortodonzia > Tabelle > Tabella x Cartella


Scopo

Gestisce le tabelle di frasi/descrizioni usate per comporre automaticamente la cartella ortodontica. Le tabelle sono memorizzate su LODTABEL con tipo tabella 12 e primo byte del codice = "2" (identificativo "cartella", w-prf-cartella). Sono previste due tabelle distinte in base al tipo di apparecchiatura: ortodonzia fissa (tm-tip = "F", codice tabella "1") e ortodonzia mobile/funzionale (tm-tip = "M", codice tabella "2").

Per la tabella scelta l'operatore gestisce un elenco di righe, ciascuna individuata da fascia, livello e sottolivello, 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.

Rispetto al gemello COGZ73 (lettera), COGZ75 introduce il sottolivello (lta-11222-5) come terza componente di dettaglio della riga e non gestisce una descrizione di testata/stampa.

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 cartella ortodontica: lta-tipo = 12, codice a 5 componenti (lta-11222-1 = "2" cartella, lta-11222-2 = codice tabella "1"/"2", lta-11222-3 = fascia, lta-11222-4 = livello, lta-11222-5 = sottolivello), descrizione in lta-12-des (lodtabel.cpy, tipo 12)

Copybook utilizzate

Copybook Descrizione
cogz75.select, cogz75.fd, cogz75.wrk, cogz75-01.scr, cogz75.prc, cogz75.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, tipo di default tm-tip = "F" (fissa); z-carica-controlli, z-costruisci-grid (griglia vuota); disattiva i tasti funzione sulla griglia.
  • a-tm-tip: accept del tipo tabella (combo COGS60, z-s60-tm-tip); mappa tm-tip -> tm-cod ("F" -> "1", "M" -> "2"); legge da LODTABEL la testata della tabella (lta-11222-1 = "2", lta-11222-2 = tm-cod). F3 va a a-conferma-dati.
  • 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 e posiziona il cursore sulla prima riga.
  • 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, sottolivello, descrizione).
  • a-tm-r-fascia / a-tm-r-livello / a-tm-r-sottoliv / 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 con fascia/livello/sottolivello, segnalando eventuali duplicati).
  • 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: COGZ75 gestisce le tabelle cartella (lta-11222-1 = "2", w-prf-cartella); le tabelle lettera sono gestite dal gemello COGZ73 (lta-11222-1 = "1").
  • La struttura della riga cartella e' a tre livelli (fascia/livello/sottolivello, lta-11222-3/4/5), mentre la riga lettera di COGZ73 e' a due livelli (fascia/livello). La griglia mostra il codice come "fascia/livello/sottolivello".
  • Sono previste due sole tabelle cartella: ortodonzia fissa (codice "1", tm-tip = "F") e ortodonzia mobile/funzionale (codice "2", tm-tip = "M").
  • A differenza di COGZ73, COGZ75 non gestisce una descrizione di testata/stampa della tabella.
  • 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.