Vai al contenuto

COGZ11 - Materiali/informazioni su allegati

Sorgente: cbl/cogz11.cbl | Program-ID: COGZ11 | Tipo: Programma interattivo maschera + griglia di dettaglio

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


Scopo

Gestisce le "informazioni" (materiali/prestazioni) associate agli allegati delle commesse di laboratorio: per ogni codice informazione (tm-info) l'operatore definisce una descrizione, un metodo di gestione e un elenco di valori (righe di dettaglio) ciascuno con descrizione e priorita'. Questi valori alimentano i testi che compaiono negli allegati stampati (es. elenco materiali utilizzati).

L'entita' gestita e' la tabella LODINFAL (informazioni merci-prestazioni): il record di testata ha nfa-prog = 0 e contiene nfa-metodo/nfa-des, mentre i valori di dettaglio hanno nfa-prog progressivo e portano nfa-des/nfa-priorita. Il campo nfa-metodo puo' valere T (Totale), P (Prioritario), D (Dettagliato).

Il programma puo' funzionare stand-alone (da menu) oppure come chiamato da un altro programma (util-cogz11): in modalita' chiamata riceve un codice informazione in input (cogz11-i-info), salta direttamente alla griglia e restituisce al chiamante il progressivo della riga selezionata (cogz11-o-prog).

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODINFAL ISAM I-O Informazioni allegati (nfa-info, nfa-prog, nfa-merce, nfa-metodo, nfa-priorita, nfa-des); usa chiave secondaria .k04

Copybook utilizzate

Copybook Descrizione
cogz11.select, cogz11.fd, cogz11.wrk, cogz11-01.scr, cogz11.prc, cogz11.decla Screen Designer
wgrave, wgrid, wnscr, wopenf, wstato, cogazien Working storage standard + dati azienda + gestione griglia
utilgdad.cpy Linkage GRIDADMN (gestione griglia)
utilw52.cpy Linkage controlli COGS52
utilwz14.cpy, sendwz14.cpy Linkage/invio COGZ14 (aiuto informazioni, send-wz14)
utilz12.cpy Linkage COGZ12 (dettaglio prestazioni) — in linkage section
utilcogz11.cpy Interfaccia chiamata (util-cogz11, in linkage section)
stato, stato1, winmsg, grave, opengen, mmmask, utilgrid Copybook fine procedure standard + griglia
lodinfal.k04 Chiave secondaria LODINFAL (a fine procedure)

Logica

Programma goto-driven con maschera di testata (info, descrizione, metodo) e griglia di dettaglio (valore + priorita') gestita via GRIDADMN.

  • apri / main: ctr-abil, z-99-init-program, open-files, rd-azi; rilevamento modalita' chiamata (cogz11-called = k-program-id -> w-dc-called = "S"); abilitazione tasti (invio, invio-modifica, F3, F4, F8, SF4-griglia, CTRL-A aggiungi, CTRL-E elimina); caricamento bitmap labodonto e pulsante custom "Prestazioni (F7)"; z-prepara-tm-grid, z-costruisci-controlli.
  • a4: reset maschera, flag-ins-var="I", tm-metodo="T", z-costruisci-grid; se chiamato con w-dc-info valorizzato, precompila tm-info, esegue x-controlla-tm-info e salta a a-inizio-dati.
  • a-tm-info: accept codice informazione; F8 apre l'aiuto COGZ14 (send-wz14); x-controlla-tm-info legge LODINFAL (rd-lodinfal): se esiste porta metodo/descrizione in maschera, imposta flag-ins-var="V", ricostruisce la griglia (rifai-griglia) e carica i valori esistenti (b1-carica).
  • a-tm-des / a-tm-metodo: accept descrizione e metodo (combo via COGS60).
  • a-conferma-dati / a-inizio-dati: valida i campi testata; se metodo D chiede conferma ed esegue aggiorna/z-chiudi; altrimenti abilita i tasti funzione della griglia.
  • a-grid / a-accept-grid: gestione griglia. Su ESC esce (in modalita' chiamata torna al chiamante); SF4 apre GRIDADMN (configurazione griglia); CTRL-A aggiunge riga (a-riga-dettaglio in inserimento); invio in modalita' chiamata restituisce tm-num-riga (i) in cogz11-o-prog ed esce; invio in modalita' normale entra in modifica riga; F3 conferma (aggiorna + z-chiudi); F4 cancella l'intera informazione (cancella); CTRL-E elimina la riga corrente; F7 chiama COGZ12 (prestazioni) sulla riga.
  • a-riga-dettaglio / a-tm-val-des / a-tm-priorita / a-riga-dettaglio-fine: scheda di dettaglio per inserire/modificare valore e priorita' della riga; a fine riga aggiorna la griglia via GRIDADMN (Add-Record/Modify-Record). Il progressivo nuova riga (tm-num-riga) e' assegnato incrementando w-max-riga.
  • aggiorna: riscrive la testata LODINFAL (nfa-prog=0), poi tutte le righe valorizzate (nfa-prog=tm-num-riga, nfa-des, nfa-priorita); infine cancella (e1-canc-merci) i progressivi eliminati raccolti in w-tab-num-riga.
  • b1-carica: carica in tabella i valori esistenti leggendo LODINFAL con chiave secondaria .k04 (st-lodinfal-notmin-chia4), filtrando nfa-merce = " 00000".
  • cancella: elimina tutti i record LODINFAL del codice informazione (loop st/rdnxt/del).
  • fine / z-chiudi: z-close-files, exit program.

CALL

Programma Scopo
GRIDADMN Gestione/configurazione griglia di dettaglio (util-gdad)
COGZ12 Dettaglio prestazioni collegate alla riga (F7)
COGZ14 Aiuto/selezione codice informazione (via send-wz14)

Note

  • Il programma e' riutilizzabile come subroutine di selezione: quando chiamato (util-cogz11 con cogz11-called/cogz11-caller valorizzati) presenta la griglia in sola selezione e restituisce il progressivo della riga scelta in cogz11-o-prog. Il commento 050925 marca l'aggiunta di questa modalita' e della colonna grd-num-riga in griglia.
  • Le righe di dettaglio sono record LODINFAL con nfa-prog > 0; la testata e' il record con nfa-prog = 0. La lettura dei valori usa la chiave secondaria .k04 filtrando nfa-merce = " 00000" (righe non legate a una merce specifica).
  • La cancellazione di una riga in griglia non elimina subito il record: accumula il progressivo in w-tab-num-riga e la cancellazione effettiva su LODINFAL avviene in fase di aggiorna (paragrafo e1-canc-merci).
  • Il codice usa PERFORM ... THRU e PERFORM VARYING (es. carica-dati thru ex-carica-dati, varying w-i): e' codice legacy pre-convenzioni.