Olá a todos.
Alguem tem e poderia postar e/ou indicar um exemplo para impressora de etiqueta de codigo de barras para a impressora Argox OS 214TT. Eu até tenho o manual em ingles dela, mas va se entender aquilo... Agradeço a todos.
Exemplo para Argox OS214 TT
Moderador: Moderadores
São dois exemplos, imprimi etiqueta de produto com 2 carreiras e etiqueta de gondola
FUNCTION I_PRODUTO2(vqtde)
lin_01 := "R$ "+STR(PRECO_VEND,8,2)+B(01)+LEFT(fantasia_,10)
lin_02 := ALLTRIM(STR(CODPRODUTO,13))
lin_03 := LEFT(DESCRICAO,22)
lin_04 := SUBS(DESCRICAO,23,22)
lin_05 := LEFT(COMPLEMENT,22)
*
* "121100000800010"+lin_??
* | | | |Coluna 999
* | | |linha 9999
* | |Tamanho 999
* |Largura 99
*
FOR x = 1 TO vqtde
SET DEVICE TO PRINT
SET PRINTER TO MERCADOR.DAT
@ 00,00 SAY "O0220"
@ 01,00 SAY "M3000"
@ 02,00 SAY "c0000"
@ 03,00 SAY "f000"
@ 04,00 SAY "e"
@ 05,00 SAY "LC0000"
@ 06,00 SAY "H12"
@ 07,00 SAY "D11"
@ 08,00 SAY "SC"
@ 09,00 SAY "PC"
@ 10,00 SAY "R0000"
@ 11,00 SAY "z"
@ 12,00 SAY "W"
@ 13,00 SAY "^01"
@ 14,00 SAY "121100000800010"+lin_01
IF x+1 <= vqtde
@ 15,00 SAY "121100000800185"+lin_01
ENDIF
@ 17,00 SAY "1A5202000450010"+lin_02
IF x+1 <= vqtde
@ 18,00 SAY "1A5202000450185"+lin_02
ENDIF
@ 20,00 SAY "121100000500118"+lin_02
@ 21,00 SAY "121100000300010"+lin_03
@ 22,00 SAY "121100000200010"+lin_04
@ 23,00 SAY "121100000100010"+lin_05
IF x+1 <= vqtde
@ 24,00 SAY "121100000500292"+lin_02
@ 25,00 SAY "121100000300185"+lin_03
@ 26,00 SAY "121100000200185"+lin_04
@ 27,00 SAY "121100000100185"+lin_05
x += 1
ENDIF
@ 32,00 SAY "Q0001"
@ 33,00 SAY "E"
SET PRINTER TO
SET DEVICE TO SCREEN
RUN TYPE MERCADOR.DAT > LPT1
NEXT
* fim
FUNCTION I_GONDOLA()
qt_etiq := 1
COR_FUN()
SOMBRA(14,24,16,51,0)
SCROLL(14,24,16,51,0) ; COR_AMA()
@ 15,25 SAY B(05)+"Quantidade" GET qt_etiq PICT '999999' VALID qt_etiq >=1
SET CURSOR ON ; READ ; SET CURSOR OFF
FOR qt = 1 TO qt_etiq
SET DEVICE TO PRINT
SET PRINTER TO GONDOLA.DAT
* ARGOX
@ 00,00 SAY "00220"
@ 01,00 SAY "M3000"
@ 02,00 SAY "c0000"
@ 03,00 SAY "f000"
@ 05,00 SAY "e"
@ 04,00 SAY "L"
@ 06,00 SAY "LC0000"
@ 07,00 SAY "H12"
@ 08,00 SAY "D11"
@ 09,00 SAY "SC"
@ 10,00 SAY "PC"
@ 11,00 SAY "R0000"
@ 12,00 SAY "z"
@ 13,00 SAY "W"
@ 14,00 SAY "^01"
@ 15,00 SAY "1F1202000100005"+STRZERO(CODPRODUTO,13) &&--> C¢digo barras
@ 16,00 SAY "191200500500005"+DESCRICAO &&--> Descri‡Æo produto
@ 17,00 SAY "143314000000165"+TRANSFORM(PRECO_VEND,"@E 999.99") &&--> Pre‡o venda
@ 18,00 SAY "192300400000150R$" &&--> Moeda
@ 19,00 SAY "191100100400005"+fantasia_ &&--> Nome fantasia
* | | |Coluna
* | |linha
* |Tamanho
@ 20,00 SAY "Q0001"
@ 21,00 SAY "E"
999.99")
SET PRINTER TO
SET DEVICE TO SCREEN
RUN TYPE GONDOLA.DAT > LPT1
NEXT
* fim
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho Caputo
Seria possivel que voce apresentasse o codigo ASC correspondente a "" junto com o restante da string?
Neste trecho voce faz referencia a uma função B()?
E neste trecho esta faltando algo:
Após @ 21,00 SAY "E"
Código: Selecionar todos
@ 00,00 SAY "00220"
Neste trecho voce faz referencia a uma função B()?
Código: Selecionar todos
lin_01 := "R$ "+STR(PRECO_VEND,8,2)+B(01)+LEFT(fantasia_,10)
Código: Selecionar todos
@ 19,00 SAY "191100100400005"+fantasia_ &&--> Nome fantasia
* | | |Coluna
* | |linha
* |Tamanho
@ 20,00 SAY "Q0001"
@ 21,00 SAY "E"
999.99")
SET PRINTER TO
SET DEVICE TO SCREEN
RUN TYPE GONDOLA.DAT > LPT1
NEXT
Editado pela última vez por rochinha em 27 Fev 2008 00:21, em um total de 1 vez.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho Caputo,
Executei umas poucas mudanças em suas funções afim de torna-las genéricas desta forma quem se valer delas deverá apenas passar como parametros os campos que as mesmas manipulam, já que cada um da um nome diferente para campos de mesmo teor em suas tabelas.
Se possivel faça os testes e correções e poste o resultado na sessão código fonte
Eu apenas modifiquei-as para meu uso futuro e não testei em nenhuma impressora, apenas visualizei o arquivo gerado.
Executei umas poucas mudanças em suas funções afim de torna-las genéricas desta forma quem se valer delas deverá apenas passar como parametros os campos que as mesmas manipulam, já que cada um da um nome diferente para campos de mesmo teor em suas tabelas.
Se possivel faça os testes e correções e poste o resultado na sessão código fonte
Código: Selecionar todos
FUNCTION I_PRODUTO2(vqtde ,; // Quantidade de etiquetas
nCodigo ,; // Codigo de Barras
cDescricao,; // Descricao
nPreco ,; // Preco de Venda
cFantasia ,; // Nome Fantasia
cComplement )
lin_01 := "R$ "+STR(nPreco,8,2)+B(01)+LEFT(cFantasia_,10)
lin_02 := ALLTRIM(STR(nCodigo,13))
lin_03 := LEFT(cDescricao,22)
lin_04 := SUBS(cDescricao,23,22)
lin_05 := LEFT(cComplement,22)
cARGOXfile := "MERCADOR.DAT"
cCrLf := chr(13)+chr(10)
FOR x = 1 TO vqtde
errhandle := fcreate(cARGOXfile)
cARGOXcmd := ""
cARGOXcmd += "O0220" + cCRLF
cARGOXcmd += "M3000" + cCRLF
cARGOXcmd += "c0000" + cCRLF
cARGOXcmd += "f000" + cCRLF
cARGOXcmd += "e" + cCRLF
cARGOXcmd += "LC0000" + cCRLF
cARGOXcmd += "H12" + cCRLF
cARGOXcmd += "D11" + cCRLF
cARGOXcmd += "SC" + cCRLF
cARGOXcmd += "PC" + cCRLF
cARGOXcmd += "R0000" + cCRLF
cARGOXcmd += "z" + cCRLF
cARGOXcmd += "W" + cCRLF
cARGOXcmd += "^01" + cCRLF
cARGOXcmd += "121100000800010"+lin_01 + cCRLF
IF x+1 <= vqtde
cARGOXcmd += "121100000800185"+lin_01 + cCRLF
ENDIF
cARGOXcmd += "1A5202000450010"+lin_02 + cCRLF
IF x+1 <= vqtde
cARGOXcmd += "1A5202000450185"+lin_02 + cCRLF
ENDIF
cARGOXcmd += "121100000500118"+lin_02 + cCRLF
cARGOXcmd += "121100000300010"+lin_03 + cCRLF
cARGOXcmd += "121100000200010"+lin_04 + cCRLF
cARGOXcmd += "121100000100010"+lin_05 + cCRLF
IF x+1 <= vqtde
cARGOXcmd += "121100000500292"+lin_02 + cCRLF
cARGOXcmd += "121100000300185"+lin_03 + cCRLF
cARGOXcmd += "121100000200185"+lin_04 + cCRLF
cARGOXcmd += "121100000100185"+lin_05 + cCRLF
x += 1
ENDIF
cARGOXcmd += "Q0001" + cCRLF
cARGOXcmd += "E" + cCRLF
fwrite(errhandle, cARGOXcmd )
fClose(errhandle)
//__CopyFile( cARGOXfile, "LPT1" )
RUN TYPE &(cARGOXfile) > "LPT1"
// Esperar alguns segundos para que o comando acima seja concluido
//inkey(3)
NEXT
FUNCTION I_GONDOLA(qt_etiq ,; // Quantidade de etiquetas
nCodigo ,; // Codigo de Barras
cDescricao,; // Descricao
nPreco ,; // Preco de Venda
cFantasia) // Nome Fantasia
qt_etiq := iif(qt_etiq=nil,1,qt_etiq)
cARGOXfile := "GONDOLA.DAT"
cCrLf := chr(13)+chr(10)
FOR qt = 1 TO qt_etiq
errhandle := fcreate(cARGOXfile)
cARGOXcmd := ""
fwrite(errhandle, "00220" + cCRLF )
fwrite(errhandle, "M3000" + cCRLF )
fwrite(errhandle, "c0000" + cCRLF )
fwrite(errhandle, "f000" + cCRLF )
fwrite(errhandle, "e" + cCRLF )
fwrite(errhandle, "L" + cCRLF )
fwrite(errhandle, "LC0000" + cCRLF )
fwrite(errhandle, "H12" + cCRLF )
fwrite(errhandle, "D11" + cCRLF )
fwrite(errhandle, "SC" + cCRLF )
fwrite(errhandle, "PC" + cCRLF )
fwrite(errhandle, "R0000" + cCRLF )
fwrite(errhandle, "z" + cCRLF )
fwrite(errhandle, "W" + cCRLF )
fwrite(errhandle, "^01" + cCRLF )
fwrite(errhandle, "1F1202000100005" + STRZERO(nCodigo,13) + cCRLF )
fwrite(errhandle, "191200500500005" + cDescricao + cCRLF )
fwrite(errhandle, "143314000000165" + TRANSFORM(nPreco,"@E 999.99") + cCRLF )
fwrite(errhandle, "192300400000150R$" + cCRLF )
fwrite(errhandle, "191100100400005" + cFantasia + cCRLF )
fwrite(errhandle, "Q0001" + cCRLF )
fwrite(errhandle, "E" + cCRLF )
//999.99")
//fwrite(errhandle, cARGOXcmd )
fClose(errhandle)
//MemoWrit( "GON.DAT", cARGOXcmd )
//__CopyFile( cARGOXfile, "LPT1" )
RUN TYPE &(cARGOXfile) > "LPT1"
// Esperar alguns segundos para que o comando acima seja concluido
//inkey(3)
NEXT
return .t.
Editado pela última vez por rochinha em 27 Fev 2008 09:51, em um total de 1 vez.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Passei a utiliza este tipo de recurso para nao mais prescisar ficar mudando sempre o sistema deacordo com a impressora do cliente ou o formato que as vezes ele queira criar, esta rotina funciona legal em win98 no caso do xp estou colocando a impressao direta usando HBcomm.
If Etq_Personalizada(mFormato) == .F. // Caso nao tenha o Lay Programa
Forma001() // formato padrao
Endif
//------------------------------------------------------
Function Etq_Personalizada(nFormato)
Local cArquivo := "Etq_"+StrZero(nFormato,3)+".txt"
Local cTexto := MemoRead(cArquivo)
Local nLinha := MLCount(cTexto)
LOCAL VarTxt1 := ""
LOCAL VarTxt2 := ""
If ! File(cArquivo)
cArquivo := "Etq_001"+".txt"
If ! File(cArquivo)
Return ( .F. )
Endif
Endif
If Lerparam("SISTEMA_OS") == "WIN"
Set Printer to (mSaida)
Set Device to Printer
Else
Set Printer to "Tag.txt"// (mSaida)
Set Device to Printer
Endif
SetPrc(0,0)
For X:= 1 to nLinha
cTxt := memoline(cTexto,80,X)
cString := "cComand :="+cTxt
cCmd := &(cString)
@ x,00 Say cCmd
Next
If Lerparam("SISTEMA_OS") == "WIN"
Set Printer to ( mSaida )
Set Device to Screen
Else
Set Device to Screen
Set Printer to // ( mSaida )
! Copy Tag.txt mSaida > Nul
Endif
Return nil
/// Exemplo de um arquivo que uso etq_002.txt
"O0220"
"M3000"
"e"
"c0000"
"f000"
"L"
"C0020"
"H12"
"D11"
"SC"
"PC"
"R0000"
"z"
"W"
"^01"
"191200300740010"+WDESCRICAO
"191200300500005DE"
"192200500200005"+WPRECOVENDA
"192200200500120POR"
"192200700070152"+WVENDA
"191100200000010"+WCODIGOPLU+" Ean:"+WCODIGOEAN
"Q"+WQUANTIDADE
"E"
If Etq_Personalizada(mFormato) == .F. // Caso nao tenha o Lay Programa
Forma001() // formato padrao
Endif
//------------------------------------------------------
Function Etq_Personalizada(nFormato)
Local cArquivo := "Etq_"+StrZero(nFormato,3)+".txt"
Local cTexto := MemoRead(cArquivo)
Local nLinha := MLCount(cTexto)
LOCAL VarTxt1 := ""
LOCAL VarTxt2 := ""
If ! File(cArquivo)
cArquivo := "Etq_001"+".txt"
If ! File(cArquivo)
Return ( .F. )
Endif
Endif
If Lerparam("SISTEMA_OS") == "WIN"
Set Printer to (mSaida)
Set Device to Printer
Else
Set Printer to "Tag.txt"// (mSaida)
Set Device to Printer
Endif
SetPrc(0,0)
For X:= 1 to nLinha
cTxt := memoline(cTexto,80,X)
cString := "cComand :="+cTxt
cCmd := &(cString)
@ x,00 Say cCmd
Next
If Lerparam("SISTEMA_OS") == "WIN"
Set Printer to ( mSaida )
Set Device to Screen
Else
Set Device to Screen
Set Printer to // ( mSaida )
! Copy Tag.txt mSaida > Nul
Endif
Return nil
/// Exemplo de um arquivo que uso etq_002.txt
"O0220"
"M3000"
"e"
"c0000"
"f000"
"L"
"C0020"
"H12"
"D11"
"SC"
"PC"
"R0000"
"z"
"W"
"^01"
"191200300740010"+WDESCRICAO
"191200300500005DE"
"192200500200005"+WPRECOVENDA
"192200200500120POR"
"192200700070152"+WVENDA
"191100200000010"+WCODIGOPLU+" Ean:"+WCODIGOEAN
"Q"+WQUANTIDADE
"E"
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho Frazato
Voce tem o manual em PDF desta impressora? pode me mandar por favor?
Voce tem o manual em PDF desta impressora? pode me mandar por favor?
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.

