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 bitmaplabodontoe 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); mappatm-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 aa-conferma-dati. - a-conferma-dati -> a-inizio-dati:
x-imposta-conferma, poicarica-datilegge tutte le righe della tabella da LODTABEL intm-tab,z-costruisci-gridpopola 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-descnella riga corrente e aggiorna la cella (GRIDADMN "Modify-Record"); - F3: conferma l'intera tabella (
aggiorna) e torna aa4; - 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 aa-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 aa-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 intm-tab(wr-lodtabelcon 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 ... THRUeGO TOin 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-cancellaec1-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 tramiteaggiorna.