Vai al contenuto

COGZ0A - Tabella destinazioni d'uso

Sorgente: cbl/cogz0a.cbl | Program-ID: COGZ0A | Tipo: Programma interattivo GUI di gestione tabella (griglia editabile con transito)

Menu: Lab.Odont. > Archivi > Tabelle > Destinazioni d'uso


Scopo

Gestisce l'anagrafica delle destinazioni d'uso del dispositivo medico (tabella LODTABDU). Ogni destinazione d'uso ha un codice, una descrizione breve (usata per il riconoscimento in fase di selezione) e un testo completo (dus-testo, fino a 500 caratteri) che viene poi importato all'interno della prescrizione. E' previsto un flag di cancellazione logica (dus-fl-canc).

La gestione avviene interamente in una griglia editabile alimentata da un file di transito (t-grid-det, gestito dalla infrastruttura standard .prc di Screens): all'apertura tutti i record non cancellati vengono caricati nel transito (z-grid-det-crea-transito); l'operatore modifica in griglia (aggiunta con Ctrl-A, cancellazione logica con Ctrl-E, modifica celle codice/descrizione/testo/flag), e alla conferma (F3) i record vengono riversati su LODTABDU (b-aggiorna), scrivendo i nuovi e riscrivendo solo quelli effettivamente variati.

Il programma e' richiamabile in modalita' selezione: se cogz0a-called = k-program-id e cogz0a-caller valorizzato, all'apertura entra direttamente in lettura dati (w-dc-called = "S"), abilita F3 selezione/modifica e, all'invio su una riga in modalita' selezione ("S"), restituisce il codice scelto in cogz0a-o-cod.

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODTABDU ISAM I-O Tabella destinazioni d'uso (dus-cod, dus-des, dus-testo, dus-fl-canc)
t-grid-det ISAM (temp) I-O File di transito della griglia, creato e cancellato dal programma (record t-gor-r-rec)

Copybook utilizzate

Copybook Descrizione
cogz0a.select, cogz0a.fd, cogz0a.wrk, cogz0a.tm, cogz0a-01.scr, cogz0a.prc, cogz0a.decla, cogz0a.imppredf-wrk, cogz0a.imppredf Screen Designer (griglia, transito, filtri predefiniti)
feurtab.fd, cogfiles.cpy FEURTAB
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy Working storage standard + dati azienda
wgrid.cpy, utilgdad.cpy Gestione griglia / GRIDADMN
utilncnf.cpy Linkage RNEWCONF (predisposto ma non attivo)
utilimppredf.cpy Linkage import filtri predefiniti
wcont.cpy, wcont1.cpy Linkage di contorno
utilcogz0a.cpy Parametri di chiamata (cogz0a-called, cogz0a-caller, cogz0a-o-cod)
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 (w-dc-called); attiva i tasti funzione (F3 aggiorna oppure selezione/modifica se chiamato, SF4 griglia, SF5 export Excel, Ctrl-A/Ctrl-E); costruisce il menu pop-up griglia (build-main-popup-grid-det); imposta titolo "Tabella destinazioni d'uso"; rd-msk-pop; imposta a-modalita = "S" (chiamato) o "A"; z-costruisci-controlli, z-prepara-tm-grid, x-trova-col-num-grid-det.
  • a4: svuota griglia; imposta ordinamento predefinito su codice ascendente (z-grid-det-componi-ord, z-grid-det-mostra-ord); z-imppredf-carica-default (filtro di default); se chiamato salta a a-leggi-dati.
  • a-leggi-dati: z-grid-det-apri-transito, z-grid-det-crea-transito (popola il transito dalla tabella), z-grid-det-riordina-transito.
  • z-grid-det-crea-transito: scorre LODTABDU (st-lodtabdu-notmin + rdnxt-lodtabdu), scartando i record con dus-fl-canc valorizzato; per ciascuno z-grid-det-riempi-t-rec (z-grid-det-riempi-campi-t-gor copia cod/des/testo/flag nel record di transito).
  • a-grid-ini / a-grid: z-grid-det-carica-tab, accept griglia (z-99-accept-grid-det); gestione ESC (test-wesc), mouse (x-test-mouse), SF4 (GRIDADMN), SF5 (export), pop-up (k-pmg-primo/k-pmg-ultimo).
  • F3: controlla abilitazioni (w-abi-ins, w-abi-agg); se in aggiornamento valida tutte le righe (x-controlla-grid-det-tutto), chiede conferma e, se confermato, esegue b-aggiorna e ricarica; se in modalita' selezione passa in aggiornamento e viceversa (gestione modalita' A/S).
  • INVIO (modalita' "S"): restituisce tm-r-cod (i) in cogz0a-o-cod e va a fine.
  • Ctrl-A: nuova riga (bloccata se filtro attivo) via z-grid-det-nuova-riga.
  • Ctrl-E: toggle del flag di cancellazione logica sulla riga (tm-r-fl-agg/tm-r-fl-canc = "C"), bloccato se filtro attivo o utente non abilitato.
  • b-aggiorna: scorre il transito (st-t-grid-det-notmin + rdnxt-t-grid-det); per ogni riga non vuota legge LODTABDU (rd-lodtabdu), scrive il nuovo record se inesistente (wr-lodtabdu), altrimenti riscrive (rwr-lodtabdu) solo se descrizione, testo o flag sono cambiati.
  • validazioni cella: x-controlla-tm-r-cod (upper-case + controllo duplicati contando le occorrenze nel transito), x-controlla-tm-r-des (descrizione breve obbligatoria), x-controlla-tm-r-testo (testo obbligatorio), x-controlla-tm-r-fl-canc (allinea tm-r-fl-agg).
  • z-grid-det-be-ep: right-click apre il menu pop-up (W$MENU); blocca la modifica delle righe marcate cancellate; z-grid-det-cod-be-ep blocca la modifica del codice sulle righe gia' esistenti (tm-r-cod-p valorizzato).
  • fine / z-chiudi: z-close-files, chiude ed elimina il transito t-grid-det, distrugge il menu pop-up, exit program.

Configurazioni (RNEWCONF)

Il codice di configurazione (x99-confi, pacchetto "C") e' presente ma commentato/non attivo: util-ncnf viene solo inizializzato. Nessuna chiave RNEWCONF letta in produzione.

CALL

Programma Scopo
GRIDADMN Preparazione/gestione griglia (SF4, prepara, add/modify record)
W$MENU Apertura menu pop-up da right-click sulla griglia

Note

  • Codice della destinazione d'uso normalizzato in maiuscolo (function upper-case) e controllo di unicita' effettuato contando le occorrenze nel file di transito (segnala "codice destinazione d'uso gia' presente").
  • Cancellazione logica: Ctrl-E imposta il flag dus-fl-canc; i record cancellati non vengono ricaricati nel transito alla riapertura.
  • Import/export filtri predefiniti (imppredf) predisposto ma la parte interattiva Ctrl-S/Ctrl-F e' commentata; resta attivo solo il caricamento del filtro di default all'avvio.
  • Export Excel della griglia disponibile via SF5 (z-esporta-grid-det).
  • dus-cod in tabella e' pic x(10) mentre in griglia/output il codice restituito e' pic x(08) (cogz0a-o-cod).