Vai al contenuto

COGZ1C - Gestione modelli allegati (modelli Word per tipo allegato)

Sorgente: cbl/cogz1c.cbl | Program-ID: COGZ1C | Tipo: Programma interattivo a griglia editabile con file di transito

Menu: Lab.Odont. > Archivi > Allegati > Gestione modelli allegati


Scopo

Gestisce l'associazione tra i codici allegato delle commesse di laboratorio e i modelli Word usati per produrli, oltre al raccordo con i tipi dispositivo ammessi. E' la funzione che governa la stampa "in modalita' Word" degli allegati (dichiarazioni, specifiche di installazione, ecc.): per ogni codice allegato definisce quale documento .doc/.docx utilizzare e a quali tipi di dispositivo si applica.

Il programma lavora su un file di transito (t-grid-det) caricato in una griglia editabile: ogni riga rappresenta un modello (codice allegato, descrizione, percorso del file Word, fino a 5 tipi dispositivo). Al salvataggio le righe modificate/inserite/cancellate vengono riversate sulle tre tabelle persistenti: - LODMODST — definizione modelli per allegato (tipo allegato + codice allegato -> progressivo modello COGMODST); - COGMODST — anagrafica modelli Word (descrizione, path, motore W); - LODRMSTD — raccordo modello <-> tipo dispositivo (con cancellazione logica rlmd-fl-canc).

Il tipo allegato su cui si opera (tm-tipo-allegato, default I) e' fisso per sessione; puo' essere imposto dal chiamante (util-cogz1c).

Il programma puo' funzionare stand-alone (modalita' Aggiornamento) o come chiamato (modalita' Selezione): in modalita' chiamata riceve tipo allegato e tipo dispositivo in input, filtra la griglia e restituisce il codice allegato selezionato in cogz1c-o-cod-allegato.

File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM Input Parametri generali azienda (cogfiles.cpy)
LODMODST ISAM I-O Definizione modelli per allegato (lmst-tipo-allegato, lmst-cod-allegato, lmst-mdc-prog, lmst-fl-canc)
COGMODST ISAM I-O Anagrafica modelli Word (mdc-prog, mdc-tip, mdc-des, mdc-path, mdc-motore, ...)
LODRMSTD ISAM I-O Raccordo modello - tipo dispositivo (rlmd-tipo-allegato, rlmd-cod-allegato, rlmd-tipo-dispositivo, rlmd-fl-canc)
LODTABEL ISAM Input Tipi dispositivo tipo 8 (lta-tipo=8, lta-cod, lta-08-fl-canc) per validazione
t-grid-det ISAM (temp) I-O File di transito della griglia (t-gor-r-rec), creato/cancellato a runtime

Copybook utilizzate

Copybook Descrizione
cogz1c.select, cogz1c.fd, cogz1c.wrk, cogz1c.tm, cogz1c-01.scr, cogz1c.prc, cogz1c.decla Screen Designer
cogz1c.imppredf-wrk, cogz1c.imppredf, utilimppredf.cpy Gestione filtri predefiniti (import/preferiti)
feurtab.fd, cogfiles.cpy FEURTAB
k-tipi-cogtabel.cpy Costanti tipi COGTABEL
opensave.def, utilopenfile.cpy Selezione file (C$OPENSAVEBOX) e apertura file (OPENFILE)
wgrave, wnscr, wopenf, wstato, cogazien, wgrid Working storage standard + dati azienda + griglia
utilgdad.cpy Linkage GRIDADMN
l-copiaf.cpy, u-copiaf.cpy Linkage COPIAF (copia file modello)
utilz93.cpy Linkage COGZ93 (aiuto tipo dispositivo)
utilu10.cpy, utilu20.cpy Linkage subroutine controlli
utilncnf.cpy Linkage RNEWCONF
utilcogz1c.cpy Interfaccia chiamata (util-cogz1c, in linkage section)
grave, mmmask, opengen, stato, stato1, winmsg Copybook fine procedure standard

Logica

Programma basato sul pattern "griglia di dettaglio con file di transito" (prefissi z-grid-det-*, t-gor-r-* generati da Screens): la griglia editabile viene alimentata da un file temporaneo, le modifiche sono marcate riga per riga e riversate sulle tabelle solo alla conferma.

  • apri / main: z-99-init-program, ctr-abil, lettura configurazione (x99-confi -> modo-gestione-allegati), rd-azi, open-files; rilevamento modalita' chiamata (cogz1c-called -> w-dc-called="S", modalita' S=Selezione, altrimenti A=Aggiornamento); menu pop-up griglia (build-main-popup-grid-det); bitmap custom (ricerca, ottica) e pulsanti "Salva impostazione (CTRL-S)", "Cerca impostazione (CTRL-F)", "Visualizza Modello (F4)"; z-prepara-tm-grid, x-trova-col-num-grid-det.
  • a4: reset maschera, tm-tipo-allegato (default I, o dal chiamante); ordinamento predefinito per codice allegato; caricamento filtro di default (z-imppredf-carica-default); x-imposta-conferma.
  • a-leggi-dati: apre il transito (z-grid-det-apri-transito), lo popola (z-grid-det-crea-transito) e lo riordina.
  • z-grid-det-crea-transito: scorre LODMODST filtrando lmst-tipo-allegato = tm-tipo-allegato e per ogni record esegue carica-dati.
  • carica-dati: salta i record cancellati (lmst-fl-canc="C"); se e' richiesto un tipo dispositivo (w-dc-tipo-dispositivo) filtra su LODRMSTD; legge il modello Word da COGMODST (lmst-mdc-prog); riempie il record di transito (z-grid-det-riempi-t-rec) valorizzando fino a 5 tipi dispositivo da LODRMSTD.
  • a-grid: accept della griglia. ESC esce; F1 modifica configurazione (x99-confi); SF4 apre GRIDADMN; SF5 esporta in Excel; invio in modalita' Selezione restituisce tm-r-cod-alle (i) in cogz1c-o-cod-allegato ed esce; F3 (modalita' Aggiornamento) valida tutte le righe (x-controlla-grid-det-tutto) e su conferma esegue b-aggiorna; CTRL-A aggiunge una riga; CTRL-E marca/smarca la riga per cancellazione (tm-r-fl-agg="C"); il menu pop-up (funzioni k-pmg-primo..k-pmg-ultimo) e' gestito da x-attiva-popup-grid-det.
  • b-aggiorna: scorre il file di transito; per le righe con fl-agg="C" esegue la cancellazione logica su LODMODST/LODRMSTD e la cancellazione fisica del modello COGMODST; per le righe modificate (t-gor-r-riga-mod="S") esegue inserimento (b1-inser-record-det) o aggiornamento (b2-aggiorna-record-det).
  • b1-inser-record-det: crea un nuovo modello su COGMODST (calcolo nuovo mdc-prog, mdc-tip="COGZ82", mdc-motore="W", path mdc-tipo-path="R"), scrive LODMODST e i raccordi LODRMSTD per i tipi dispositivo indicati.
  • b2-aggiorna-record-det: aggiorna descrizione/path del modello COGMODST esistente, riallinea LODMODST e ricostruisce i raccordi LODRMSTD (cancella logicamente i vecchi e riscrive i nuovi tipi dispositivo).
  • z-usa-tf-grid-det-ep: gestione tasti sulla colonna corrente: sulla colonna path, F5 apre C$OPENSAVEBOX per scegliere il file Word e lo copia in EXT-MOD-DIR via COPIAF, F4 apre il modello via OPENFILE; sulle colonne tipo dispositivo, F8 apre l'aiuto COGZ93.
  • x-controlla-tm-r-tipo-dis1..5: validano ogni tipo dispositivo contro LODTABEL tipo 8 e avvisano se il tipo e' cancellato (lta-08-fl-canc="C").
  • z-99-exception-form: gestisce CTRL-F (carica filtro memorizzato) e CTRL-S (salva filtro) tramite il modulo imppredf.
  • fine / z-chiudi: z-close-files, close/delete t-grid-det, distruzione menu, exit program.

Configurazioni (RNEWCONF)

Percorso ODONTO (pacchetto generale C), letto in x99-confi:

Chiave Uso
modo-gestione-allegati Modalita' di gestione allegati (tm-cfg-modo-gestione-allegati)

CALL

Programma Scopo
GRIDADMN Gestione/configurazione griglia di dettaglio (util-gdad)
COGZ93 Aiuto/selezione tipo dispositivo (F8 sulle colonne tipo dispositivo)
COPIAF Copia del file modello Word selezionato in EXT-MOD-DIR
OPENFILE Apertura del file modello Word (F4)
C$OPENSAVEBOX Dialog di selezione file (routine di sistema AcuCOBOL)
W$MENU Menu pop-up di griglia (routine di sistema AcuCOBOL)
RNEWCONF Lettura configurazione ODONTO (modo-gestione-allegati)

Note

  • Il salvataggio non e' immediato: le modifiche sono accumulate sul file di transito con flag riga (t-gor-r-fl-agg, t-gor-r-riga-mod) e riversate sulle tre tabelle (LODMODST, COGMODST, LODRMSTD) solo su F3-conferma. La cancellazione e' logica su LODMODST/LODRMSTD (fl-canc="C") ma fisica sull'anagrafica modello COGMODST.
  • Ogni codice allegato puo' avere al massimo 5 tipi dispositivo associati (t-gor-r-tipo-dis1..5); oltre il quinto il programma avvisa e tronca il caricamento.
  • I nuovi modelli COGMODST vengono creati con mdc-tip="COGZ82", mdc-motore="W" (Word) e mdc-tipo-path="R" (path remoto, riferito a EXT-MOD-DIR); il file selezionato viene fisicamente copiato in quella cartella tramite COPIAF.
  • Le righe con filtro attivo non consentono inserimento/cancellazione (blocco esplicito su grid-det-filtro-attivo="S").
  • Il programma e' riutilizzabile come subroutine di selezione (util-cogz1c): in modalita' Selezione presenta la griglia filtrata per tipo allegato/dispositivo e restituisce il codice allegato scelto in cogz1c-o-cod-allegato.