Vai al contenuto

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.prc
  • cogmerci.fd/cpy, cogtesbo.fd/cpy, cogmatri.fd/cpy, cogracmc.fd/cpy, cogmtpre.fd/cpy
  • cogracmc.k02, cogmatri.k03, cogmtpre.k02 (chiavi secondarie)
  • k-u10.cpy, k-personal.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • utils52.cpy, utils54.cpy, utils65.cpy, utils68.cpy, utilq40.cpy, utilu10.cpy, utilu20.cpy
  • wcont.cpy, wcont1.cpy, utilm97.cpy
  • grave.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)

  1. Avvisi di conferma (avviso1-merce, eventuali avviso2/3 per B&B Elettronica) - chiede conferma utente piu' volte.
  2. COGS54 per setup stampante con emulazione corretta:
  3. az-personal=k-personal-bb-elettronicas54-emu='EPL2', last-rig=0/last-col=4 (etichetta a colonne)
  4. az-personal=k-personal-eurocolds54-emu='CLEVER', last-rig=1/last-col=1
  5. altre → emu spaces, last-rig=4/last-col=0, riga/colonna iniziale forzate a 1
  6. open-printer (flsta) e scrittura emulazione iniziale s54-emu-att.
  7. Caricamento modello a seconda dell'azienda:
  8. B&B Elettronica: load-modello-into-buffer con il file modello selezionato in base a tm-ce (CE/Prestige/normale)
  9. Eurocold: load-images-into-buffer (carica img_logo.pcx + img_mkce.pcx con C$FILEINFO + DOWNLOAD), download-buffer (immagini scaricate sulla stampante), poi load-modello-into-buffer di MTPRE.JOB salvato sul ricordante
  10. Altri: nessun caricamento, usa stampa carattere su mm-2 (13 righe x 73 col)
  11. Scansione record secondo tm-tip-ricerca:
  12. M: st-cogmtpre-notmin su tip='A'+mat=tm-da-mat, scorre fino a mat>tm-a-mat o tip<>'A'
  13. L: st-cogmtpre-notmin-chia2 su tip='A'+lotto=tm-lotto, scorre con lotto e tip costanti; se ri-merce valorizzato filtra anche per merce
  14. D: st-cogmatri-notmin-chia3 su mtr-ent=tm-documento, scorre fino a tm-documento != mtr-ent; se tm-doc-merce valorizzato filtra per merce
  15. Per ogni record: tm-n-copie times perform stampa-matricola.

stampa-matricola

  1. flow-mtp-to-tm (o flow-mtr-to-tm per modalita' D)
  2. search-merce su COGMERCI (descrizione, flag SN, codice avanzato da COGRACMC se az-mer-ava='C')
  3. Stampa secondo azienda:
  4. B&B Elettronica: stampa-bb (sostituisce placeholder nel buffer modello con codice merce avanzato, descrizione, matricola; se tm-fl-sn='T' rimuove le righe del barcode S.N.)
  5. Eurocold: stampa-ec (job CLEVER con immagini gia' scaricate)
  6. Altri: stampa-normal (compone mm-2 carattere per carattere e scrive righe binarie con CR+LF)
  7. Incrementa w-curr-col; se supera w-last-col, incrementa w-curr-rig; se supera w-last-rig, ricomincia da 0.

Chiusura

  • chiudo-emu: per Eurocold scrive comandi KILL "<file>" per ogni immagine caricata (5 max).
  • close-printer con s54-emu-dis finale.
  • Per dischi non Windows (az-sys != 'D'): open/close con with no rewind.

Note tecniche

  • Buffer wb-logo/mb-logo: 10000 caratteri, controllo overflow con check-ind
  • download-buffer: scarica buffer su flsta a blocchi di 200 caratteri, settando STRIP_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; per tm-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-config per 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).