COGM97S - Ristampa Pre-Matricole¶
Scopo¶
Stampa etichette adesive per pre-matricole/matricole su stampante etichette con emulazione configurabile (PCL/PRESCRIBE/EPL2/CLEVER). Tre modalita' di selezione:
- M (Matricola): range Da/A su COGMTPRE
- L (Lotto): chiave secondaria di lotto su COGMTPRE
- D (Documento): chiave 3 documento su COGMATRI (matricole effettive associate a un documento di magazzino)
Caricamento del modello etichetta da file .prn/.JOB esterno (in ext-sys-dir), sostituzione placeholder con dati matricola, scarico su file di stampa binario flsta.
Programma GUI standalone, ma anche sottoprogramma chiamabile da altri (m97-ope in {"stampa-lotto","stampa-sub"}); tipicamente chiamato da COGM97M dopo la creazione.
Posizioni menu¶
- Magazzino > Produzione > Produzione > Matricole > Ristampa Pre-Matricole
File e Tabelle¶
| File | Copybook | Utilizzo |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella file di sistema |
| COGMERCI | cogmerci.cpy | Anagrafica merci (descrizioni, flag SN) |
| COGTESBO | cogtesbo.cpy | Testate documenti (chiave 3 per modalita' D) |
| COGMATRI | cogmatri.cpy | Matricole associate a documento (chiave 3 per modalita' D) |
| COGRACMC | cogracmc.cpy | Codici merce avanzati |
| COGMTPRE | cogmtpre.cpy | Pre-matricole (modalita' M e L) |
| PCLINP | (binary sequential, no copybook) | Lettura file modello etichetta (.prn/.JOB) |
| FLSTA | (binary, x(200)) | File stampante binario |
Copybook¶
feurtab.fd,cogm97s.select,cogm97s.fd,cogm97s.wrk,cogm97s-01.scr,cogm97s.decla,cogm97s.prccogmerci.fd/cpy,cogtesbo.fd/cpy,cogmatri.fd/cpy,cogracmc.fd/cpy,cogmtpre.fd/cpycogracmc.k02,cogmatri.k03,cogmtpre.k02(chiavi secondarie)k-u10.cpy,k-personal.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpyutils52.cpy,utils54.cpy,utils65.cpy,utils68.cpy,utilq40.cpy,utilu10.cpy,utilu20.cpywcont.cpy,wcont1.cpy,utilm97.cpygrave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy
CALL¶
| Programma | Scopo |
|---|---|
| COGS54 | Setup stampante / emulazione |
| COGS68 | Ricerca merce documento (zoom) |
| COGS65 (cancel a fine) | Ricerca cliente (riferimento storico) |
Logica di elaborazione¶
Parametri input¶
tab-maschera:
- tm-tip-ricerca: M/L/D
- tm-da-mat/tm-a-mat (anno+numero): range matricole (modalita' M)
- tm-lotto: lotto produzione (modalita' L)
- tm-documento (mag+anno+tipo+numero): documento (modalita' D)
- tm-doc-merce: filtro merce documento (modalita' D, opzionale)
- tm-n-copie, tm-rig-ini, tm-col-ini
- tm-ce: N/C/P
Linkage util-m97 (utilm97.cpy):
- m97-ope="stampa-lotto": setup automatico per stampa lotto, salta input
- m97-ope="stampa-sub": setup automatico per range matricola (chiamato da COGM97M)
- m97-caller: programma chiamante (es. COGP13)
Costanti file modello etichetta¶
k-modello-no = "eti_prematri.prn" -- standard
k-modello-ce = "eti_prematri_ce.prn" -- con marchio CE
k-modello-prestige = "eti_prematri_prestige.prn" -- variante Prestige
k-modello-ec = "MTPRE.JOB" -- Eurocold (formato CLEVER)
Flusso (stampa-etichette)¶
- Avvisi di conferma (
avviso1-merce, eventuali avviso2/3 per B&B Elettronica) - chiede conferma utente piu' volte. - COGS54 per setup stampante con emulazione corretta:
az-personal=k-personal-bb-elettronica→s54-emu='EPL2', last-rig=0/last-col=4 (etichetta a colonne)az-personal=k-personal-eurocold→s54-emu='CLEVER', last-rig=1/last-col=1- altre → emu spaces, last-rig=4/last-col=0, riga/colonna iniziale forzate a 1
- open-printer (
flsta) e scrittura emulazione iniziales54-emu-att. - Caricamento modello a seconda dell'azienda:
- B&B Elettronica:
load-modello-into-buffercon il file modello selezionato in base atm-ce(CE/Prestige/normale) - Eurocold:
load-images-into-buffer(caricaimg_logo.pcx+img_mkce.pcxconC$FILEINFO+ DOWNLOAD),download-buffer(immagini scaricate sulla stampante), poiload-modello-into-bufferdiMTPRE.JOBsalvato sul ricordante - Altri: nessun caricamento, usa stampa carattere su
mm-2(13 righe x 73 col) - Scansione record secondo
tm-tip-ricerca: - M:
st-cogmtpre-notminsu tip='A'+mat=tm-da-mat, scorre fino a mat>tm-a-mat o tip<>'A' - L:
st-cogmtpre-notmin-chia2su tip='A'+lotto=tm-lotto, scorre con lotto e tip costanti; seri-mercevalorizzato filtra anche per merce - D:
st-cogmatri-notmin-chia3sumtr-ent=tm-documento, scorre fino a tm-documento != mtr-ent; setm-doc-mercevalorizzato filtra per merce - Per ogni record:
tm-n-copie times perform stampa-matricola.
stampa-matricola¶
flow-mtp-to-tm(oflow-mtr-to-tmper modalita' D)search-mercesu COGMERCI (descrizione, flag SN, codice avanzato da COGRACMC seaz-mer-ava='C')- Stampa secondo azienda:
- B&B Elettronica:
stampa-bb(sostituisce placeholder nel buffer modello con codice merce avanzato, descrizione, matricola; setm-fl-sn='T'rimuove le righe del barcode S.N.) - Eurocold:
stampa-ec(job CLEVER con immagini gia' scaricate) - Altri:
stampa-normal(componemm-2carattere per carattere e scrive righe binarie con CR+LF) - Incrementa
w-curr-col; se superaw-last-col, incrementaw-curr-rig; se superaw-last-rig, ricomincia da 0.
Chiusura¶
chiudo-emu: per Eurocold scrive comandiKILL "<file>"per ogni immagine caricata (5 max).close-printercons54-emu-disfinale.- Per dischi non Windows (
az-sys != 'D'): open/close conwith no rewind.
Note tecniche¶
- Buffer
wb-logo/mb-logo: 10000 caratteri, controllo overflow concheck-ind download-buffer: scarica buffer suflstaa blocchi di 200 caratteri, settandoSTRIP_TRAILING_SPACES=1- Sostituzioni placeholder nel modello B&B (esempi):
GG/SS/00000→ codice merce,CODICE_MERCE_AVANZATO_12345678→ codice avanzato,DESCRIZ_MERCE_RIGA_1_123456789→ descrizione spezzata su 2 righe,SN. 200900000001/0200900000001→ matricola; pertm-fl-sn='T'(matricola fornitore) le righe del barcode S.N. vengono cancellate. - Spezzatura descrizione su due righe con ricerca dello spazio piu' vicino al centro.
tab-configper personalizzazioni residue (verbosita' avvisi).- Costanti
k-rs1-x..k-rs8-x/k-rs1-y..k-rs8-y: posizioni di start delle righe sull'etichetta (formato fs-3800/fs-1010).