COGY26 - Stampa etichette nome paziente/data¶
Sorgente: cbl/cogy26.cbl | Program-ID: COGY26 | Tipo: Programma interattivo (maschera parametri + stampa HPGL)
Menu: Lab.Odont. > Operativo > Stampe > Etichette nome paziente/data (anche seconda voce di Lab.Odont. > Archivi > Stampe)
Nota: nonostante il prefisso
cogy, COGY26 non e' un gestore tabella generato (i gestori generati sono i fileY*.cbl). E' un programma applicativo vero.
Scopo¶
Stampa etichette adesive con nome del paziente (tre righe di testo) e data, in linguaggio HPGL su fogli A4 predisposti a griglia 4 colonne x 11 righe (44 etichette/foglio). Permette di accodare fino a 100 pazienti prima del lancio stampa. La commessa, se indicata, precompila il nome paziente dalla prescrizione.
Puo' essere richiamato da altro programma (modalita' "called", vedi utily26.cpy).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| LODPRESC | ISAM | Input | Prescrizione medica; letta per chiave 4 (lpm-num = commessa) tramite rd-lodpresc-chia4-lk. Campi usati: lpm-paz, lpm-paz-esteso |
| FLSTA | Output | Flusso di stampa (assign to print 'PRINTER', record riga x(136)) |
La chiave secondaria della prescrizione e' inclusa da lodpresc.k04.
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogy26.select, cogy26.fd, cogy26.wrk, cogy26-01.scr, cogy26.prc, cogy26.decla |
Screen Designer |
cogfiles.cpy |
Layout FEURTAB |
k-personal.cpy |
Costanti personalizzazioni |
wgrave, wnscr, wopenf, wstato, cogazien |
Working storage standard + dati azienda |
utillogo.cpy |
Logo/stampa |
utilu05, utils52, utils54, utils65, utilu10 |
Utility controlli/subroutine maschera (util-s54 per scelta stampante) |
utilncnf.cpy |
Linkage RNEWCONF (lettura configurazione) |
utily26.cpy |
Linkage di chiamata esterna (in linkage section) |
wcont, wcont1 |
Contesto chiamata |
mmmask, grave, opengen, stato, stato1, winmsg |
Copybook fine procedure |
Dati sorgente e formato etichetta¶
Ogni paziente accodato e' un elemento di tab-maschera-bis (occurs 100). Campi rilevanti:
tm-commessa9(10) - numero commessa (opzionale)tm-paziente,tm-paziente1,tm-paziente2- nome paziente su 3 righe (17/17/16)tm-data9(8) - data (AAAAMMGG), default data di sistematm-copie9(4) - copie per paziente (min 1)tm-v-pos(fila 1-11) etm-o-pos(colonna 1-4) - posizione di partenza nel foglio
L'etichetta viene composta in HPGL (paragrafo b2-stampa-hpgl-eti): tre stringhe LB con le tre righe del nome (font SD1,...,4,9,...), poi la data formattata gg/mm/aaaa (font SD1,...,4,10,...) spostata a destra di 500 unita'. Le coordinate assolute w-hpg-h-pos/w-hpg-v-pos sono calcolate dalla posizione corrente (w-hpg-*-dim = 1000x1920, offset 300).
Logica (flusso, paragrafi principali)¶
- apri: init programma,
x99-confi(legge la configurazione), impone griglia 11x4 (w-kyo-v-max=11,w-kyo-h-max=4), imposta titolo. Sey26-in-call = 'COGY26-CALLED'caricay26-commessaintm-commessae precompila. - a3/a4: reset accumulatore
tab-maschera-bise del record di lavoro (data di sistema, 1 copia). - a-tm-commessa ... a-tm-v-pos: sequenza di accept dei campi (commessa, 3 righe paziente, data con F8 calendario via
util-s52, copie, colonna, fila). Ogni campo ha il suox-controlla-.... F3/F9 saltano aa-richiesta-conferma. - carica-tm-commessa: se commessa <> 0, legge LODPRESC; se non trovata -> "Commessa non trovata"; se righe paziente vuote precompila da
lpm-paz-esteso(spezzato 14/14/12) o dalpm-paz. - a-richiesta-conferma: con F3 accoda il record in
tab-maschera-bis(w-i1)(max 100, altrimenti "Memorizzati 100 pazienti"). Con F9 procede alla stampa. - a900: chiama COGS54 (
util-s54, emulazione 'HPLJ3', 136 col) per la scelta stampante; se ESC torna alla maschera. Se nessun paziente accodato usa quello corrente. Poib-stampa. - b-stampa: apre FLSTA,
cs1-print, scrive header emulazione, calcolaw-posizione = ((tm-o-pos-1)*4)+tm-v-pos, imposta stampante (b1-set-printer-hpgl: reset,&l26a,&l0O, eventualetm-cfg-formatta,IN;SP1;...), stampa (b2-stampa), reset (b3-reset-printer), chiude FLSTA. - b2-stampa / b2-stampa-hpgl / b2-stampa-hpgl-eti: doppio ciclo su pazienti accodati x copie; per ogni etichetta scrive i comandi HPGL e avanza posizione (
b23-avanza-etichetta: incrementa colonna, poi riga, wrap a foglio pieno). Al superamento della 44a etichetta resetta e reimposta la stampante. - fine/z-chiudi: chiude file e finestra, exit program.
Configurazione (RNEWCONF)¶
x99-confi legge da ODONTO.CNF, pacchetto "C", chiave Formattazione-COGZ90 -> tm-cfg-formatta (comandi di formattazione stampante iniettati in b1-set-printer-hpgl).
CALL¶
| Programma | Scopo |
|---|---|
| COGS54 | Selezione periferica di stampa (util-s54) |
| RNEWCONF | Lettura configurazione (Formattazione-COGZ90) |
Le altre subroutine (COGS52 calendario, ecc.) sono attivate dai copybook utils*/send* standard di maschera.
Note¶
- Massimo pazienti accodabili per sessione: 100 (
ele-maschera-bis occurs 100). - Layout foglio fisso a 11x4 = 44 etichette; l'avanzamento e' orizzontale-prima (colonne), poi verticale.
- Controlli posizione: fila 1-4 (
tm-v-pos), colonna 1-11 (tm-o-pos) nei paragrafix-controlla-tm-v-pos/x-controlla-tm-o-pos; abilitati solo se la stampante e' in modalita' foglio A4 (x-enabled-*). - In modalita' "called" al termine stampa esce (
go to fine), altrimenti riparte daa3.