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-commessavalorizzato): all'ingresso legge la prescrizione suLODPRESC(chiave.k04per 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 diCOGGEANAdal 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¶
apri/main-- init standalone (mmmask.cpy), abilitazione tasti funzione, apertura file, costruzione controlli maschera.a4-- se aperto su commessa (z37-commessa) leggeLODPRESCe precompila dottore/paziente; imposta i default (magazzino principale azienda, anno di sistema, tipo documento "B").- 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). a-richiesta-conferma-- validazione complessiva (x-imposta-conferma). Se aperto su commessa lancia il worker una sola volta e termina.c-10/c-20(per codice),c-100(elenco COGU04),c-200(da documento) -- costruzioneutil-z37e CALL al workerCOGZ37{az-personal}(fallbackCOGZ37NO) per ogni etichetta.fine/z-chiudi-- CALL finale al worker con operazioneC(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) elodpresc.k04(accesso per numero prescrizione) sono incluse manualmente in coda alla procedure division. - La selezione elenco (
tm-criterio = "E") e' limitata a 100 codici (tabellau04-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