Publicado el Dejar un comentario

Importar desde texto .txt

Este ejemplo muestra como importar un archivo txt


Sub Main()
Dim s, cliente, telefono, dondeEstaEltabulador
Dim Query, rstCliente

Set Query = NewQuery()
Set Query.Connection = Ambiente.Connection

CloseFile 1

OpenFile "c:\clientes.txt", 1

While Not FileEOF( 1 )

s = ReadLine( 1 )

dondeEstaEltabulador = clAt( Chr(9), s )
cliente = Mid( s, 1, dondeEstaElTabulador - 1 )
cliente = Replace( cliente, Chr(34), "" )

s = Mid( s, dondeEstaElTabulador + 1 )

dondeEstaEltabulador = clAt( Chr(9), s )
nombre = Mid( s, 1, dondeEstaElTabulador - 1 )
nombre = Replace( nombre, Chr(34), "" )

telefono = Mid( s, dondeEstaElTabulador + 1 )
telefono = Replace( telefono, Chr(34), "" )

Set rstCliente = Rst( _
"SELECT cliente FROM clients WHERE cliente = '" & cliente & "'", _
Ambiente.Connection )

Query.Reset

If rstCliente.EOF Then
Query.strState = "INSERT"
Else
Query.strState = "UPDATE"
Query.Condition = "cliente = '" & cliente & "'"
End If

' Tabla, campo, valor
Query.AddField "clients", "cliente", cliente
Query.AddField "clients", "nombre", nombre
Query.AddField "clients", "telefono", telefono
Query.CreateQuery
Query.Execute

Wend

CloseFile 1

End Sub

Esta función podría ser una opción para interconectar mybusiness pos con otras herramientas externas de una forma sencilla. Utilizo la importación para descifrar la respuesta de tiempo aire y funciona bastante bien.

Publicado el Dejar un comentario

Teclas de Función (F1 hasta F12) y KeyCode

En MyBusiness POS se pueden especificar algunas teclas de función para necesidades específicas. Por default, las teclas que están ocupadas son

  • F1. Ayuda desde MyBusiness POS.
  • F2. Menú de Opciones que muestra los comandos a ejecutar.
  • F5. Terminar una venta y abrir la ventana de Cobro rápido.
  • F7. Dejar la venta como pendiente. Esto puede ser de utilidad cuando un cliente aun no decide terminar las compras y con ello es posible atender a un segundo cliente en ese lapso de indecisión por parte del primero.
  • F8. Recuperar una venta de un cliente en específico.
  • F9. Coloca el foco en el textbox de Cliente.
  • F11. realiza corte X
  • F12. Realiza corte Z

Después de esta lista, es posible identificar las teclas de función que se encuentran disponibles:

  • F3. Libre
  • F4. Libre
  • F6. Libre
  • F10. Libre

El procedimiento que permite aplicar la personalización se llama PUNTOV080  (Configuración–Personalización–Procedimientos y rutinas de usuario–PuntoV080).

Es posible usar el KeyCode = Valor

Teclas de Función (F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12)

Constante Valor Descripción
vbKeyF1 112 Tecla F1
vbKeyF2 113 Tecla F2
vbKeyF3 114 Tecla F3
vbKeyF4 115 Tecla F4
vbKeyF5 116 Tecla F5
vbKeyF6 117 Tecla F6
vbKeyF7 118 Tecla F7
vbKeyF8 119 Tecla F8
vbKeyF9 120 Tecla F9
vbKeyF10 121 Tecla F10
vbKeyF11 122 Tecla F11
vbKeyF12 123 Tecla F12
vbKeyF13 124 Tecla F13
vbKeyF14 125 Tecla F14
vbKeyF15 126 Tecla F15
vbKeyF16 127 Tecla F16

Constantes de códigos de tecla

Constante Valor Descripción
vbKeyLButton 1 Botón primario del mouse
vbKeyRButton 2 Botón secundario del mouse
vbKeyCancel 3 Tecla CANCEL
vbKeyMButton 4 Botón central del mouse
vbKeyBack 8 Tecla RETROCESO
vbKeyTab 9 Tecla TAB
vbKeyClear 12 Tecla SUPR
vbKeyReturn 13 Tecla ENTRAR
vbKeyShift 16 Tecla MAYÚS
vbKeyControl 17 Tecla CTRL
vbKeyMenu 18 Tecla MENÚ
vbKeyPause 19 Tecla PAUSA
vbKeyCapital 20 Tecla BLOQ MAYÚS
vbKeyEscape 27 Tecla ESC
vbKeySpace 32 Tecla BARRA ESPACIADORA
vbKeyPageUp 33 Tecla RE PÁG
vbKeyPageDown 34 Tecla AV PÁG
vbKeyEnd 35 Tecla FIN
vbKeyHome 36 Tecla INICIO
vbKeyLeft 37 Tecla FLECHA IZQUIERDA
vbKeyUp 38 Tecla FLECHA ARRIBA
vbKeyRight 39 Tecla FLECHA DERECHA
vbKeyDown 40 Tecla FLECHA ABAJO
vbKeySelect 41 Tecla SELECT
vbKeyPrint 42 Tecla IMPRIMIR PANTALLA
vbKeyExecute 43 Tecla EXECUTE
vbKeySnapshot 44 Tecla SNAPSHOT
vbKeyInsert 45 Tecla INS
vbKeyDelete 46 Tecla SUPR
vbKeyHelp 47 Tecla AYUDA
vbKeyNumlock 144 Tecla BLOQ NUM

Desde KeyA hasta KeyZ son iguales a sus equivalentes ASCII: ‘A’ hasta ‘Z’

Constante Valor Descripción
vbKeyA 65 Tecla A
vbKeyB 66 Tecla B
vbKeyC 67 Tecla C
vbKeyD 68 Tecla D
vbKeyE 69 Tecla E
vbKeyF 70 Tecla F
vbKeyG 71 Tecla G
vbKeyH 72 Tecla H
vbKeyI 73 Tecla I
vbKeyJ 74 Tecla J
vbKeyK 75 Tecla K
vbKeyL 76 Tecla L
vbKeyM 77 Tecla M
vbKeyN 78 Tecla N
vbKeyO 79 Tecla O
vbKeyP 80 Tecla P
vbKeyQ 81 Tecla Q
vbKeyR 82 Tecla R
vbKeyS 83 Tecla S
vbKeyT 84 Tecla T
vbKeyU 85 Tecla U
vbKeyV 86 Tecla V
vbKeyW 87 Tecla W
vbKeyX 88 Tecla X
vbKeyY 89 Tecla Y
vbKeyZ 90 Tecla Z

Desde Key0 hasta Key9 son iguales a sus equivalentes ASCII: ‘0’ hasta ‘9’

Constante Valor Descripción
vbKey0 48 Tecla 0
vbKey1 49 Tecla 1
vbKey2 50 Tecla 2
vbKey3 51 Tecla 3
vbKey4 52 Tecla 4
vbKey5 53 Tecla 5
vbKey6 54 Tecla 6
vbKey7 55 Tecla 7
vbKey8 56 Tecla 8
vbKey9 57 Tecla 9

Teclas del teclado numérico

Constante Valor Descripción
vbKeyNumpad0 96 Tecla 0
vbKeyNumpad1 97 Tecla 1
vbKeyNumpad2 98 Tecla 2
vbKeyNumpad3 99 Tecla 3
vbKeyNumpad4 100 Tecla 4
vbKeyNumpad5 101 Tecla 5
vbKeyNumpad6 102 Tecla 6
vbKeyNumpad7 103 Tecla 7
vbKeyNumpad8 104 Tecla 8
vbKeyNumpad9 105 Tecla 9
vbKeyMultiply 106 Tecla SIGNO DE MULTIPLICACIÓN (*)
vbKeyAdd 107 Tecla SIGNO MÁS (+)
vbKeySeparator 108 Tecla INTRO (teclado numérico)
vbKeySubtract 109 Tecla SIGNO MENOS (-)
vbKeyDecimal 110 Tecla PUNTO DECIMAL (.)
vbKeyDivide 111 Tecla SIGNO DE DIVISIÓN (/)

Código para  Code39 en código de barras

Code39 Code128 Función Teclado  ASCII
A  A  A
B  B  B
C  C  C
D  D  D
E  E  E
F  F  F
G  G  G
H  H  H
I  I  I
J  J  J
K  K  K
L  L  L
M  M  M
N  N  N
O  O  O
P  P  P
Q  Q  Q
R  R  R
S  S  S
T  T  T
U  U  U
V  V  V
W  W  W
X  X  X
Y  Y  Y
Z  Z  Z
+A +A a
+B +B b
+C +C c
+D +D d
+E +E e
+F +F f
+G g g
+H h h
+I i i
+J j j
+K k k
+L l l
+M m m
+N n n
+O o o
+P p p
+Q q q
+R r r
+S s s
+T t t
+U u u
+V v v
+W w w
+X x x
+Y y y
+Z z z
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
/A ! !
/B
/C # #
/D $ $
/E % %
/F & &
/G
/H ( (
/I ) )
/J * *
/K + +
/L , ,
/M
/N . .
/O / /
/Z : :
%A ESC ESC (Escape)
%B SEPARADOR CAMPO FS (File Separator)
%C SEPARADOR GRUPO GS (Group Separator)
%D SEPARADOR REGISTRO RS (Record Separator)
%E SEPARADOR UNIDAD US (Unit Separator)
%F ; ;
%G < <
%H = =
%I > >
%J ? ?
%K [ [
%L \ \
%M ] ]
%N ^ ^
%O _ _
%P { {
%Q | |
%R } }
%S ~ ~
%T SUPRIMIR DEL
%U NULO NU (Null)
%V @ @
%W ` `
SP ESPACIO SP
TILDE (= or ~ in the fonts)
$A a INICIO DOCUMENTO SH (Start of Heading)
$B b INICIO DEL TEXTO SX (Start of Text)
$C c FINAL DEL TEXTO EX (End of Text)
$D d FINAL DEL DOCUMENTO ET (End of Transmission)
$E e EQ (Enquiry)
$F f AK (Acknowledge)
$G g BL (Bell-Audible of Attention Signal)
$H h BORRAR UN ESPACIO BS (Backspace)
$I i TABLUADOR HORIZONTAL HT (Horizontal Tabulation)
$J j SIGUIENTE LÍNEA LF (Line Feed)
$K k TABULADOR VERTICAL VT (Vertical Tabulation)
$L l FF (Form Feed)
$M m ENTER CR (Carriage Return)
$N n SHIFT SIN PRESIONAR SO (Shift Out)
$O o SHIFT PRESIONADO SI (Shift In)
$P p SHIFT DL (Data Link Escape)
$Q q F1 D1 (Device Control 1-XON)
$R r F2 D2 (Device Control 2)
$S s F3 D3 (Device Control 3-XOFF)
$T t F4 D4 (Device Control 4)
$U u F5 NK (Negative Acknowledge)
$V v F6 SY (Synchronous Idle)
$W w F7 EB (End of Transmission Block)
$X x F8 CN (Cancel)
$Y y F9 EM (End of Medium)
$Z z F10 SB (Substitute)
%B | F11 FS
%C } F12 GS
%D
%E
%F
%G (space)
%H page up
%I page down
%J end
%K home
%L left arrow
%M up arrow
%N right arrow
%O down arrow
%P insert
%Q delete
Publicado el 11 comentarios

Colocar logo en ticket USB


La ruta donde encontramos el formato de ticket dentro del business manager es: Configuración–Presonalización–Formatos del sistema–Ticket USB
Trataremos de identificar la línea que dice IniciaDocumento y debajo de esta podemos colocar el logo


IniciaDocumento 'tratamos de identificar esta línea, indica el inicio de la impresión

'Ruta del logo: C:\archivos de programa\MyBusiness POS 2012\images\logo.jpg
'El logo debe tener extensión logo.jpg
' Los valores Col(0), Row(0), Col(3),Row(4) son las coordenadas inicio y el tamaño

Picture Ambiente.path & "\Images\logo.jpg", Col(0), Row(0), Col(3),Row(4)
'EstableceImpresora "Mi Impresora laser" 'esta linea permite elegir impresora USB destino
EstableceFuente "Courier New", 8 'Fuente que tendra el ticket USB
Say 0,0.2, cSalida 'Alineación del texto, en pulgadas. cSalida es el texto a imprimir

FinDocumento 'Termina la Impresión USB
'

Publicado el Dejar un comentario

PUNTOV001

En ocasiones necesitamos ajustar las columnas del punto de venta o hacer algunas modificaciones que nos permitan utilizar de manera más cómoda el punto de venta.
A continuación explico un poco sobre un procedimiento que viene en MyBusiness Pos, llamado PUNTOV001. Este se encuentra dentro del business manager, en la ruta configuracion–personalizacion–procedimientos y rutinas de usuario


'Este procedimiento se ejecuta al abrir el punto de venta

Sub Main()

' Si la ventana va a aparecer maximizada
'Me.windowsMode = 0
'Titulo que aparece en la parte superior izquierda
Me.Caption = Ambiente.Empresa
'Formato con decimales
Me.formatoDeDinero = "##,##0.00"
Me.formatoDeDineroTotales = "##,##0.00"
Me.formatoDeDescuento = "##,##0"

Version2005 'llama a la función que tiene las dimensiones de algunas columnas
Me.MaxPartidas = 8 ' máximo registros que aparecen en el PV

' Limpiamos los mensajes
txtFields(3) = "" 'Libera el campo inferior izquierdo

' La variable reload si es falsa indica que la ventana del punto de venta
' todavia no realiza una venta
if Reload = False Then
Ambiente.Tag = 2
Script.RunProcess "PUNTOV053", Parent, Ambiente
end if ' invoca un procedimiento llamado puntov053

'txtFields(1) = Ambiente.Uid
fg2.Redraw = False 'desactiva el ajuste de malla
AjustaFlexGrid fg2 ' Toma las dimensiones de la malla a la pantalla
fg2.Redraw = True 'ejecuta el ajuste

' Coloca o quita la columna del impuesto
'fg2.ColWidth(5) = 1000

If Trim("" & Ambiente.rstEstacion("serieRemision")) = "" Then
Me.consecutivoRemisiones = Ambiente.Estacion & "Remision"
Else
Me.consecutivoRemisiones = Trim( "" & Ambiente.rstEstacion("serieRemision") ) & "Remision"
End If

If Trim("" & Ambiente.rstEstacion("serieTicket")) = "" Then
Me.consecutivoTickets = Ambiente.Estacion & "Ticket"
Else
Me.consecutivoTickets = Trim("" & Ambiente.rstEstacion("serieTicket")) & "Ticket"
End If
'Tpma los consecutivos de facruración
Me.serieFactura = Trim("" & Ambiente.rstEstacion("serieFactura"))
Me.serieTicket = Trim("" & Ambiente.rstEstacion("serieTicket"))
Me.serieRemision = Trim("" & Ambiente.rstEstacion("serieRemision"))

If Trim(Me.serieTicket) = "" Then
Me.serieTicket = Ambiente.Estacion
End If

If Trim(Me.serieRemision) = "" Then
Me.serieRemision = Ambiente.Estacion
End If
'Me.modeloScanner = "Scanner"
'Me.ActivaScannerOPOS

Me.usuarioRequerido = 0
fg2.ColWidth(18) = 0 'oculta la columna al dejarla en 0px de ancho

End Sub

Sub Version2005()

'Este bloque de código es el que
'permite ajustar las columnas en el punto de venta

'Me.DevolverEfectivo = True
Me.DevolverEfectivo = False

FormatoCantidad = "##,##0.000"
TimerComodin.Enabled = False
TimerComodin.Interval = 4000
TimerComodin.Enabled = True

fg2.ColWidth(6) = 5000 ' columna de descripción
fg2.ColWidth(9) = 1200 'columna de Precio de Lista (1, 2, 3, 4)

'fg2.ColWidth(1) = 1200 'Columna de Cantidad (QTY)
'fg2.ColWidth(2) = 1200 'Columna de Precio Unitario, sin incluir impuestos

'fg2.ColWidth(3) = 1200 'Columna de Descuento en Porcentaje (%)
'fg2.ColWidth(4) = 1200 'Columna de Importe

'fg2.ColWidth(5) = 1200 'Columna de Impuesto en Porcentaje (%)
'fg2.ColWidth(6) = 1200 'Columna de Descripción de Artículo

'fg2.ColWidth(7) = 1200 'Columna de Número de salida en el Kárdex
'fg2.ColWidth(8) = 1200 'Columna de Almacén del que se toma la mercancía

'columnas de presentaciones
'fg2.ColWidth(11) = 1200 'cantidad por presentación
'fg2.ColWidth(10) = 1200 'descripción de presentación

'fg2.ColWidth(12) = 1200 'Costo de producto
'fg2.ColWidth(13) = 1200 'Columna especial para viaje
'fg2.ColWidth(14) = 1200 'Columna de Impuesto especial
'fg2.ColWidth(15) = 1200 'Columna Precio Unitario, con impuesto

'fg2.ColWidth(16) = 1200 'Columna Importe total, con impuesto
'fg2.ColWidth(17) = 1200 'Columna Donativo
'fg2.ColWidth(18) = 1200 'columna para Incluir en el próximo CorteZ

End Sub
'

Publicado el 5 comentarios

Funciones para impresión de Ticket

Existen varias formas imprimir un ticket de venta tanto en pantalla como en la miniptinter.
El formato de ticket se encuentra en la ruta del business manager: configuración–personalizacion–formatos del sistema–TICKET. Abrir el código con doble clic e ir al final de este hasta identificar esta línea que se refiere a la impresión; ahí es posible aplicar diferentes opciones de impresión:

Script.sendToPrinter Ambiente, (cSalida), prn.Pantalla

Si queremos imprimir en USB, colocar:

'Código para impresora conectada por cable USB
'o para la impresora predeterminada de Windows).
IniciaDocumento
' EstableceImpresora "Mi Impresora laser" 'esta linea permite elegir impresora USB destino
EstableceFuente "Courier New", 8 'Fuente que tendra el ticket USB
Say 0,.2, cSalida 'Alineación del texto, en pulgadas. cSalida es el texto a imprimir
FinDocumento 'Termina la Impresión USB
'Exit Sub
'Exit Sub es por si deseamos que termine el proceso y saltar las lineas de código que le preceden
'

Si deseamos imprimir en impresora conectada por cable LPT:

'Función para impresora conectada por cable LPT
'Impresión de ticket, corteX y CorteZ _
Enviamos a la impresorade tickets que está configurada en ESTACION01
Script.sendToPrinter Ambiente, (cSalida), prn.Pantalla 'cSalida es el texto que se imprimirá
'

Si deseamos ver el texto del ticket en una ventana emergente:

MsgBox ("" & cSalida) 'cSalida es el texto que se visualizará
'

Una segunda opción para visualizar el el texto del ticket en una ventana emergente.

Mymessage "" & cSalida 'cSalida es el texto que se visualizará
'