Professional Documents
Culture Documents
Manual de Programao em
Impressoras Trmicas
Arquivo:Document1
1/32
Arquivo:Document1
2/32
ndice
1. Consideraes Iniciais ........................................................................................................4
2. Sentido de Impresso ........................................................................................................5
2.1.Padro Zebra e Eltron (Programao ZPL e EPL) ..............................................................5
2.2. Padro Datamax (Programao DPL ) ........................................................................6
2.3. Padro Intermec (Programao IPL) ...........................................................................7
3. Funes ...........................................................................................................................8
3.1. MSCBPrinter ...............................................................................................................8
3.2. MSCBClosePrinter .......................................................................................................9
3.3. MSCBBegin .............................................................................................................. 10
3.4. MSCBEnd ................................................................................................................. 10
3.5. MSCBSay ................................................................................................................. 11
3.6. MSCBSayBar ............................................................................................................ 12
3.6.1. Utilizao do cdigo 128 ...................................................................................................... 13
3.6.2. IDENTIFICAO DE APLICAO (Ais) .................................................................................... 14
1.
2.
3.
4.
Catalogo
Catalogo
Catalogo
Catalogo
de
de
de
de
Arquivo:Document1
Fontes
Fontes
Fontes
Fontes
padro
padro
padro
padro
DPL ..................................................................................... 32
EPL ..................................................................................... 32
IPL ...................................................................................... 32
ZPL ..................................................................................... 32
3/32
1. Consideraes Iniciais
Este documento no tem o objetivo de ensinar ao leitor a programao ADVPL,
nem a lgica de programao, pois neste caso presumimos que o leitor j tenha este
conhecimento.
Neste documento sero apresentadas todas as funes necessrias para a gerao
e impresso de etiquetas com ou sem cdigo de barras para impressoras trmicas.
Atualmente as funes para impresso trmica englobam as linguagem DPL, EPL,
IPL e ZPL, sendo estas linguagens totalmente transparentes para o programador. Sendo
assim o programador em questo no precisa ser um conhecedor das linguagem de
programao para impressoras trmicas descritas acima, desenvolvidas por seus
fabricantes.
Onde:
DPL
EPL
IPL
ZPL
Arquivo:Document1
a
a
a
a
linguagem
linguagem
linguagem
linguagem
de
de
de
de
programao
programao
programao
programao
datamax;
eltron;
intermec;
zebra.
4/32
2. Sentido de Impresso
O sentido de impresso no o mesmo para todas impressoras trmicas. Alguns
fabricantes de impressoras diferem o sentido de impresso um do outro, tendo suas
prprias justivicativas, podendo elas ser desenpenho, qualidade ou at facilidade para o
desenvolvedor.
Quando falamos em sentido de impresso, tambm importante falarmos do
ponto de origem (0,0) no possicionamento do desenho de imagens, linhas e textos, pois
isto tambm definido pelo fabricante tendo as mesmas regra justificadas por ele.
Abaixo so apresentadas os sentidos de impresso e ponto de origem para os
padres de programao e impressoras homologadas.
Arquivo:Document1
5/32
Arquivo:Document1
6/32
Arquivo:Document1
7/32
3. Funes
Nesta sesso sero descritos as funes necessrias para desenvolver imagens de
etiqueta para impressoras trmicas.
Os parmetros que estiverem entre [], significa que no so OBRIGATRIOS, os
parmetros que estiverem com (*), significa que uso exclusivo ZPL.
3.1. MSCBPrinter
Objetivo:
Permite realizar as configures da impressora, as quais permitiro ao
programador determinar as caracteristicas de impresso, definidas pelos parmetros
abaixo.
Sintaxe:
MSCBPRINTER(cModelPrt, cPorta, nDensidade, nTamanho, lSrv, nPorta, cServer, cEnv,
nMemoria, cFila, lDrvWin, cPathSpool)
Parmetros
[cModelPrt]
Descrio
String com o modelo de impressora:
Fabricante
Impressoras
Datamax
Eltron
Intermec
Zebra
[cPorta]
[nDensidade]
[nTamanho]
[lSrv]
[nPorta]
[cServer]
[cEnv]
[nMemoria]
Arquivo:Document1
8/32
[cFila]
[lDrvWin]
[cPathSpool]
3.2. MSCBClosePrinter
Objetivo:
Finaliza a conexo com a impressora.
Sintaxe:
MSCBClosePrinter()
Exemplo usando o padro de programao Zebra (famlia ZPL):
Local cPorta := "COM1:9600,N,8,1"
MSCBPRINTER("S500-8",cPorta,
, 40 ,.f.)
For nx:=1 to 3
MSCBBEGIN(1,6)
MSCBSAY(10,06,"CODIGO","N","A","015,008")
MSCBSAY(33,09, Strzero(nX,10), "N", "0", "032,035")
MSCBSAY(05,17,"IMPRESSORA ZEBRA S500-8","N", "0", "020,030")
MSCBEND()
Next
MSCBCLOSEPRINTER()
Arquivo:Document1
9/32
3.3. MSCBBegin
Objetivo:
Inicializa a montagem da imagem para cada etiqueta.
Sintaxe:
MSCBBEGIN(nxQtde,nVeloc,nTamanho,lSalva)
Parmetros
[nQtde]
[nVeloc]
[nTamanho]
[lSalva]
Descrio
Quantidade de cpias
Velocidade (1,2,3,4,5,6) polegadas por segundo
Tamanho da etiqueta em Milmetros.
Varivel utilizada somente para definio de forms. O valor default da
varivel .f.
3.4. MSCBEnd
Objetivo:
Finaliza a montagem da imagem, que foi inicializada por um MSCBBegin( ).
Sintaxe:
MSCBEND()
Exemplo usando o padro de programao Zebra (famlia ZPL):
Local nX
Local cPorta := "COM1:9600,N,8,1"
MSCBPRINTER("S500-8",cPorta,
, 40 ,.f.)
For nx:=1 to 3
MSCBBEGIN(1,6)
MSCBSAY(10,06,"CODIGO","N","A","015,008")
MSCBSAY(33,09, Strzero(nX,10), "N", "0", "032,035")
MSCBSAY(05,17,"IMPRESSORA ZEBRA S500-8","N", "0", "020,030")
MSCBEND()
Next
MSCBCLOSEPRINTER()
Arquivo:Document1
10/32
3.5. MSCBSay
Objetivo:
Imprime uma string.
Sintaxe:
MSCBSAY(nXmm, nYmm, cTexto, cRotacao, cFonte, cTam, lReverso, lSerial, cIncr,
lZerosL, lNoAlltrim)
Parmetro
nXmm
nYmm
cTexto
Descrio
Posio X em Milmetros
Posio Y em Milmetros
String a ser impresso ou itens especificando uma varivel @.(Ex: @2).
Obs: quando for especificado uma varivel, o seu contedo
dever ser apenas o caractere @ seguido de um nmero, @1
ou @2 e assim por diante. Vide item 3.15.
cRotao
cFonte
cTam
*[lReverso]
[lSerial]
[cIncr]
*[lZerosL]
[lNoAlltrim]
Arquivo:Document1
11/32
3.6. MSCBSayBar
Objetivo:
Imprime cdigo de barras.
Sintaxe:
MSCBSAYBAR(nXmm, nYmm, cConteudo, cRotacao, cTypePrt, nAltura, lDigVer, lLinha,
lLinBaixo, cSubSetIni, nLargura, nRelacao, lCompacta, lSerial, cIncr,
lZerosL)
Parmetro
nXmm
nYmm
cConteudo
Descrio
Posio X em Milmetros
Posio Y em Milmetros
String a ser impressa especificando uma varivel @ ou array somente
quando o parmetro cTypePrt for igual MB07.
Definio do Array:
cConteudo :={{"01","07893316010411"},;
cRotao
cTypePrt
{"10","0000970100"+MSCB128B()+"1"+MSCB128C()},;
{"37","0004"},;
{"21","000494"}}
[nAltura]
*[ lDigver]
[lLinha]
*[lLinBaixo]
[cSubSetIni]
[nLargura]
[nRelacao]
[lCompacta]
Arquivo:Document1
12/32
[lSerial]
[cIncr]
[lZerosL]
Serializa o cdigo
Incrementa quando for serial positivo ou negativo
Coloca Zeros a esquerda do contedo. Este parmetro s valido quando
lSerial estiver ativado (.t.).
13/32
14/32
Ttulo Completo
00
n2 +n18
01
n2+n14
02
n2+n14
10
n2 + an..20
11
n2+n6
12
n2+n6
13
n2+n6
15
n2+n6
17
n2+n6
20
Variante do Produto
n2+n2
21
Nmero de Srie
n2+an20
22
n2+an..29
23
n3+n..19
Arquivo:Document1
Formato
15/32
240
n3+an..30
241
Nmero de Cliente
n3+an..30
2504
n3+an..30
Ttulo Completo
Formato
n3+an..30
Contagem Varivel
n2+n..8
AI
2514
30
n4+n6
n4+n6
n2+n..8
390
n4+n..15
391
n4+n3+n..15
392n
n4+n..15
393n
Valor a Pagar por um item de medida varivel com o cdigo ISO de moeda
n4+n3+n..15
400
n3+an..30
401
Nmero de Consignao
n3+an..30
402
n3+n17
403
n3+an..30
410
Cdigo de Rota
Nmero de Localizao Global EAN/UCC Despachar para Entregar para destino
imediato
411
n3+n13
412
n3+n13
413
Nmero Global de Localizao EAN/UCC Despachar para Entregar para destino final
n3+n13
414
n3+n13
415
n3 + n13
n3+n3
8001
8002
n4+an..20
8003
n4+n14+an..16
8004
n4+an..30
8005
n4+n6
8006
n4+n14+n2+n2
8007
n4+an..30
8018
n4+n..18
8020
n4+an..25
8100
n4+n1+n5
8101
8102
n4+n1+ n1
90***
n2 +na..30
37
420
421
422
n3+n13
n3+an20
n3+n3+an9
n4+n14
n4+n1+n5+n4
n2+na..30
16/32
1. Quando forem necessrios apenas ano e ms, DD deve ser preenchido com 00.
2. Mais um dgito para a indicao de comprimento.
3. Estes Als compreendem 4 dgitos. Os trs primeiros dgitos identificam o objetivo do AI, e o quarto dgito indica a posio do
ponto decimal.
***. O ttulo do dado vigente deve ser especificado pelo emissor da informao.
3.7. MSCBBox
Objetivo:
Imprime um box.
Sintaxe:
MSCBBOX(nX1mm, nY1mm, nX2mm, nY2mm, nExpessura, cCor)
Parmetro
nX1mm
nY1mm
nX2mm
nY2mm
[nEspessura]
*[cCor]
Descrio
Posio X1 em Milmetros
Posio Y1 em Milmetros
Posio X2 em Milmetros
Posio Y2 em Milmetros
Numero com a espessura em pixel
String com a Cor Branca ou Preta ("W" ou "B")
Arquivo:Document1
, 40
,.f.)
17/32
3.8. MSCBLineH
Objetivo:
Imprime uma linha horizontal.
Sintaxe:
MSCBLineH(nX1mm, nY1mm, nX2mm, nExpessura, cCor)
Parmetro
nX1mm
nY1mm
nX2mm
[nEspessura]
*[cCor]
Descrio
Posio X1 em Milmetros
Posio Y1 em Milmetros
Posio X2 em Milmetros
Numero com a espessura em pixel
String com a Cor Branca ou Preta ("W" ou "B")
, 40
,.f.)
3.9. MSCBLineV
Objetivo:
Imprime uma linha vertical.
Sintaxe:
MSCBLineV(nX1mm, nY1mm, nY2mm, nExpessura, cCor)
Parmetro
nX1mm
nY1mm
nY2mm
[nEspessura]
*[cCor]
Descrio
Posio X1 em Milmetros
Posio Y1 em Milmetros
Posio X2 em Milmetros
Numero com a espessura em pixel
String com a Cor Branca ou Preta ("W" ou "B")
, 40
,.f.)
18/32
MSCBEND()
MSCBCLOSEPRINTER()
3.10. MSCBLoadGraf
Objetivo:
Carrega uma imagem para memria da impressora.
Sintaxe:
MSCBLOADGRF(cImagem)
Parmetro
cImagem
Descrio
Nome do arquivo que ser carregado, inclusive o path + nome completo + extenso
Observaes:
Para o padro Zebra, o arquivo do grfico (cImagem) tem que ser do tipo GRF,
gerado atravs de um PCX ou TIF no software fornecido pelo fabricante da zebra.
Para o padro Intermec, o arquivo do grfico (cImagem) tem que ser do tipo UDC,
gerado atravs de um BMP ou TIF(no compactado) no software fornecido pelo fabricante
da intermec.
Para o padro Datamax, o arquivo do grfico pode ser do tipo BMP, PCX, no
sendo necessrio ser convertido.
Para o padro Eltron, o arquivo do grfico tem que ser do tipo PCX, no sendo
necessrio ser convertido.
Exemplo do cdigo 128 usando o padro de programao ZPL:
Local cPorta := "LPT1"
MSCBPRINTER("S500-8",cPorta,
MSCBLOADGRF("SIGA.GRF")
MSCBBEGIN(1,6)
MSCBGRAFIC(2,3,"SIGA")
MSCBEND()
MSCBCLOSEPRINTER()
Arquivo:Document1
, 40
,.f.)
19/32
3.11. MSCBGraphic
Objetivo:
Imprime grfico que est armazenado na memria da impressora.
Sintaxe:
MSCBGRAFIC(nXmm, nYmm, cArquivo, lReverso)
Parmetro
NXmm
NYmm
cArquivo
*[lReverso]
Descrio
Posio X em Milmetros
Posio Y em Milmetros
Nome do grfico que foi carregado na memria da impressora (no colocar a extenso
do arquivo)
Imprime em reverso quando tiver sobre um box preto
, 40
,.f.)
3.12. MSCBChkStatus
Objetivo:
Seta ou visualiza o controle de status do sistema com a impressora.
Sintaxe:
MSCBCHKStatus(lStatus)
Parmetro
[lStatus]
Descrio
Lgica ativa/desativa o controle. Seu valor default .t.
Observaes:
Com o status ativado, sempre que a aplicao enviar qualquer informao para a
impressora, ser analisado o status, caso esteja com o buffer cheio, sem papel ou sem
ribbon, o sistema aguardara at que os itens anteriores estejam solucionados. Caso haja
Arquivo:Document1
20/32
, 40
,.f.)
3.13. MSCBInfoEti
Objetivo:
Grava informaes para gerenciamento do MSCBSpool.
Sintaxe:
MSCBInfoEti(cDescr,cFiltro)
Parmetro
cDescr
cFiltro
Descrio
Descrio que gerar informao no MSCBSpool para identificar a
etiqueta.
utilizado para realizar filtros no MSCBSpool. Vide documentao
MSCBSpool.
Arquivo:Document1
21/32
3.14. MSCBWrite
Objetivo:
Permite enviar para porta uma linha de programao nativa da Impressora.
Sintaxe:
MSCBWrite(cConteudo)
Parmetro
cConteudo
Descrio
Linha de programao nativa da impressora.
3.15. MSCBVar
Objetivo:
Cria variveis para serem utilizadas nos forms (imagem) da etiqueta. Sendo
assim podemos criar para cada um dos campos (cdigo de barras e textos) uma varivel
correspondente. Normalmente este recurso utilizado somente em layouts variveis, ou
seja, em campos que so alterados constatemente.
O uso de variveis permite ao programador criar um layout padro (form) o qual
ser enviado para a impressora trmica, e depois o mesmo somente enviar as
alteraes das variveis, diminuindo a quantidade de dados que sero carregados na
impressora. Isto far com que a impressora use uma quantidade menor de memria,
podendo com isto ter uma diminuio de erros provenientes do buffer de impresso e um
aumento de performance (velocidade) na impresso.
Sintaxe:
Arquivo:Document1
22/32
MSCBVar(cVar,cDados)
Parmetro
cVar
cdados
Descrio
Nome da varivel. Lembrando que o mesmo dever ser incremental e
sempre inicializar com @.( Exemplo: @1)
Contedo da varivel
,2
,1
,.F.,.f.,"1",.T.)
For nx:=1 to 3
MSCBINFOETI("PRODUTO","MODELO 1")
MSCBBEGIN(10,,,.F.)
MSCBVAR("@1",StrZero(nX,10))
MSCBVAR("@2",StrZero(nX,10))
MSCBEND()
Next
MSCBCLOSEPRINTER()
Observao: Note no exemplo acima, que o primeiro bloco inicializado com MSCBBEGIN
e finalizado com MSCBEND constroi o layout da etiqueta (form). J o loop For imprime 3
etiquetas utilizando as variveis que atualizam o cdigo do produto e o cdigo de barras,
devinido com a varivel @1 e @2 respectivamente.
Arquivo:Document1
23/32
4. Exemplos
4.1.1. Exemplo 01
User Function ExDPL1()
Local nX
Local cPorta := "COM1:9600,n,8,2"
MSCBPRINTER("ALLEGRO",cPorta,
,
,.f. )
MSCBLOADGRF("SIGA.BMP")
For nx:=1 to 3
MSCBINFOETI("Exemplo 1","MODELO 1")
MSCBBEGIN(1,4)
MSCBBOX(02,01,76,34,1)
MSCBLineH(30,30,76,1)
MSCBLineH(02,23,76,1)
MSCBLineH(02,15,76,1)
MSCBLineV(30,23,34,1)
MSCBGRAFIC(2,26,"SIGA")
MSCBSAY(33,31,'PRODUTO',"N","2","01,01")
MSCBSAY(33,27,"CODIGO","N","2","01,01")
MSCBSAY(33,24, Strzero(nX,10), "N", "2", "01,01")
MSCBSAY(05,20,"DESCRICAO","N","2","01,01")
MSCBSAY(05,16,"IMPRESSORA ALLEGRO 2 BR","N", "2", "01,01")
MSCBSAYBAR(22,03,Strzero(nX,10), , ,8.36,.F.,.T.,.F.,,3,2)
MSCBEND()
Next
MSCBCLOSEPRINTER()
Return
4.1.2. Exemplo 02
User Function EXDPL2()
Local cPorta
cPorta := "COM1:9600,N,8,2"
MSCBPRINTER("ALLEGRO",cPorta,
,35
,.f.)
MSCBBEGIN()
MSCBBOX(02,01,100,30)
aConteudo :={{"01","07893316010411"},;
{"10","0000970100"+MSCB128B()+"1"+MSCB128C()},;
{"37","0004"},;
{"21","000494"}}
MSCBSAYBAR(08,10,aConteudo,"N","MB07",10,.F.,.T.,nil,'C',3,2,.f.)
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
24/32
4.1.3. Exemplo 03
User Function ExDPL3()
Local nX
Local cPorta := "COM1:9600,n,8,2"
MSCBPRINTER("ALLEGRO",cPorta,
,
,.f. )
MSCBLOADGRF("SIGA.BMP")
MSCBBEGIN(1,4,,.t.)
MSCBBOX(02,01,76,34,1)
MSCBLineH(30,30,76,1)
MSCBLineH(02,23,76,1)
MSCBLineH(02,15,76,1)
MSCBLineV(30,23,34,1)
MSCBGRAFIC(2,26,"SIGA")
MSCBSAY(33,31,'PRODUTO',"N","2","01,01")
MSCBSAY(33,27,"CODIGO","N","2","01,01")
MSCBSAY(33,24, "@1", "N", "2", "01,01")
MSCBSAY(05,20,"DESCRICAO","N","2","01,01")
MSCBSAY(05,16,"IMPRESSORA ALLEGRO 2 BR","N", "2", "01,01")
MSCBSAYBAR(22,03,"@2","N","MB07",8.36,.F.,.T.,.F.,,3,2,.F.)
MSCBEND()
For nx:=1 to 10
MSCBINFOETI("PRODUTO","MODELO 1")
MSCBBEGIN(10,,,.F.)
MSCBVAR("@1",StrZero(nX,10))
MSCBVAR("@2",StrZero(nX,10))
MSCBEND()
Next
MSCBBEGIN(1,4,NIL,NIL)
MSCBBOX(02,01,76,34,1)
MSCBLineH(30,30,76,1)
MSCBLineH(02,23,76,1)
MSCBLineH(02,15,76,1)
MSCBLineV(30,23,34,1)
MSCBGRAFIC(2,26,"SIGA")
MSCBSAY(33,31,'TESTE FINAL',"N","2","01,01")
MSCBSAY(33,27,"CODIGO","N","2","01,01")
MSCBSAY(33,24, "000001", "N", "2", "01,01")
MSCBSAY(05,20,"DESCRICAO","N","2","01,01")
MSCBSAY(05,16,"IMPRESSORA ALLEGRO 2 BR","N", "2", "01,01")
MSCBSAYBAR(22,03,"000001","N","MB07",8.36,.F.,.T.,.F.,,3,2,.F.)
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
25/32
4.2.2. Exemplo 02
User Function EXEPL2()
Local cPorta := "LPT1"
MSCBPRINTER("ELTRON",cPorta,,,.F.)
MSCBBEGIN(1,6)
MSCBBOX(05,03,105,30,2)
aConteudo :={{"01","07893316010411"},;
{"10","0000970100"+MSCB128B()+"1"+MSCB128C()},;
{"37","0004"},;
{"21","000494"}}
MSCBSAYBAR(08,08,aConteudo,'N','MB07',08,,.T.,NIL,"C",2,2,,,,)
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
26/32
4.2.3. Exemplo 03
User Function EXEPL3()
Local cPorta := "LPT1"
Local nX
MSCBPRINTER("ELTRON",cPorta,,,.F.)
MSCBLOADGRF("SIGA.PCX")
For nx:=1 to 1
MSCBINFOETI("ETI TESTE","PEQ")
MSCBBEGIN(3,6,,.t.)
MSCBGRAFIC(04,02,"SIGA")
MSCBBOX(05,01,76,30,2)
MSCBLineH(30,06,71,2)
MSCBLineH(05,12,71,2)
MSCBLineH(05,18,71,2)
MSCBLineV(30,1,12,2) //Monta Linha Vertical
MSCBSAY(33,02,'PRODUTO',"N","2","1,2")
MSCBSAY(33,07,"CODIGO", "N", "1", "1,1")
MSCBSAY(33 ,09 ,"0000001", "N" , "1" , "1,2",.T. ,.t. ,'+4')
MSCBSAY(07,13,"@1","N","1","1,1")
MSCBSAY(07,15,"IMPRESSORA ELTRON TLP2742","N" ,"1" , "1,2")
MSCBSAYBAR(28,19,"@2"
,'N'
,'MB07' ,06
,.f. ,.t. ,
,
MSCBEND()
Next
For nx:=1 to 4
MSCBINFOETI("ETI TESTE","PEQ")
MSCBBEGIN(10,,,.F.)
MSCBVAR("@1",StrZero(nX,10))
MSCBVAR("@2",StrZero(nX,10))
MSCBEND()
Next
,2
,2)
MSCBINFOETI("ETI TESTE","PEQ")
MSCBBEGIN(3,6)
MSCBGRAFIC(04,02,"SIGA")
MSCBBOX(05,01,76,30,2)
MSCBLineH(30,06,71,2)
MSCBLineH(05,12,71,2)
MSCBLineH(05,18,71,2)
MSCBLineV(30,1,12,2) //Monta Linha Vertical
MSCBSAY(33,02,'PRODUTO',"N","2","1,2")
MSCBSAY(33,07,"CODIGO", "N", "1", "1,1")
MSCBSAY(33,09,"0000001", "N" , "1" , "1,2",.T. ,.F. ,'+4')
MSCBSAY(07,13,"teste da folha de rosto","N","1","1,1")
MSCBSAY(07,15,"IMPRESSORA ELTRON TLP2742","N" ,"1" , "1,2")
MSCBSAYBAR(28,19,"0000001" ,'N' ,'MB07',06 ,.f. ,.t. , ,"C" ,2 ,2 ,.t. )
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
27/32
4.3.2. Exemplo 02
User Function EXIPL2()
Local cPorta := "COM1:19200,N,8,1"
MSCBPRINTER("3600-8",cPorta,
,35
,.f.)
MSCBBEGIN()
MSCBBOX(02,01,30,100,3)
aConteudo :={{"01","07893316010411"},;
{"10","0000970100"+MSCB128B()+"1"+MSCB128C()},;
{"37","0004"},;
{"21","000494"}}
MSCBSAYBAR(20,08,aConteudo,"R","MB07",10,.F.,.T.,nil,'C',2,1,.f.)
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
28/32
4.3.3. Exemplo 03
User Function ExIPL3()
Local nX
Local cPorta
cPorta := "COM1:19200,E,7,1"
MSCBPRINTER("I3600",cPorta,NIL
MSCBLOADGRF("SIGA.UDC")
,40
,.f. )
MSCBBEGIN(1,5,,.T.)
MSCBINFOETI("PRODUTO","MODELO 1")
MSCBBOX(01,02,34,76,1)
MSCBLineV(30,30,76,1)
MSCBLineV(23,02,76,1)
MSCBLineV(15,02,76,1)
MSCBLineH(23,30,34,1)
MSCBGRAFIC(34,02,"SIGA")
MSCBSAY(32,33,'PRODUTO',"R","2","01,01")
MSCBSAY(29,33,"CODIGO","R","2","01,01")
MSCBSAY(26,33,"@1", "R", "2", "01,01")
MSCBSAY(22,05,"DESCRICAO","R","2","01,01")
MSCBSAY(19,05,"PARAFUSO 1/4 POLEGADAS","R", "2", "01,01")
MSCBSAYBAR(12,22,"@2","R","MB07",8.36,.F.,.T.,.F.,,2,2)
MSCBEND()
For nx:=1 to 10
MSCBBEGIN(,,,.F.)
MSCBINFOETI("PRODUTO","MODELO 1")
MSCBVAR("@1",StrZero(nX,10))
MSCBVAR("@2","999"+StrZero(nX,7))
MSCBEND()
Next
MSCBINFOETI("PRODUTO","MODELO 1")
MSCBBEGIN(2,6,,NIL)
MSCBBOX(01,02,34,76,1)
MSCBLineV(30,30,76,1)
MSCBLineV(23,02,76,1)
MSCBLineV(15,02,76,1)
MSCBLineH(23,30,34,1)
MSCBGRAFIC(2,26,"SIGA",.T.)
MSCBSAY(32,33,'PRODUTO',"R","2","01,01")
MSCBSAY(29,33,"CODIGO","R","2","01,01")
MSCBSAY(26,33,"000010", "R" , "2" , "01,01",,.t.,"2")
MSCBSAY(22,05,"DESCRICAO","R","2","01,01")
MSCBSAY(19,05,"PARAFUSO 1/4 POLEGADAS","R", "2", "01,01")
MSCBSAYBAR(12,22,"000010","R","MB07",8.36,.F.,.T.,.F.,,2,2,.F.)
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
29/32
4.4.2. Exemplo 02
User Function EXZPL2()
Local cPorta
cPorta := "COM1:9600,N,8,1"
MSCBPRINTER("S500-8",cPorta,,35)
MSCBBEGIN(1,6)
MSCBBOX(02,01,76,34,1)
aConteudo :={{"01","07893316010411"},;
{"10","0000970100"+MSCB128B()+"1"+MSCB128C()},;
{"37","0004"},;
{"21","000494"}}
MSCBSAYBAR(08,10,aConteudo,"N","MB07",10,.F.,.T.,.F.,"C",2,1,.F.)
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
30/32
4.4.3. Exemplo 03
User Function EXZPL3()
Local cPorta := "COM1:9600,N,8,1"
MSCBPRINTER("S500-8",cPorta,
,
,.f. )
MSCBLOADGRF("SIGA.GRF")
MSCBBEGIN(2,6,nil,.T.)
MSCBBOX(02,01,76,35)
MSCBLineH(30,05,76,3)
MSCBLineH(02,13,76,3,"B")
MSCBLineH(02,20,76,3,"B")
MSCBLineV(30,01,13)
MSCBGRAFIC(2,3,"SIGA")
MSCBSAY(33,02,'PRODUTO',"N","0","025,035")
MSCBSAY(33,06,"CODIGO","N","A","015,008")
MSCBSAY(33,09, "@1", "N", "0", "032,035")
MSCBSAY(05,17,"IMPRESSORA ZEBRA S500-8","N", "0", "020,030")
MSCBSAYBAR(23,20,"@2"
,"N"
,"C"
,8.36 ,.F. ,.T. ,.F.
,
MSCBEND()
,2
,1)
For nx:=1 to 3
MSCBINFOETI("PRODUTO","MODELO 1")
MSCBBEGIN(10,,,.F.)
MSCBVAR("@1",StrZero(nX,10))
MSCBVAR("@2",StrZero(nX,10))
MSCBEND()
Next
MSCBBEGIN(2,6,nil,nil)
MSCBBOX(02,01,76,35)
MSCBLineH(30,05,76,3)
MSCBLineH(02,13,76,3,"B")
MSCBLineH(02,20,76,3,"B")
MSCBLineV(30,01,13)
MSCBGRAFIC(2,3,"SIGA")
MSCBSAY(33,02,'PRODUTO',"N","0","025,035")
MSCBSAY(33,06,"CODIGO","N","A","015,008")
MSCBSAY(33,09, "1", "N", "0", "032,035")
MSCBSAY(05,17,"IMPRESSORA ZEBRA S500-8","N", "0", "020,030")
MSCBSAYBAR(23,20,"00000000002" ,"N" ,"C" ,8.36 ,.F. ,.T. ,.F. , ,2 ,1 )
MSCBEND()
MSCBCLOSEPRINTER()
Return
Arquivo:Document1
31/32
Arquivo:Document1
32/32