Vai al contenuto

COGZ37 -- Stampa etichette sovrappacco

Sorgente: cbl/cogz37.cbl | Tipo: Programma di menu / maschera (delega la stampa a un worker per azienda) | Program-ID: COGZ37

Menu: Lab.Odont. > Operativo > Stampe [Etichette Sovrappacco]


Scopo

COGZ37 presenta la maschera di selezione per la stampa delle etichette "sovrappacco" (etichette identificative da applicare all'imballo/collo di consegna), quindi lancia un worker specifico dell'azienda che produce materialmente la stampa.

Il programma non stampa direttamente: raccoglie i parametri (per chi stampare, criterio, ordinamento, indirizzo, range clienti/fornitori, numero copie, dottore/paziente) e per ogni anagrafica selezionata invoca il worker COGZ37{az-personal} (per esempio COGZ37LO) passando l'interfaccia util-z37. Se il worker specifico non esiste (overflow sulla CALL) ripiega su COGZ37NO. Questa architettura permette layout etichetta personalizzati per laboratorio senza toccare il modulo di menu.

Con PCASE-1227 il programma e' abilitato per tutti i laboratori (il vecchio blocco su az-personal not = 'LO' e' commentato).

Modalita' di lavoro

La maschera prevede due percorsi:

  • Da commessa (chiamata con z37-commessa valorizzato): all'ingresso legge la prescrizione su LODPRESC (chiave .k04 per numero) e precompila dottore e paziente. In conferma, se la commessa e' valida (ok-commessa), lancia direttamente il worker una sola volta passando medico/paziente della commessa.
  • Per anagrafica (tm-ricerca = C clienti / F fornitori): stampa etichette per un intervallo di anagrafiche.
  • tm-criterio = "C" (codice): scansione di COGGEANA dal codice/descrizione iniziale fino al codice/descrizione finale (c-10 / c-20), ordinamento per codice o per nome (tm-ordinato), con una CALL al worker per ogni anagrafica trovata.
  • tm-criterio = "E" (elenco): selezione multipla di anagrafiche via COGU04, poi una CALL al worker per ciascun codice raccolto (c-100).
  • tm-ricerca = "D" (documento): stampa per la singola anagrafica del documento indicato, con relativi indirizzi di destinazione (c-200).

L'indirizzo di destinazione (tm-indirizzo) puo' essere quello di intestazione oppure una destinazione diversa recuperata via W92 (w92xana / w92xtes).

File e tabelle principali

File/Tabella Copybook Uso
COGGEANA cogfiles.cpy (ana-rec) + coggeana.k02 Anagrafica clienti/fornitori: scansione range e validazione codici; chiave secondaria .k02 per ordinamento per nome
COGTESBO cogfiles.cpy (tes-rec) Testata bolla: risoluzione documento (tm-documento -> tes-chia3) per la modalita' "Da documento"
COGMAGAZ cogfiles.cpy (magz-rec) Magazzini: validazione del magazzino documento
LODPRESC cogfiles.cpy (lpm-rec) + lodpresc.k04 Prescrizione laboratorio: precompilazione dottore/paziente quando il programma e' aperto su una commessa

Programmi chiamati

Programma Scopo
COGZ37{az-personal} / COGZ37NO Worker di stampa etichetta sovrappacco specifico per azienda (fallback COGZ37NO); riceve util-z37 (tipo/codice anagrafica, destinazioni, copie, commessa, medico, paziente, operazione O=stampa / C=chiusura)
COGU04 Selezione multipla di anagrafiche (modalita' elenco tm-criterio = "E")
COGS65W (z-s65-*) Gestione campi codice/descrizione cliente-fornitore con aiuto (Y* -- gestore ausiliario)
COGS54 / COGS52 (z-carica-*) Gestione controlli maschera (Y*)
SEND-W36 (sendw36.cpy) Aiuto/selezione magazzino
SEND-W92 (sendw92.cpy, w92xana/w92xtes) Risoluzione destinazioni di consegna dell'anagrafica/documento

Flusso principale

  1. apri / main -- init standalone (mmmask.cpy), abilitazione tasti funzione, apertura file, costruzione controlli maschera.
  2. a4 -- se aperto su commessa (z37-commessa) legge LODPRESC e precompila dottore/paziente; imposta i default (magazzino principale azienda, anno di sistema, tipo documento "B").
  3. Sezione accept (a-tm-ricerca ... a-tm-paziente) -- acquisizione parametri con validazioni per campo (x-controlla-*); navigazione con F2 (indietro), F3 (conferma), F8 (aiuti), mouse (x-test-mouse).
  4. a-richiesta-conferma -- validazione complessiva (x-imposta-conferma). Se aperto su commessa lancia il worker una sola volta e termina.
  5. c-10/c-20 (per codice), c-100 (elenco COGU04), c-200 (da documento) -- costruzione util-z37 e CALL al worker COGZ37{az-personal} (fallback COGZ37NO) per ogni etichetta.
  6. fine / z-chiudi -- CALL finale al worker con operazione C (chiusura stampa), chiusura file e finestra.

Note

  • Il layout fisico dell'etichetta e la periferica di stampa sono responsabilita' del worker COGZ37{az-personal}, non di questo programma.
  • La chiave secondaria coggeana.k02 (ordinamento per nome) e lodpresc.k04 (accesso per numero prescrizione) sono incluse manualmente in coda alla procedure division.
  • La selezione elenco (tm-criterio = "E") e' limitata a 100 codici (tabella u04-cod).
  • Il blocco storico di controllo azienda criptata / az-personal = 'LO' e' disattivato (PCASE-1227): la funzione e' aperta a tutti i laboratori.

Documentazione tecnica -- 2026-08-05