Publicado el Dejar un comentario

Zebra 2844 USB

zebra2844_mybusinessposLa impresora Zebra que se conecta por cable USB se comporta de forma similar a cualquier otra impresora de tickets y puede programarse como tal; por ejemplo, vemos que tiene las funciones IniciaDocumento y FinDocumento.



Sub Main()
Dim rstProds
Dim n

Set rstProds = CreaRecordSet( _
“SELECT * FROM prods WHERE etiquetas > 0”,_
Ambiente.Connection )

While Not rstProds.EOF

For n = 1 To rstProds(“etiquetas”)
ImprimeEtiqueta rstProds
Next

rstProds.MoveNext

Wend

End Sub

Sub ImprimeEtiqueta( rstProds )

‘EstableceImpresora “ZDesigner LP 2844”
IniciaDocumento

EstableceFuente “C39HrP24DhTt”,35
Say 5.25, 3.53, “*” & Trim(rstProds(“articulo”)) & “*”
EstableceFuente “Times New Roman”, 9
Say 5.1, 3.53, “$ ” & PadL(Formato( rstProds(“precio1”), Ambiente.FDinero ),6)
‘Trim(rstProds(“Descrip”))

FinDocumento

End Sub

Publicado el Dejar un comentario

Cómo abrir y cerrar el verificador de precios?

El sistema cuenta con un verificador de precios de manera parecida a las farmacias del Ahorro.  Esta opción se encuentra en el menú Utilerías — Verificador.

Un vez abierto el verificador, escriba la clave  del artículo y presione ENTER o bien presione la flecha hacia abajo del teclado y aparecerá el catálogo de productos para seleccionarlo y ver los detalles de este.

Para salir de esta ventana solo deberá de escribir lo siguiente …1 (tres puntos, después 1 y presionar ENTER)

Publicado el Dejar un comentario

ZEBRA 2844 CON PRESENTACIONES

'|----------------------------------------------------------------------------------|
'| 2010-10-13 |
'| JOSE FELIX SANCHEZ (jofelchez@gmail.com) |
'| El siguiente procedimiento imprime las etiquetas de cada uno de los articulos, |
'| incluyendo sus presentaciones |
'|----------------------------------------------------------------------------------|

Public Sub Main ()

Set rstPartidas = CreaRecordSet( “SELECT UPPER(prods.articulo) AS articulo, descrip, etiquetas, precio1, precio2, precio10 FROM prods WHERE etiquetas > 0”, Ambiente.Connection )

While Not rstPartidas.EOF

For i = 1 to rstPartidas(“etiquetas”)
ImprimeEtiqueta “LPT1”, rstPartidas(“articulo”), rstPartidas(“descrip”) , Formato(rstPartidas(“precio1”), “##,##0.00” ), “” , “” , “” , “” , “” , “”
Next

rstPartidas.MoveNext

Wend

Set rstPartidas = CreaRecordSet( “SELECT UPPER(prods.articulo) AS articulo, prods.descrip, prods.precio1, UPPER(clavesadd.clave) AS clave, clavesadd.dato1, clavesadd.dato2, clavesadd.cantidad, clavesadd.unidad, clavesadd.etiquetas, clavesadd.precio FROM clavesadd INNER JOIN prods ON clavesadd.articulo = prods.articulo WHERE clavesadd.etiquetas > 0”, Ambiente.Connection )

While Not rstPartidas.EOF

For i = 1 to rstPartidas(“etiquetas”)
‘ ImprimeEtiqueta “LPT1”, rstPartidas(“clave”), “”,rstPartidas(“descrip”) , Formato(rstPartidas(“precio1”), “##,##0.00” ), Formato(rstPartidas(“precio2”), “##,##0.00” ), Formato(rstPartidas(“precio10”), “##,##0.00” )
ImprimeEtiqueta “LPT1”, rstPartidas(“articulo”), rstPartidas(“descrip”) , Formato(rstPartidas(“precio1”), “##,##0.00” ), rstPartidas(“clave”) , rstPartidas(“dato1”), rstPartidas(“dato2”) , Formato(rstPartidas(“cantidad”), “##,##0.00” ), rstPartidas(“unidad”) , Formato(rstPartidas(“precio”), “##,##0.00” )
Next

rstPartidas.MoveNext

Wend

End sub

Public Sub ImprimeEtiqueta( cPuerto, cArticulo, cDescrip, cPrecioDeLista, cClave, cDato1, cDato2, cCantidad, cUnidad, cPrecioPresentacion )

cPuerto = Trim( cPuerto )
cArticulo = Trim( cArticulo )
cDescrip = Trim( cDescrip )
cDato1 = Trim( cDato1 )

cClave = Trim( cClave )
cDato2 = Trim( cDato2 )
cUnidad = Trim( cUnidad )

cSalida = “”

‘ Aqui se puede modificar la etiqueta utiliza un lenguaje llamado EPL2 le adjunto manual del
‘ lenguaje, tambien si tienen la información del formato de la etiqueta y quieren que la
‘ diseñe por favor mandemelo
‘ Aqui se muestran los comandos basicos
‘ El comando N inicia la etiqueta
‘ El comando A muestra un dato de texto en donde el 250 es la posición en el eje de las X
‘ y el 15 la posición en el eje de las Y
‘ El comando B muestra el código de barras donde 250 es la posición en el eje de las X y 45
‘ Es la posición de inicio del eje de las Y
‘ El comando P Finaliza la etiqueta y el nunero 1 indica cuantas etiquetas se van a imprimir

cSalida = cSalida & “N” & Chr(13) & Chr(10) ‘LIBERAMOS LA MEMORIA
cSalida = cSalida & “D14” & Chr(13) & Chr(10) ‘DENSIDAD DE LA IMPRESION, DE 0 A 15
‘LA SIGUENTE LINEA SE PUEDE EXPLICAR EN LA PÁGINA 22 DEL MANUAL: A = ASCII; 05 = POSICION X; 11=POSICION Y; 0=GIRO 0 GRADOS; 2= TAMAÑO LETRA; 1=ESCALA EN HORIZONTAL; 1 = ESCALA VERICAL; N=LIMPIA MEMORIA
cSalida = cSalida & “A05,11,0,2,1,1,N,” & Chr(34) & Mid( cDescrip,1, 12 ) & ” $ ” & cPrecioDeLista & Chr(34) & Chr(13) & Chr(10)
‘LA SIGUENTE LINEA SE PUEDE EXPLICAR EN LA PÁGINA 29 DEL MANUAL: B = CODIGO DE BARRAS; 05 = POSICION X; 30=POSICION Y; 0=GIRO 0 GRADOS; 1= TIPO DE CÓDIGO(CODE39); 2=SEPARACIONDE LAS BARRAS; 6 = TAMAÑO HORIZONTAL; 40=TAMAÑO VERTICAL; B=MOSTRAR LOS CARACTERES ABAJO DEL CÓDIGO DE BARRAS
cSalida = cSalida & “B05,30,0,1,2,6,40,B,” & Chr(34) & cArticulo & Chr(34) & Chr(13) & Chr(10)
‘————————————————————————————————–
‘linea de codigo de barras de la version 2011
‘cSalida = cSalida & “B05,30,0,2,1,6,25,B,” & Chr(34) & cArticulo & Chr(34) & Chr(13) & Chr(10)
‘linea de codigo de barras de la version 2006
‘cSalida = cSalida & “B250,60,0,1,2,6,80,B,” & Chr(34) & cArticulo & Chr(34) & Chr(13) & Chr(10)
‘————————————————————————————————–

‘EN CASO DE QUE HAYA UNA CLAVE DE PRESENTACION
if cClave <> “” then

cSalida = cSalida & “A05,81,0,2,1,1,N,” & Chr(34) & Mid( cDato1,1, 16 ) & ” $ ” & cPrecioPresentacion & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “B05,100,0,1,2,6,30,B,” & Chr(34) & cClave & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “A05,140,0,1,1,1,N,” & Chr(34) & Mid( cDato2,1, 16 ) & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “A05,140,0,1,1,1,N,” & Chr(34) & Mid( cCantidad,1, 16 ) & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “A05,155,0,1,1,1,N,” & Chr(34) & Mid( cUnidad,1, 16 ) & Chr(34) & Chr(13) & Chr(10)

end if

‘cSalida = cSalida & “A220,55,0,4,1,1,N,” & Chr(34) & “$” & cPrecioDeLista & Chr(34) & Chr(13) & Chr(10)
‘CON P1, ESPECIFICAMOS QUE SE DEBE IMPRIMIR UNA ETIQUETA Y FINALIZAMOS ESTA
cSalida = cSalida & “P1” & Chr(13) & Chr(10)

‘msgbox csalida

‘——————————————————————————————-
‘EL SIGUIENTE BLOQUE QUE APARECE EN VERDE ES POR SI QUISIERAMOS IMPRIMIR VIA USB
‘IniciaDocumento
‘ EstableceFuente “Times New Roman”, 9
‘ Say 2.3, 3.4, Mid( cDescrip,1, 12 ) & ” $ ” & cPrecioDeLista
‘ EstableceFuente “C39HrP24DhTt”, 40
‘ Say 2.5, 3.4, cArticulo

‘if cClave <> “” then

‘ EstableceFuente “Times New Roman”, 9
‘ Say 3.1, 3.4, Mid( cDato1,1, 16 ) & ” $ ” & cPrecioPresentacion
‘ Say 3.3, 3.4, “Tipo: ” & Mid( cDato2,1, 16 )

‘ EstableceFuente “C39HrP24DhTt”, 30
‘ Say 3.5, 3.4, cClave

‘ EstableceFuente “Times New Roman”, 9
‘ Say 4.0, 3.4, “Cantidad: ” & Mid( cCantidad,1, 16 )
‘ Say 4.1, 3.4, “Unidad: ” & Mid( cUnidad,1, 16 )

‘end if

‘FinDocumento
‘———————————————————————————–

if Ambiente.rstEstacion(“ietiquetas”) <> 0 Then
if clAt( “LPT”, Ambiente.rstEstacion(“ietiquetaspuerto”) ) > 0 Then
Out Trim(Ambiente.rstEstacion(“ietiquetaspuerto”)), cSalida
else
if Ambiente.ImpresoraDeEtiquetas.PortOpen Then
Ambiente.ImpresoraDeEtiquetas.Output = cSalida
end if
end if
end if

Dormir 100
Eventos

End Sub

 

Publicado el 2 comentarios

Formato de etiquetas para zebra 2844

' El siguiente procedimiento imprime las etiquetas de cada uno de los articulos
Public Sub Main ()

Set rstPartidas = CreaRecordSet( “SELECT articulo, descrip, etiquetas, precio1, precio2, precio10 FROM prods WHERE etiquetas > 0”, Ambiente.Connection )

While Not rstPartidas.EOF

For i = 1 to rstPartidas(“etiquetas”)
ImprimeEtiqueta “LPT1”, rstPartidas(“articulo”), “”,rstPartidas(“descrip”) , Formato(rstPartidas(“precio1”), “##,##0.00” ), Formato(rstPartidas(“precio2”), “##,##0.00” ), Formato(rstPartidas(“precio10”), “##,##0.00” )
Next

rstPartidas.MoveNext

Wend

Set rstPartidas = CreaRecordSet( “SELECT clavesadd.clave, prods.descrip, clavesadd.etiquetas, prods.precio1, prods.precio2, prods.precio10 FROM clavesadd INNER JOIN prods ON clavesadd.articulo = prods.articulo WHERE clavesadd.etiquetas > 0”, Ambiente.Connection )

While Not rstPartidas.EOF

For i = 1 to rstPartidas(“etiquetas”)
ImprimeEtiqueta “LPT1”, rstPartidas(“clave”), “”,rstPartidas(“descrip”) , Formato(rstPartidas(“precio1”), “##,##0.00” ), Formato(rstPartidas(“precio2”), “##,##0.00” ), Formato(rstPartidas(“precio10”), “##,##0.00” )
Next

rstPartidas.MoveNext

Wend

End sub

Public Sub ImprimeEtiqueta( cPuerto, cArticulo, cDato1, cDescrip, cPrecioDeLista, cMayoreo, cSugerido )

cPuerto = Trim( cPuerto )
cArticulo = Trim( cArticulo )
cDescrip = Trim( cDescrip )
cDato1 = Trim( cDato1 )

cSalida = “”

‘ Aqui se puede modificar la etiqueta utiliza un lenguaje llamado EPL2 le adjunto manual del
‘ lenguaje, tambien si tienen la información del formato de la etiqueta y quieren que la
‘ diseñe por favor mandemelo
‘ Aqui se muestran los comandos basicos
‘ El comando N inicia la etiqueta
‘ El comando A muestra un dato de texto en donde el 250 es la posición en el eje de las X
‘ y el 15 la posición en el eje de las Y
‘ El comando B muestra el código de barras donde 250 es la posición en el eje de las X y 45
‘ Es la posición de inicio del eje de las Y
‘ El comando P Finaliza la etiqueta y el nunero 1 indica cuantas etiquetas se van a imprimir

cSalida = cSalida & “N” & Chr(13) & Chr(10)
cSalida = cSalida & “D14” & Chr(13) & Chr(10)
cSalida = cSalida & “A220,15,0,1,1,1,N,” & Chr(34) & Formato( Date, “dd-MM-yyyy” ) & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “A05,11,0,2,1,1,N,” & Chr(34) & Mid( cDescrip,1, 12 ) & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “B05,30,0,2,1,6,25,B,” & Chr(34) & cArticulo & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “A220,55,0,4,1,1,N,” & Chr(34) & “$” & cPrecioDeLista & Chr(34) & Chr(13) & Chr(10)
‘cSalida = cSalida & “A250,95,0,2,1,1,N,” & Chr(34) & cMayoreo & Chr(34) & Chr(13) & Chr(10)
cSalida = cSalida & “P1” & Chr(13) & Chr(10)

if Ambiente.rstEstacion(“ietiquetas”) <> 0 Then
if clAt( “LPT”, Ambiente.rstEstacion(“ietiquetaspuerto”) ) > 0 Then
Out Trim(Ambiente.rstEstacion(“ietiquetaspuerto”)), cSalida
else
if Ambiente.ImpresoraDeEtiquetas.PortOpen Then
Ambiente.ImpresoraDeEtiquetas.Output = cSalida
end if
end if
end if

Dormir 100
Eventos

End Sub

 

Publicado el 45 comentarios

Etiquetas de Código de Barras en Hoja Tamaño Carta


El generador de etiquetas de MyBusiness POS 2006 es una herramienta muy útil para la empresa. Sin embargo, en ocasiones es necesario hacer las adaptaciones necesarias para que se adapte la “caída” sobre hojas tamaño carta con etiquetas.
El código más común es el CODE39.   Este va a ser creado dentro de la siguiente ruta del Business Manager: personalización…formatos del sistema….(aquí creamos un nuevo archivo, llamado CODE39_AJUSTADO,  escribimos en el grupo ETIQUETAS, para que pueda ser utilizado desde la ventana etiquetas)
A continuación se muestra el código:

Public Sub Main()

‘TIPO DE PAPEL: 6287 T. CARTA
‘MARCA DE PAPEL: BIC PIMACO
‘ETIQUETAS/HOJA: 80
‘CONSEGUIRLO EN OFFICE DEPOT
‘IMPRESORA LÁSER
‘cada milimetro es equivalente a 57.1428571428571 pixels

IniciaDocumento

‘DEBIDO A QUE NUESTRA HOJA TIENE VARIAS FILAS Y COLUMNAS, SOLICITAMOS A PARTIR DE QUÉ FILA Y COLUMNA SE DEBE EMPEZAR A IMPRIMIR, POR SI EN ALGUN MOMENTO ESTÁ CASI COMPLETA LA HOJA

nColumna = InputBox( “Comenzar con la columna no.:”, 0 )
nFila = InputBox( “Comenzar con la fila no.:”, 0 )

‘EN CASO DE QUE SE CONTESTE 0 EN ALGUNO DE LOS CASOS, NO SE IMPRIMIRÁ NADA
if Val2( nColumna ) <= 0 Then
Exit Sub
end if

if Val2( nFila ) <= 0 Then Exit Sub end if ‘REALIZAMOS LA CONSULTA Set rstProds = CreaRecordSet( “SELECT * FROM prods WHERE etiquetas > 0 ORDER BY articulo”, Ambiente.Connection )

‘ESPECIFICAMOS EL LA SEPARACIÓN ENTRE CADA ETIQUETA, EN PIXELES, TANTO EN X(HORIZONTAL) COMO Y(VERTICAL)
nX = 2714.28571428571
nY = 725.714285714286

‘DEFINIMOS LOS MÁRGENES DE LA HOJA, EL SUPERIOR Y EL IZQUIERDO
nMargensuperior = 400
nMargenIzquierda = 828.57

While Not rstProds.EOF

cArticulo = Trim( rstProds(“articulo”) )
cDescrip = Trim( Mid(rstProds(“descrip”),1,16) ) & ” ” & Trim( rstProds(“modelo”) ) & ” ” & Trim( rstProds(“talla”) ) & ” ” & Formato( rstProds(“precio1?), “$##,##0.00? )
cEmpresa = Ambiente.Empresa

For i = 1 To rstProds(“Etiquetas”)

‘AQUÍ SE REALIZAN LAS OPERACIONES CON LAS VARIABLES QUE ANTES HABÍAMOS DEFINIDO
PosicionX = ((nX * nColumna) – nX) + nMargenIzquierda
PosicionY = ((nY * nFila) – nY) + nMargensuperior

‘EN LA SIGUIENTE LÍNEA, EL 10 ES EL GROSOR DE LAS BARRITAS, EL 200 ES LA ALTURA (EN PIXELS) DEL CÓDIGO DE BARRAS
Codigo39 PosicionX, PosicionY, 10, 200, cArticulo, True,, cDescrip

nColumna = nColumna + 1

‘EN EL SIGUIENTE BLOQUE ESPECIFICAMOS CUÁNTAS COLUMNAS VA A TENER LA HOJA TAMAÑO CARTA (EN ESTE CASO, 4)
if nColumna > 4 Then
nColumna = 1
nFila = nFila + 1
end if

if i = rstProds(“Etiquetas”) Then
Exit For
end if

‘EN EL SIGUIENTE BLOQUE ESPECIFICAMOS CUÁNTAS FILAS VA A TENER LA HOJA TAMAÑO CARTA (EN ESTE CASO, 20)
if nFila > 20 Then
nFila = 1
PaginaNueva

end if
Next
rstProds.MoveNext
Wend
FinDocumento
End Sub

 

Y listo!!!
ya tenemos nuestro formato totalmente funcional para imprimir.
Cabe aclarar que el rendimiento de una impresora láser es menor a comparación de una impresora especial para etiquetas, ya que la primera no está totalmente diseñada para este fin.

Espero sus comentarios y dudas.