Vai al contenuto

COGZ89 -- Stampa progetto tecnico (dispatcher)

Sorgente: cbl/cogz89.cbl | Tipo: Programma di menu / dispatcher stampa | Program-ID: COGZ89

Menu: Lab.Odont. > Operativo > Stampe [Progetto Tecnico]


Scopo

COGZ89 e' il programma di lancio della stampa del progetto tecnico di una commessa del laboratorio odontotecnico. E' un dispatcher: in base alla personalizzazione dell'azienda (az-personal) e, per una personalizzazione specifica, in base al tipo di modello della prescrizione, sceglie quale worker richiamare per la stampa effettiva. Nel caso standard delega al motore COGZ89NO.

File e tabelle principali

File/Tabella Copybook Uso
FEURTAB cogfiles.cpy Parametri generali / path tabelle azienda (aperto in open-files, letto da rd-azi)
LODPRESC dichiarata in cogz89.select / cogz89.fd (record lpm-rec) Prescrizione di laboratorio: letta (rd-lodpresc) per il ramo personalizzato "LO", per leggere il tipo modello lpm-mod a partire da z89-prescrizione (lpm-chia1)
COGTABEL dichiarata in cogz89.select / cogz89.fd Tabella generale (file di appoggio del programma generato)

Programmi chiamati

Programma Scopo
COGZ89NO Motore standard di stampa del progetto tecnico (fallback e caso generale non personalizzato)
COGZ89LO Variante personalizzazione "LO" (lab-lori / D-Entity): stampa che unisce progetto tecnico e scheda interna, usata quando il modello della prescrizione e' AR, AF o vuoto
COGZ89<az-personal>.cob Variante personalizzata generica per altre aziende personalizzate
C$CALLERR Routine AcuCOBOL: recupera stato/descrizione errore se il worker standard non e' eseguibile

Flusso principale

  1. main / a000 -- inizializza (prog-err, w-nome-hlp), inizializza la finestra (z-99-init-program), esegue ctr-abil, legge l'azienda (rd-azi) e apre i file (open-files).
  2. Se az-personal e' vuoto salta a st-80-standard (worker standard).
  3. Personalizzazione "LO" (k-personal-lab-lori, valore "LO"): legge la prescrizione su LODPRESC (lpm-chia1 = z89-prescrizione, rd-lodpresc); se la lettura e' invalida forza lpm-mod = " ". Se lpm-mod vale AF, AR o vuoto imposta il worker COGZ89LO (progetto tecnico + scheda interna), altrimenti COGZ89NO.
  4. Altre personalizzazioni: compone name-call = 'COGZ89' az-personal '.cob'.
  5. Chiama il worker in name-call passando stringhe; in caso di on overflow (worker assente) salta a st-80-standard.
  6. st-80-standard -- imposta name-call = "COGZ89NO" e chiama il worker standard; se anche questo va in on overflow, recupera l'errore con C$CALLERR e mostra un messaggio diagnostico (box-msg).
  7. st-90-ok / fine / z-chiudi -- cancel name-call, chiude i file (z-close-files) e exit program.

Note

  • Il linkage utilz89.cpy porta i parametri d'ingresso del progetto tecnico, tra cui z89-prescrizione (studio + paziente + progressivo) usata come chiave di lettura di LODPRESC, oltre a z89-chr-stampa, z89-fl-cogz50, z89-esito, z89-archivia, z89-called.
  • La scelta tra COGZ89LO e COGZ89NO per l'azienda "LO" e' pilotata dal tipo modello lpm-mod della prescrizione: solo i modelli AR/AF (o assente) usano la variante integrata con la scheda interna.
  • I file di gestione (.select, .fd, .wrk, .prc, .decla) sono generati da Screens e risiedono in cbl/screens/. Tutta la composizione del documento risiede nei worker chiamati.

Documentazione tecnica -- 2026-08-05