Vai al contenuto

COGZO0 -- Stampa tabelle ortodonzia per compilazione lettere

Sorgente: cbl/cogzo0.cbl | Tipo: Programma di menu / stampa | Program-ID: COGZO0

Menu: Lab.Odont. > Ortodonzia > Tabelle > Stampe [Tabelle x Lettere]


Scopo

COGZO0 produce il tabulato dei codici a barre usati per compilare le "lettere" dell'ortodonzia. Scandisce le voci di dominio ortodontiche memorizzate in LODTABEL di tipo 12, limitatamente alle tabelle di tipo "lettera" (prefisso 1), e per ogni voce stampa una riga con:

  • il codice a barre a 6 cifre che identifica la voce;
  • il livello (lta-11222-4);
  • la descrizione testuale (lta-12-des).

Le voci sono raggruppate per codice tabella (lta-11222-2), con un'intestazione ad ogni cambio tabella, e separate da linee di divisione ad ogni cambio fascia (lta-11222-3). La stampa avviene su stampante laser Kyocera in emulazione PRESCRIBE (linguaggio di comandi MAP/TEXT/BARC), inviata attraverso il file di spool FLSTA.

La maschera richiede un solo dato, il numero di copie da stampare (tm-cop); la scelta effettiva della stampante e delle sue opzioni e' delegata al selettore stampante COGS54.

Struttura del codice a barre

Il codice e' composto da 6 cifre:

  • pos. 1-2: codifica numerica del codice tabella (w-prima-parte): tabelle numeriche 0..9 mappate su 10..; tabelle a lettera A..Z mappate su 10 + posizione nella tabella tab-lettere;
  • pos. 3-4: codice fascia (lta-11222-3);
  • pos. 5-6: codice livello (lta-11222-4).

File e tabelle principali

File/Tabella Copybook Uso
FEURTAB feurtab.fd, cogfiles.cpy Parametri generali azienda (lettura, rd-azi)
LODTABEL lodtabel.fd (cogzo0.select), lodtabel.cpy (cogzo0.fd) Voci tabelle ortodonzia tipo 12: filtro lta-tipo=12 e lta-11222-1='1' (lettera); campi letti lta-11222-2/3/4 (tabella/fascia/livello) e lta-12-des (descrizione)
FLSTA flsta.fd, flsta.cpy File di spool di stampa: scrittura dei comandi PRESCRIBE (write riga)

LODTABEL e' scandita in sola lettura tramite i gestori generati st-lodtabel-notmin (posizionamento) e rdnxt-lodtabel (lettura sequenziale), con rottura sui campi chiave lta-tipo/lta-11222-1.

Programmi chiamati

Programma Ruolo
COGS54 Selettore stampante / gestione parametri di stampa (chiamato prima con s54-emu = "PRESCRIBE" e dopo la stampa con s54-after-print = "S")

Flusso principale

  1. main / apri -- init programma (z-99-init-program), abilitazioni (ctr-abil), lettura azienda (rd-azi), apertura file (open-files); impostazione tasti funzione, titolo maschera "Stampa tabelle x lettera", rd-msk-pop e costruzione controlli.
  2. a4 / a-tm-cop -- accept del numero copie (e-tm-cop); x-controlla-tm-cop verifica che sia maggiore di zero. F3 porta a a-richiesta-conferma.
  3. a-90 -- chiama COGS54 per la scelta stampante; con F3 conferma esegue b-stampa, poi richiama COGS54 in coda (s54-after-print="S") e ne fa il cancel.
  4. b-stampa -- inizializza i parametri Kyocera, imposta la stampante (b1-set-printer/b1-set-page), esegue b2-stampa per tm-cop volte e chiude la stampante (b3-reset-printer).
  5. b2-stampa -- posiziona su LODTABEL (tipo 12, prefisso 1) e cicla su rdnxt-lodtabel: ad ogni cambio tabella stampa l'intestazione (b21-testa), ad ogni cambio fascia la linea di separazione (b22-separazione); per ogni voce calcola il codice a barre (w-codice), lo stampa (BARC), poi stampa fascia, livello e descrizione. Se supera la posizione verticale limite forza una nuova intestazione/pagina.
  6. b21-testa -- calcola la codifica numerica della tabella (numerica o a lettera via tab-lettere) e stampa l'intestazione di colonna (Bar Code / Livello / Testo).
  7. b23-st-des -- stampa la descrizione gestendo l'eventuale presenza di apici nel testo (usa delimitatori alternati '/").
  8. fine / z-chiudi -- chiusura file, chiusura finestra, z-99-exit-program, exit program.

Note

  • Programma di sola stampa: non aggiorna LODTABEL, la legge soltanto.
  • Le righe di stampa sono comandi PRESCRIBE per Kyocera; il posizionamento assoluto e' inviato da b21-set-map/b21-set-dap, che convertono la virgola decimale in punto prima di comporre MAP/DAP.
  • Se il codice tabella e' una lettera non presente nell'alfabeto A..Z il programma segnala " La tabella X non e' prevista!!" e azzera la prima parte del codice.
  • La gestione tabelle ortodonzia tipo 12 e' condivisa con COGZO2 (stampa per cartelle), che usa lo stesso LODTABEL con prefisso 2.

Documentazione tecnica -- 2026-08-05