Stampanti etichette compatibili con access

venerdì 13 aprile 2012 - 18.44
Tag Elenco Tags  Windows XP  |  Access (.mdb)  |  Office 2003

sagrimal Profilo | Junior Member

Ciao a tutti, ho un report creato da un data base access, il quale stampa delle etichette conteneti alcuni campi di una tabella, e fin qui tutto ok.

Ho collegato una stampante termica zebra che utilizza un linguaggio epl e zpl, l'ho installata al pc ma quando lancio il report di etichette sull stampante non stampa nulla, perchè non si comporta come una comune stampante laser o a getto d'inchiostro ?

Dove sbaglio ?

Grazie mille salvatore

MarKonE Profilo | Guru

Ciao, ti rispondo velocemente perchè ho poco tempo ma eventualmente approfondiremo poi

Qual è il modello esatto di stampante ? Tempo fa da access ho avuto bisogno di stampare delle etichette con una stampante termica. Allora fu necessario inviare, tramite il comando "print" da DOS, un file di testo contenente le informazioni da stampare, tra cui un barcode.

Se il caso è quello posso darti già il codice, ma devo capire se la stampante tua utilizza lo stesso sistema.

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao Marco, per prima cosa grazie mille

la stampante è una zebra TLP 2844

spigami esattamente cosa dovrei fare, inviare un codice tramite dos alla stampante ?

1) come si fa ?
dimmi se ho capito e se sono in grado di seguirti

il codice dovrebbe essere tipo

N
A50,0,0,0,1,1"n_PRODOTTO"
ecc.ecc.
ma poi come invio il mio report di etichette alla stampante ?

magari poi approfondiamo

grazie ancora

Salvatore

MarKonE Profilo | Guru

Ciao,

la stampante è collegata al pc tramite cavo ethernet o di altro tipo ?

Qual è il sistema operativo del pc ?

CIAUUUU

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao, la stampante è collegata al pc con cavo usb ed il s.o. è win 7 nel caso potrei utilizzare anche xp ?

La versione access è la 2003 oppure la 2007.

Grazie ancora salvatore.

Il mio problema maggiore è che non so come si fa ad inviare uno spool di teasto alla stampante tramite access. se ho ben capito da alcune ricerche che ho fatto, bisogna creare un file di testo con il linguaggio di programmazione della stampante, poi copiarlo nella memoria della stampante con il comando copy c:\ nome file.txt lpt1, ma poi come faccio a stampare l'etichetta ? Come deve essere scritto il report ?
Grazie mille Salvatore

sagrimal Profilo | Junior Member

Devo inviare una stringa tipo

N
A50,0,0,1,1,1,N,"etichetta campo1"
B10,10,0,3,3,7,200,B,"CAMPO1"
P1

questa stringa dovrebbe dire alla stampante zebra tlp 2844 di stampare il campo "CAMPO1" con il codice a barre code39

il problema è : come faccio ad inviare questa stringa alla stampante su ogni stampa record ?

quando immetto il record su uscita mi dovrebbe stampare l'etichetta con il barcode.

Se mi aiuti te ne sarò molto grato

Grazie mille salvatore

MarKonE Profilo | Guru

Ciao,

sarebbe un problema per te utilizzare la stampante con un cavo ethernet ? In quel caso dovrebbe bastare mappare l'indirizzo della stampante come LPT1 e usare il comando PRINT. In questo caso posso mandarti il codice completo.

Per la gestione via USB la cosa mi sembra più complessa.

Fammi sapere.

Ciao !

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao, purtroppo la stampante non porta scheda di rete, è collegata solo con un cavo usb, se mi mandi comunque il file, almeno cerco di capire come devo fare per inviare l'etichetta alla stamopante ogni volta che inserisco un record. se magari, ma forse sto esagerando nel chiedere troppo, hai la possibilità di mandarlo per la gestione su usb, non saprei proprio come ringrazierti.

Ciao
Salvatore

MarKonE Profilo | Guru

Peccato, dalle caratteristiche visibilli sul sito credevo avesse la porta USB.

In ogni caso... prova a creare un file di testo con il contenuto esatto da inviare alla stampante, nominandolo ad esempio PROVA.TXT .

Rendi poi la stampante USB in questione PREDEFINITA.

Apri poi il prompt dei comandi (CMD), posizionati nella cartella dove è presente il file PROVA.TXT e prova a lanciare il seguente comando :

start /min notepad /P PROVA.TXT

E' un'idea accrocchiosa dato che parliamo di USB, ma sono ottimista eventualmente poi vediamo come implementare la cosa da codice su access.
Ciaooo
My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Grazie marco sei un grande, la stampante ha stampato esattamente questo, cioè quello scritto sul file txt ma non la formattazione per ES. la riga che inizia con B10, doveva stampare il barcode
N
A50,0,0,1,1,1,N,"PROVA1"
A50,50,0,2,1,1,N,!PROVA2"
A50,100,0,3,1,1,N,"PROVA3
B10,10,0,3,3,7,200,B,"123456789"
P1

Grazie mille
Salvatore

MarKonE Profilo | Guru

>Grazie marco sei un grande, la stampante ha stampato esattamente
>questo, cioè quello scritto sul file txt ma non la formattazione
>per ES. la riga che inizia con B10, doveva stampare il barcode
>N
>A50,0,0,1,1,1,N,"PROVA1"
>A50,50,0,2,1,1,N,!PROVA2"
>A50,100,0,3,1,1,N,"PROVA3
>B10,10,0,3,3,7,200,B,"123456789"
>P1

Prova così :

print #1, "N" & vbcrLf
print #1, "B10,10,0,3,3,7,200,B,"123456789" & vbcrLf
print #1, "P1" & vbcrLf
close #1


My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao marco ho provato, ma stampo solo la stringa che mi hai inviato, null'altro, del resto con un programmino della stampante scrivo la stringa, poi clicco su un tasto con segnato send e mi stampa il barcode come è indicato.

Grazie ancora

MarKonE Profilo | Guru

Si perchè il programmino, tramite il tasto SEND invia il codice giusto

Facciamo così, purtroppo non avendo la stampante sotto mano nè una documentazione tanto completa dobbiamo fare tentativi.

Crea la seguente Subroutine su access :
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Poi crea un pulsante su un form ed associa il seguente codice alla sua pressione ( posto che il file da stampare sia C:\matr.txt ) :

StampaEtichetta "C:\PROVA.TXT"

fammi sapere !

Ciaooo

My Blog... http://blogs.dotnethell.it/Mark/

MarKonE Profilo | Guru

Correggo... il file PROVA.TXT NON deve esserci, verrà utilizzato come file di appoggio in fase di stampa.

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao Marco, scusa la mia ignoranza, ma quando vado sul tasto di comando e vado su clic mi apre
Private Sub Comando0_Click()
come faccio ad inserire
Private Sub StampaEtichetta(sFileName As String)
On Error GoTo WriteFileErrors

ecc.ecc. ?

Ciao e ancora mille grazie


MarKonE Profilo | Guru

>Ciao Marco, scusa la mia ignoranza, ma quando vado sul tasto
>di comando e vado su clic mi apre
>Private Sub Comando0_Click()
>come faccio ad inserire
>Private Sub StampaEtichetta(sFileName As String)
> On Error GoTo WriteFileErrors

Dalla schermata dove vedi il codice scrivi :

Private Sub Comando0_Click()
StampaEtichetta(C:\prova.txt)
End Sub

Private Sub StampaEtichetta(sFileName As String)
On Error GoTo WriteFileErrors

ecc fino a END SUB


My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao Marco, grazie ancora, nel pomeriggio provo e ti farò sapere.
Sei gentilissimo, grazie ancora mille.
Spero di poterti essere di aiuto anch'io un giorno
Appena farò la prova ti terrò aggiornato.

Ciao Salvatore

sagrimal Profilo | Junior Member

Ciao Marco, ti aggiungo delle immagini ti saranno più chiare sull'errore che mi da la tua istruzione.

Grazie ancora
Salvatore

1024x768 236Kb

1024x768 169Kb

MarKonE Profilo | Guru

Colpa mia !

StampaEtichetta "C:\prova.txt"
tra virgolette e non tra parentesi.

SOOOORRY !
My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Assolutamente non devi scusarti, anzi devo essere io a scusarmi per il fastidio che ti sto dando, domani provo e ti aggiorno grazie ancora di tutto

Salvatore

sagrimal Profilo | Junior Member

Ciao Marco, ho provato, purtroppo non stampa nulla allego altre immagini per farti rendere conto, le routinne sembra vadano bene ma stranamente mi dice che il file è in stampa ma non stampa.

Ciao
Aspetto qualche altro suggerimento
Salvatore

1024x768 170Kb

1024x768 223Kb

MarKonE Profilo | Guru

Altro consiglio al volissimo :

Prova a condividere la stampante e a rimapparla sullo stesso pc come LPT1. Sei in grado ? Una volta fatto ritenta la stampa please.

Ciao !
My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao Marco grazie ancora,
non sono riuscito a ripammare la porta come LPT1 ma stranamente ho lanciato il comando, e solo dopo molto tempo mi ha stampato l'etichetta, ma il tempo è lunghissimo, impiega circa 5 minuti e poi stampa.

Ciao Salvatore
adesso la porta della stampante è USB003

MarKonE Profilo | Guru

L'etichetta è uscita corretta ? col barcode ?
My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

L'etichetta è uscita con il barcode ma ci mette una vita a spampare più di 10 minuti

1024x768 145Kb


adesso la stampa va in errore e non stampa nulla

sagrimal Profilo | Junior Member

Ciao marco, la cosa strana è che il comando "B10,10,0,3,3,7,200,B,"123456789" che invio alla stampante da dos mi viene modificato in "B10,10,0,3,3,7,200,B,"""; 123456789; """" da access è questo forse il problema ?

Grazie mille
Salvatore

MarKonE Profilo | Guru

Prova a condividere la stampante e a mapparla su LPT1 col seguente comando :

NET USE LPT1: \\NomeComputer\NomeStampante /PERSISTENT:YES


My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Niente da fare non ne vuole sapere guarda l'immagine, mi dispiace che ti dando fastidio, ma non so che cavolo fare sembrerebbe che access ed il linguaggio della stampante non si capiscono proprio

1024x768 220Kb


Mi dispiacerebbe molto dovwer rinunciare, fammi sapere qualcosa ti prego.

Grazie ancora mille.
Salvatore

MarKonE Profilo | Guru

Scusami ma non mi sembra l'approccio corretto

L'etichetta è uscita ? Mi sembra di si quindi FUNZIONA. Ora si tratta di aggiustare il tiro per automatizzare il tutto ed ottenere la stampa in tempi ragionevoli (dovrebbe uscire all'istante su una termica).

Dall'ultima immagine vedo che la stampante ha un nome che contiene spazi..... o la ricondividi con un nome senza spazi o nel comando la metti tra virgolette. Personalmente preferisco la prima opzione. Quando riuesci a rimapparla riprova a stampare.
Se il risultato in termini di tempo non cambia posta per favore le opzioni della stampante. Il driver è il più recente ?

Ciaoo

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao Marco, purtroppo l'etichetta non esce, mi dice il file stampa.txt è in stampa, ma non stamta nulla, inoltre ho notato una cosa strana, che quando lancio la stampa, il file quello che dovrebbe mandare l'immagine alla stampante, viene modificato, cioè la stringa 1234456789 si sposta di una posizione a destra.

Sono mortificato se ti sto dando tanti fastidi, scusami

Salvatore

MarKonE Profilo | Guru

Il problema principale è che non capisco bene quello che mi descrivi....quindi faccio molta fatica ad aiutarti.

Per punti... l'etichetta con il barcode, sebbene dopo 10 minuti, è uscita correttamente o no ?

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

purtroppo no l'etichetta non viene fuori, la porta della stampante è la USB003, la stampante si chiama
ZDesigner TLP2844 e non riesco a cambiare il nome, ed è condivisa con lo stesso nome, inoltre come ti accennavo prima, la stringa segnata nella sudrutine
Print #1, "B10,10,0,3,3,7,200,B,"""; 123456789; """"

mi modifica il file testo in :
N
B10,10,0,3,3,7,200,B," 123456789 "
P1

Se lancio questa stringa con il comando stampa da blocco note mi manda un barcode che non è code39
proprio per via dello spazio tra le virgolette e la stringa di numeri.

P.S. se non ti scoccia, posso lasciarti la mia mail, mi mandi un messaggio vuoto, poi ti ripondo dandoti il mio recapito telefonico, può darsi che parlando riusciamo a capirci meglio. Fammi sapere ed ancora mille grazie e mille scuse
Salvatore

MarKonE Profilo | Guru

Gli spazi ci sono nella stringa : Print #1, "B10,10,0,3,3,7,200,B,"""; 123456789; """" ....

Questa funziona (ho tolto i due spazi) ? :

Print #1, "B10,10,0,3,3,7,200,B,""";123456789;""""

Altrimenti ti invio un mdb di prova perchè devo fare dei test a questo punto.

My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ho notato una cosa strana, ho lanciato la stampa dalla maschera access, e con la stampante configurata sulla porta USB003 si è aperta finestra DOS con scritto stampa.txt in corso, ma non stampava nulla, e nello spool della stampante non c'ra nulla, poi ho modificato la porta nelle proprietà della stampante, ed ho messo LTP1 a questo punto è apparso il file nello spool della stampante, ma solo dopo molti minuti è uscita l'etichetta, ma non lo fa sempre,

non so se ti può essere di aiuto

Salvatore

P.S. ho provato a cambiare la stringa come mi hai indicato , ma me la riporta con gli spazi.



sagrimal Profilo | Junior Member

Ciao Marco, ho spostato la stampante su un pc con la parallela, e la stampa è immediata, e stampa anche l'etichetta, solo che mi sposta la stringa di uno spazio e mi da un barcode errato, quindi il lettore non lo legge, se si riesce a correggere questo problema, come faccio poi al posto della stringa 123456789 ad inserire il valore dei campi presenti nella tabella che interessano ?
Attualmente sto stampando i cartellini, ovviamente, senza barcode, con il seguente eventu su uscita dal record:
Private Sub Form_AfterInsert()
DoCmd.OpenReport "Etichette CARTELLINO_PEDANA_2", acNormal, , "N_PEDANA=" & Me!N_PEDANA

End Sub

Potrò farlo anche con la subroutine ?


Ciao Salvatore

MarKonE Profilo | Guru

Ciao,

scusami ma sono stato molto preso.
Per la questione dello spazio direi che dovrebbe essere sufficiente modificare il codice relativo..magari togliendo qualche virgola.

Per quanto riguarda la stampa non bisogna utilizzare un report ... ma il codice come quello dell'esempio che ti avevo postato. La stampa non è come quella di un normale documento/report... ma va "formattata" in modo che venga digerita dalla stampante.

Ciaooo
My Blog... http://blogs.dotnethell.it/Mark/

sagrimal Profilo | Junior Member

Ciao Marco, figurati non devi assolutamente scusarti, quindi in quella stringa che mi hai postato devo utilizzare i comandi della stampante, quindi posso utilizzare per avviare la routinne l'evento su uscita, della maschera ?

Grazie Salvatore

Io ci provo se ci riesco ti farò sapere

Grazie ancora.

MarKonE Profilo | Guru

L'unica cosa da verificare è la sintassi corretta del comando. Quando il barcode uscirà corretto sarai al 90 % del lavoro.

La sub potrà poi essere richiamata quando preferisci.... su uscita, alla pressione di un pulsante ecc... quello è l'ultimo dei pensieri.

CIAOO

My Blog... http://blogs.dotnethell.it/Mark/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5