Publicado el 4 comentarios

Alinear y Centrar el texto del ticket con PadC, PadL y PadR

Alinear_centrar_texto_mybusinessposEn este ejemplo veremos cómo alinear el texto de un ticket con las funciones

  • PadL(cadenaTexto,Longitud). Rellena de espacios a la izquierda; Alineación a la Derecha
  • PadR(cadenaTexto,Longitud). Rellena de espacios a la derecha; Alineación a la Izquierda
  • PadC(cadenaTexto,Longitud). Rellena de espacios al centro; Alineación Centrado


Para lograrlo, crearemos tres funciones, aunque PadL ya viene por default, aquí la colocaremos.

Sub Main()
'La letra posterior a PAD es el lado que se rellenará de espacios
a = padL ("Frase de prueba",40) 'Relleno IZQUIERDO. Alinea a la derecha
b = PadC ("Frase de prueba",40) 'Ambos lados. Alinear al centro
c = PadR ("Frase de prueba",40) 'Relleno DERECHO. Alineación a la izquierda

mymessage "PadL: '" & a & "'" & vbcrlf & _
"PadC: '" & b & "'" & vbcrlf &_
"PadR: '" & c & "'"

End Sub

'PADL() Alineación a la DERECHA inserta los caracteres de relleno a la Izquierda
Function PadL(cadena,nLongitud)
dim clen
dim temp
dim char
char = " " 'espacio en blanco
on error resume next
'Tomamos la cadena enviada en el parámetro
'eliminando los chares vacios izq-dch
temp = trim(cadena)
clen = len(temp)
for n=1 to nLongitud
char = char & " "
Next

'Analizamos si la nLongitud justificada es menos
'que la propia cadena enviada en parámetro.
if clen < nLongitud then temp = mid(char,1,nLongitud - clen) & temp 'Alineación a la Derecha end if PadL = temp end function 'PADR() Alineación a la IZQUIERDA inserta los caracteres de relleno a la derecha Function PadR(cadena,nLongitud) dim clen dim temp char = " " 'espacio en blanco on error resume next 'Tomamos la cadena enviada en el parámetro 'eliminando los chares vacios izq-dch temp = trim(cadena) clen = len(temp) for n=1 to nLongitud char = char & " " Next 'Analizamos si la nLongitud justificada es menos 'que la propia cadena enviada en parámetro. if clen < nLongitud then temp = temp & mid(char,1,nLongitud - clen) 'Alineación a la Izquierda end if PadR = temp end function 'PADC() Alineación al CENTRO inserta los caracteres de relleno a ambos lados Function PadC(cadena,nLongitud) dim clen dim temp char = " " 'espacio en blanco 'on error resume next 'Tomamos la cadena enviada en el parámetro 'eliminando los chares vacios izq-dch temp = trim(cadena) clen = len(temp) for n = 1 to nLongitud char = char & " " Next 'Espacios al lado Izquierdo nEspaciosA = formato((nLongitud - clen)/2 , "#.0") DondeEstaElPunto = clAt( ".", nEspaciosA ) - 1 'Espacios al lado derecho nEspaciosA = mid(nEspaciosA,1,DondeEstaElPunto) nEspaciosB = nLongitud -clen - nEspaciosA 'Analizamos si la nLongitud justificada es menos 'que la propia cadena enviada en parámetro. if clen < nLongitud then temp = mid(char,1,nEspaciosA) & _ temp & _ mid(char,1,nEspaciosB) 'Alineación a la Izquierda end if PadC = temp end function

Espero sea de utilidad estas funciones que dejo a su disposición en espera de que correspondan con un pomo para seguir inspirados.
Saludos
José Félix

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 Dejar un comentario

Al dar un clic en un módulo adicional de la barra de tareas

Este es el código fuente del Procedimiento RUNBARRA
RUNBARRA almacena todas las acciones que realizan los iconos de la ventana principal del sistema.
Aqui podemos hacer algunos ajustes para ejecutar nuestras Formas desarrolladas con el Editor de “Ambiente de desarrollo”
' Mybusiness POS v. 2011
Sub Main()
Dim Ventas

Select Case Ambiente.Tag
Case "Series"
Script.RunForm "SERIES", Parent, Ambiente,, False
Case "Verificador"

If Question( "Desea activar el verificador de precios (recuerde desactiva la ventana con ...1 y enter)", 1 ) Then
MuestraVerificador
End If

Case "Reconectar"
CreaConexiones
Case "AltaRapida"
Script.RunForm "ALTARAPIDA", Parent, Ambiente,, False
Case "AltaHotel"
Script.RunForm "ALTASERVICIOS", Parent, Ambiente,, False
Case "MySQLPass"
Script.RunForm "PASSMYSQL", Parent, Ambiente,, False
Case "HotSync"
Script.RunProcess "HOTSYNC", Parent, Ambiente
Case "Ofertas"
Script.RunForm "OFERTAS", Parent, Ambiente,, False
Case "CambioPrecio"
Script.RunForm "CAMBIOPRECIO", Parent, Ambiente,, False
Case "Procedimientos"
MuestraNodo "Procedimientos"
Case "Formatos"
MuestraNodo "formatos"
Case "Reportes"
MuestraNodo "Reportes"
Case "Hermes"
Script.RunForm "OFERTAS2", Parent, Ambiente,, False
Case "Etiquetas2"
Script.RunForm "ETIQUETA2", Parent, Ambiente,, False
Case "InvExcel"
Script.RunForm "PRODSEXCEL", Parent, Ambiente,, False
Case "estados"
Script.RunForm "ESTADOS", Parent, Ambiente,, False
Case "EditarCB"
MuestraDEtiquetas
Case "EditarTicket"
Script.RunForm "EDITORTICKET", Me, Ambiente,, False
Case "EditarGuion"
Script.RunForm "EDITORMENSAJE", Me, Ambiente,, False
Case "Pls2001"
Script.RunForm "EPLS2000", Me, Ambiente,, False
Case "Repartidor"
Script.RunForm "ALTAREPARTIDOR", Me, Ambiente,, False
Case "ImpVentas"
Script.RunForm "IMPVENTAS2", Me, Ambiente,, False
Case "Pacientes"
Script.RunForm "PACIENTES", Me, Ambiente,, False
Case "Bitacoras"
Script.RunForm "BITACORAS", Me, Ambiente,, False
Case "SubirBitacora"
Script.RunForm "SUBIRBITACORAS", Me, Ambiente,, False
Case "prospectos"
' Script puede ejecutar un proceso, una forma de captura, un reporte
' o un formato impreso
Script.RunForm "PROSPECTOS", Me, Ambiente,, False
Case "PreciosEspeciales"
Script.RunForm "PRECIOSESPECIALES", Me, Ambiente,, False

Case "Recostear"
Script.RunForm "COSTEO", Me, Ambiente,, False

Case "Touch"

Set Ventas = CreateObject("MyBVentas.ventas")
Set Ventas.Ambiente = Ambiente
Ventas.ActivaTouch

Case "PuntoVenta2"

Set Ventas = CreateObject("MyBVentas.ventas")
Set Ventas.Ambiente = Ambiente
Ventas.ActivaPuntoDeVenta2

Case "Recalcular"
If Question( "Desea recalcular el inventario", 1 ) Then
Call RecDelta()
End If

Case "Servicios"

ejecuta "CD010"

Case "DatosGenerales"

Me.DatosEmpresa

Case "Mantenimiento"

RepararBaseDedatos

Case "FormatosImpresion"

Formatos

Case "Consecutivos"

'Consecutivos
SetSessionValue Ambiente, "FORMPADRECONSEC", "BUSINESSMANAGER"
Script.RunForm "CONSECUTIVOS", Me, Ambiente,, True

Case "GeneralConsecutivos"

Script.RunForm "TODOSLOSCONSECUTIVOS", Me, Ambiente,, True

Case "BorrarBase"

EliminaDatos

Case "AltaEmpresa"

Script.RunForm "DATOSEMPRESA", Me, Ambiente,, False

Case "CambiarEmpresa"

CambiaEmpresa

Case "RegistroDeLicencia"

AcercaDe

Case "ConfigGeneral"

ConfigGeneral

Case "SincronizarProcedimientos"

SincronizarProcedimientos

Case "Rangos"

establecerPeriodosDeCarpetas

Case "configpocket"
Script.RunForm "CONFIGPOCKETPC", Me, Ambiente,, True
Case "inventariopocket"
Script.RunForm "ENTRADAPOCKET", Me, Ambiente,, True
Case "pocket"
Script.RunForm "EXPORTAIMPORTAPOCKET", Me, Ambiente,, True
'Script.RunProcess "EXPORTAINFOTOPOCKET", Parent, Ambiente
Case "confirmaventas"
Script.RunForm "CONFIRMAVENTAS", Me, Ambiente,, True
Case "creanotas"
Script.RunForm "AsistenteNotasPocket", Me, Ambiente,, True
'Case "creainventariofisico"
'Script.RunForm "INVFISICOPOCKET", Me, Ambiente,, True
Case "reportepedidospk"
EjecutaReporte "PEDIDOSMOBILE"
Case "cargainicial"
EjecutaReporte "PRODSPOCKET"
Case "ventaspendientes"
EjecutaReporte "VENTASMOBILE"
Case "articulosvendidos"
EjecutaReporte "VENTAPRODSMOBILE"

Case "HojaInventario"

Script.RunForm "HOJACOSTOS", Me, Ambiente,, False
'muestraHojaDeInventario

Case "CobroCaja"

Set ventas = CreateObject( "MyBVentas.ventas" )
Set ventas.Ambiente = Me.Ambiente
Ventas.MuestraCobroEncaja

Case "Consulta"

Script.RunForm "CONSULTA", Me, Ambiente,, False

Case "etenvio"

Script.RunForm "ETENVIO", Me, Ambiente,, False

Case "FacturaCierre"

Script.Runform "FACTURADECIERRE", Me, Ambiente,, False

Case "series"

activaSeriesSalida

Case "lotes"

activaFormaDeLotes

Case "CambioCosto"

activaFormaDeCambiosDeCosto

Case "ReportesFinancieros"

ShellRun Me.hWnd, "Open", "http://localhost:4410/index.myweb?newsession"

Case "seriesseguimiento"

Script.RunForm "RASTREOSERIE", Me, Ambiente,, False

Case "MBInventario"

Set MBInventario = CreateObject( "MyBArticulos.Articulos" )
Set MBInventario.Ambiente = Ambiente
MBInventario.muestraMBInventario

Case "ordenproduccion"

Set p = CreateObject( "MyBProduccion.produccion" )
Set p.Ambiente = Ambiente
p.NuevaOp

Case "capturaetiquetas"

Set p = CreateObject( "MyBProduccion.produccion" )
Set p.Ambiente = Ambiente
p.MuestraCapturaDeFracciones

Case "seguimiento"

Set p = CreateObject( "MyBProduccion.produccion" )
Set p.Ambiente = Ambiente
p.muestraSeguimiento

Case "destajo"

Script.RunForm "DESTAJO", Me, Ambiente,, False

Case "ordenservicio"

Script.RunForm "ORDENES", Me, Ambiente,, False

Case "BuscarTicket"

Script.RunForm "BUSCATICKET", Me, Ambiente,, False

Case "existenciaremota"

Script.RunForm "EXISTENCIAREMOTA", Me, _
Ambiente, , False

Case "Abonos"

Set Cobranza = CreateObject( "MyBCobranza.Cobranza" )
Set Cobranza.Ambiente = Ambiente
Cobranza.NuevoAbono

Case "ImportarMySQL"

Script.RunForm "IMPORTAMYSQL", Me, Ambiente,, False

Case "Analisis"

Script.RunForm "PRODUCTOSSUGERIDO", Me, Ambiente,, False

Case "UEPS"

Script.RunForm "COSTEOUEPS", Me, Ambiente,, False

Case "PEPS"

Script.RunForm "COSTEOPEPS", Me, Ambiente,, False

Case "Secciones"

Script.RunForm "BUSQUEDASECCIONES", Me, Ambiente,, False

Case "Comandas"

Script.RunProcess "AAMESAS", Me, Ambiente

Case "Reservaciones"

Script.RunProcess "AARESERVACIONES", Me, Ambiente

Case "Backup"

Script.RunForm "RESPALDOBASEDEDATOS", Me, Ambiente,, False

Case "Menu"

Script.RunForm "CATEGORIASMENU", Me, Ambiente,, True

Case "r_impresoras"

Script.RunForm "IMPRESORAS", Me, Ambiente,, True

Case "CierreTienda"

Script.RunForm "CORTETIENDA", Me, Ambiente,, True

Case "Huella"

Script.RunHuellaForm "REGISTROACCESO", Me, Ambiente,, True
Case "PruebaHuella"

Script.RunHuellaForm "TESTFINGER", Me, Ambiente,, True

Case "Clientes2"

Script.RunForm "CLIENTES", Me, Ambiente,, False

Case "Proveedores2"

Script.RunForm "PROVEEDORES", Me, Ambiente,, False

Case "FPersonalizados"

Script.RunForm "GENERADORDOCUMENTOS", Me, Ambiente,, False

Case "materiales"

Script.RunForm "HOJADEMATERIALES", Me, Ambiente,, False

Case "imc"

Script.RunForm "IMC", Me, Ambiente,, True

Case "RemisionFactura"

Script.RunForm "REMISIONFACTURA", Me, Ambiente,, True

Case "ImpClientes"

Script.RunForm "IMPORTACLIENTES", Me, Ambiente,, True

Case "ImpProveedores"

Script.RunForm "IMPORTAPROVEEDORES", Me, Ambiente,, True

Case "CambioPrecio"

Script.RunForm "CAMBIOPRECIO", Me, Ambiente,, True
case "ConfigSucursal"

Script.RunForm "CONEXIONES", Me, Ambiente,, True

Case "FacturaElectronica"
ConfigFile = Ambiente.Path + "\econfig.txt"
BatchFile = Ambiente.Path + "\FElectronica.bat"

Set rstConfiguracion = CreaRecordSet("select * from FEConfig ", Ambiente.Connection)
if not rstConfiguracion.EOF then
Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(ConfigFile) Then
fso.DeleteFile ConfigFile
End if
If fso.FileExists(BatchFile) Then
fso.DeleteFile BatchFile
End if
If not fso.FolderExists(rstConfiguracion("FileLocation")) Then
fso.CreateFolder(rstConfiguracion("FileLocation"))
End if

outline BatchFile,"@echo off" + vbCrLf
outline BatchFile,"cd " + Ambiente.Path + vbCrLf
outline BatchFile,"start /wait FElectronica.exe" + vbCrLf
outline BatchFile,"exit" + vbCrLf

'ambiente.connection.execute "exec FEInicializaSerie '"+ trim(ambiente.estacion) + "'"
outline ConfigFile,ambiente.connection + vbCrLf
ShellRun Me.hWnd, "Open",Ambiente.Path + "\FElectronica.bat"
end if

Case "Tallas"

Script.RunForm "TallaColModelos", Me, Ambiente,, True
End Select

End Sub

Sub ejecuta( nombreProcedimiento )
Dim rstFormato

Set rstFormato = CreaRecordSet( _
"SELECT * FROM formatos WHERE formato = '" & nombreProcedimiento & "'",_
Ambiente.Connection )

If rstFormato.EOF Then
Exit Sub
End If

' 1.- Tipo de programa
' 2.- Codigo de programacion
' 3.- El objeto Ambiente
' 4.- El objeto padre
Script.Preview rstFormato("tipo"), rstFormato("codigo"), Ambiente, Me

End Sub

Sub EjecutaReporte(reporte)

Dim rstReporte

Set rstReporte = Rst("SELECT * FROM formatosdelta WHERE formato = '" & reporte & "'", Ambiente.Connection )

If rstReporte.EOF Then
Exit Sub
End If

Script.Preview rstReporte("tipo"), rstReporte("codigo"), Ambiente, Me, rstReporte("formato"), ""

End Sub

Publicado el Dejar un comentario

Al iniciar el sistema

Este es el código fuente del Procedimiento INICIO001
INICIO001 almacena todos los iconos y procedimientos necesarios en la ventana principal del sistema.
Aqui podemos hacer algunos ajustes para agregar iconos de nuestras Formas desarrolladas con el Editor de “Ambiente de desarrollo”
' Mybusiness POS v. 2011
Sub Main()
Dim adXactReadSerializable
Dim adXactReadUncommitted
Dim adXactReadCommitted
Dim adXactRepeatableRead

adXactReadSerializable = 1048576
adXactReadUncommitted = 256
adXactReadCommitted = 4096
adXactRepeatableRead = 65536

‘ Establecemos el modo de Aislamiento
‘Ambiente.Connection.Execute “SET TRANSACTION ISOLATION LEVEL SERIALIZABLE”
Ambiente.Connection.IsolationLevel = adXactReadSerializable

Parent.Timer.Enabled = True
Ambiente.eventRowReports = true
Ambiente.ModoDeDepuracion = True

‘ Cargamos el listado de Iconos
ModoAvanzado

‘ Vemos si el usuario tiene pendientes
‘Call buscaPendientes

‘Set NodX = bmForm.tvTreeView.Nodes.Add(“Business”, 4, “CarpetaDeUsuario1”, “Carpeta Personalizada”, 1, 2)

End Sub

Sub ModoAvanzado()

Dim rstUsuario

On Error Resume Next
vbalListBar1.Width = Me.Width / 4
On Error Goto 0

‘ Vemos si el usuario es supervisor
Set rstUsuario = CreaRecordSet( “SELECT supervisor FROM usuarios WHERE usuario = ‘” & Ambiente.Uid & “‘”, Ambiente.Connection )

‘Me.vbalImageList1.AddFromFile Ambiente.Path & “\images\recostear.ico”, 1, “recostear”
‘Eventos

vbalListBar1.Bars.Clear

With vbalListBar1

If parent.bIconosNuevos = True Then
.ImageList = imgBarra
Else
.ImageList = vbalImageList1
End If

.Bars.Add ,”Ventas”, “Ventas”
.Bars.Add ,”Restaurante”, “Restaurante”

.Bars.Add ,”Compras”, “Compras”
.Bars.Add ,”Inventario”, “Inventario”
.Bars.Add ,”Utilerias”, “Utilerias”
.Bars.Add ,”TiempoAire”, “Tiempo Aire”
.Bars.Add ,”FacElectronica”, “Factura Electrónica”
.Bars.Add ,”Mobile Business”, “Mobile Business”

‘.Bars.Add ,”Produccion”, “Producción”

‘ Bars.Add agrega una pestaña a la barra de tareas
‘ Opcional 1.- El indice de la barra, 2.- La llave
‘ de la barra, 3.- El titulo de la barra
‘.Bars.Add ,”cursoveracruz”, “Curso Veracruz”

‘ Items.Add agrega un icono a la pestaña indicada
‘ Opcional 1.- El indice, 2.- La llave del icono,
‘ 3.- Titulo del icono, 4.- Un indice que representa
‘ un icono entre 1 y 140
‘.Bars(“cursoveracruz”).Items.Add ,”existenciaremota”, _
‘”Existencias en sucursales”, 110

‘ Le damos acceso a la parte de programación solo si es supervisor
If rstUsuario(“supervisor”) <> 0 Then
.Bars.Add ,”Configuracion”, “Configuración”
.Bars.Add ,”Programacion”, “Programación”
End If

For n = 1 To .Bars.Count
.Bars(n).State = 0
Next

.Bars(“ventas”).State = 1

.Bars(“Inventario”).Items.Add ,”Articulos”, “Artículos”, 2
.Bars(“Inventario”).Items.Add ,”AltaRapida”, “Alta Rápida (Artículos)”, 45
.Bars(“Inventario”).Items.Add ,”Tallas”, “Tallas y Colores por Modelo”, 19
.Bars(“Inventario”).Items.Add ,”InvExcel”, “Importar artículos y existencia desde excel(tm)”, 98
.Bars(“Inventario”).Items.Add ,”Entradas”, “Entradas al Inventario”, 25
.Bars(“Inventario”).Items.Add ,”Salidas”, “Salidas al Inventario”, 26
.Bars(“Inventario”).Items.Add ,”Fisico”, “Inventario físico”, 27
.Bars(“Inventario”).Items.Add ,”Recalcular”, “Recalcular Inventario (Promedio)”, 29

.Bars(“Inventario”).Items.Add ,”UEPS”, “Recalcular Costeo (UEPS)”, 130
.Bars(“Inventario”).Items.Add ,”PEPS”, “Recalcular Costeo (PEPS)”, 128

.Bars(“Inventario”).Items.Add ,”HojaInventario”, “Resumen de operaciones”, 65

‘.Bars(“Inventario”).Items.Add ,”Recostear”, “Recostear Inventario”, 99

‘.Bars(“Inventario”).Items.Add ,”PedidosOrdenes”, “Recalcular por surtir y por recibir”, 35
‘.Bars(“Inventario”).Items.Add ,”Cerrar”, “Cerrar inventario”, 30

‘Rosy 08-Noviembre-2006
‘If clAt(“MySQL”,Ambiente.Connection.ConnectionString) Then
.Bars(“Inventario”).Items.Add ,”CalidadInventario”, “Informe de Calidad de Inventario”, 34
‘.Bars(“Inventario”).Items.Add ,”CalidadInventario2″, “Informe de Calidad de Inventario (Solo nuevos)”, 62
‘End If
‘Rosy

.Bars(“Inventario”).Items.Add ,”series”, “Números de serie”, 101
.Bars(“Inventario”).Items.Add ,”lotes”, “Lotes”, 51
.Bars(“Inventario”).Items.Add ,”Analisis”, “Analisis de Inventario”, 121

.Bars(“Ventas”).Items.Add ,”PuntoVenta”, “Punto de venta”, 7
.Bars(“Ventas”).Items.Add ,”CierreTienda”, “Resumen general de operaciones”, 136
.Bars(“Ventas”).Items.Add ,”RemisionFactura”, “Convertir remisiones a factura”, 137

.Bars(“Ventas”).Items.Add ,”Pedidos”, “Pedidos de clientes”, 4
.Bars(“Ventas”).Items.Add ,”Facturas”, “Facturas”, 5
.Bars(“Ventas”).Items.Add ,”Remisiones”, “Remisiones”, 6
.Bars(“Ventas”).Items.Add ,”Clientes2″, “Clientes”, 16
.Bars(“Ventas”).Items.Add ,”ImpClientes”, “Importar catálogo de clientes desde Excel(tm)”, 130
.Bars(“Ventas”).Items.Add ,”Cobranza”, “Cobranza”, 10
.Bars(“Ventas”).Items.Add ,”Devoluciones”, “Devoluciones / Notas de crédito”, 22

.Bars(“Compras”).Items.Add ,”OrdenesDeCompra”, “Ordenes de Compra”, 8
.Bars(“Compras”).Items.Add ,”Compras”, “Compra”, 9
.Bars(“Compras”).Items.Add ,”DevComp”, “Devolución de compra”, 24
.Bars(“Compras”).Items.Add ,”Proveedores2″, “Proveedores”, 17
.Bars(“Compras”).Items.Add ,”ImpProveedores”, “Importar catálogo de proveedores desde Excel(tm)”, 130
.Bars(“Compras”).Items.Add ,”Cxp”, “Cuentas por pagar”, 11

.Bars(“Utilerias”).Items.Add ,”EditarTicket”, “Editar texto del ticket”, 96

.Bars(“Utilerias”).Items.Add ,”Etiquetas”, “Etiquetas de código de barras”, 39
.Bars(“Utilerias”).Items.Add ,”FPersonalizados”, “Formatos personalizados (Requiere Microsoft Word)”, 139

.Bars(“Utilerias”).Items.Add ,”Ofertas”, “Ofertas”, 134
.Bars(“Utilerias”).Items.Add ,”CambioPrecio”, “Cambios de precios”, 65
.Bars(“Utilerias”).Items.Add ,”Bitacoras”, “Bitacoras”, 41
.Bars(“Utilerias”).Items.Add ,”SubirBitacora”, “Subir Bitacoras”, 98
‘.Bars(“Utilerias”).Items.Add ,”Telemercadeo”, “Telemercadeo”, 13
‘.Bars(“Utilerias”).Items.Add ,”Pendientes”, “Pendientes”, 14
.Bars(“Utilerias”).Items.Add ,”EditarFacturas”, “Editar formato de factura”, 7
.Bars(“Utilerias”).Items.Add ,”EditarRemisiones”, “Editar formato de remisiones”, 7
.Bars(“Utilerias”).Items.Add ,”EditarNc”, “Editar formato de Notas de Crédito”, 7
‘.Bars(“Utilerias”).Items.Add ,”EditarClientes”, “Cartas personalizadas”, 7
‘.Bars(“Utilerias”).Items.Add ,”Pls2001″, “Generar PLU Para Torrey PLS 2001”, 94
.Bars(“Utilerias”).Items.Add ,”Verificador”, “Verificador”, 36
.Bars(“Utilerias”).Items.Add ,”Backup”, “Respaldo”, 142
.Bars(“Utilerias”).Items.Add ,”Huella”, “Registro de entradas/Salidas de personal”, 144
.Bars(“Utilerias”).Items.Add ,”PruebaHuella”, “Prueba Huella”, 144
.Bars(“Utilerias”).Items.Add ,”MBInventario”, “MyBusiness Inventario”, 129

‘.Bars(“Produccion”).Items.Add ,”ordenproduccion”, “Orden de producción”, 119
‘.Bars(“Produccion”).Items.Add ,”capturaetiquetas”, “Captura de etiquetas”, 120
‘.Bars(“Produccion”).Items.Add ,”seguimiento”, “Seguimiento del proceso”, 121
‘.Bars(“Produccion”).Items.Add ,”destajo”, “Pago del destajo”, 122

.Bars(“TiempoAire”).Items.Add ,”ActualizarMontos”, “Actualizar montos para venta de tiempo aire”, 69

.Bars(“FacElectronica”).Items.Add ,”ConfigSucursal”, “Configuración de Sucursales”, 102
.Bars(“FacElectronica”).Items.Add ,”FacturaElectronica”, “Emisión de Facturas Electrónicas”, 102

.Bars(“Mobile Business”).Items.Add ,”configpocket”, “Configurar Pocket PC”, 48
.Bars(“Mobile Business”).Items.Add ,”inventariopocket”, “Capturar Inventario de la Pocket PC”, 2
.Bars(“Mobile Business”).Items.Add ,”pocket”, “Exportar/Importar datos a Pocket PC”, 71
‘.Bars(“Mobile Business”).Items.Add ,”confirmaventas”, “Confirmar ventas de Pocket PC”, 5
.Bars(“Mobile Business”).Items.Add ,”creanotas”, “Asistente de devoluciones en Pocket PC”, 6
‘.Bars(“Mobile Business”).Items.Add ,”creainventariofisico”, “Aplicar Inventario Físico de Pocket PC”, 27
.Bars(“Mobile Business”).Items.Add ,”reportepedidospk”, “Reporte de Pedidos de la Pocket PC”, 121
.Bars(“Mobile Business”).Items.Add ,”cargainicial”, “Reporte de productos cargados inicialmente a la Pocket PC”, 22
.Bars(“Mobile Business”).Items.Add ,”ventaspendientes”, “Reporte de ventas generadas por la Pocket PC”, 4
.Bars(“Mobile Business”).Items.Add ,”articulosvendidos”, “Reporte de artículos vendidos desde la Pocket PC”, 108

If rstUsuario(“supervisor”) <> 0 Then

‘.Bars(“Configuracion”).Items.Add ,”DatosGenerales”, “Conexión a la base de datos”, 100
.Bars(“Configuracion”).Items.Add ,”ConfigGeneral”, “Datos generales de la empresa”, 109

If clAt( “MySQL”, Ambiente.Connection ) Then
.Bars(“Configuracion”).Items.Add ,”Mantenimiento”, “Mantenimiento a la base de datos”, 101
End If

.Bars(“Configuracion”).Items.Add ,”FormatosImpresion”, “Establecer Formatos de Impresión”, 102
.Bars(“Configuracion”).Items.Add ,”Consecutivos”, “Consecutivos de impresión”, 103
.Bars(“Configuracion”).Items.Add ,”GeneralConsecutivos”, “General de consecutivos de impresión”, 117
.Bars(“Configuracion”).Items.Add ,”BorrarBase”, “Borrar Base de Datos”, 104
.Bars(“Configuracion”).Items.Add ,”AltaEmpresa”, “Manejo de conexiones a base de datos”, 105
.Bars(“Configuracion”).Items.Add ,”CambiarEmpresa”, “Cambiar de conexión”, 106
.Bars(“Configuracion”).Items.Add ,”SincronizarProcedimientos”, “Sincronizar Procedimientos”, 110
.Bars(“Configuracion”).Items.Add ,”Rangos”, “Rangos de vista del Business Manager”, 111
.Bars(“Configuracion”).Items.Add ,”RegistroDeLicencia”, “Acerca de…”, 107
.Bars(“Programacion”).Items.Add ,”EditorFormas”, “Ambiente de desarrollo”, 42
.Bars(“Programacion”).Items.Add ,”Busquedas”, “Editor de busquedas”, 18
.Bars(“Programacion”).Items.Add ,”EditorSQL”, “Editor de SQL”, 19
.Bars(“Programacion”).Items.Add ,”ImportarMySQL”, “Importar de MySQL”, 101
End If

.Bars(“Restaurante”).Items.Add ,”Secciones”, “Secciones”, 137
.Bars(“Restaurante”).Items.Add ,”r_impresoras”, “Impresoras”, 143

.Bars(“Restaurante”).Items.Add ,”Touch”, “Caja”, 53
.Bars(“Restaurante”).Items.Add ,”Comandas”, “Comandas”, 136
.Bars(“Restaurante”).Items.Add ,”Reservaciones”, “Reservaciones”, 140
.Bars(“Restaurante”).Items.Add ,”Menu”, “Definición de menú”, 141

If rstUsuario(“supervisor”) <> 0 Then
If clAt( “MySQL”, Ambiente.Connection ) > 0 Then
.Bars(“Utilerias”).Items.Add ,”MySQLPass”, “Establecer password de MySQL”, 46
End If
End If

End With

End Sub

Sub buscaPendientes()

Set rstPendientes = CreaRecordSet( “SELECT * FROM pendient WHERE para = ‘” & Ambiente.Uid & “‘ AND estado = ‘PE’ AND fecha = ” & fechaSQL( fecha ), _
Ambiente.Connection )

If Not rstPendientes.EOF Then
Set Clientes = CreateObject( “MyBClientes.Clientes” )
Set Clientes.Ambiente = Me.Ambiente
Clientes.MuestraPendientes
End If

End Sub

 

También podemos solucionar este error, desde whatsapp 7222816462:
Error Número 429

Module: frminicio
Function: vbalListBar1_ItemClick
Description: ActiveX Component can´t create object
Código duro 24
Error Número 429


Error Número 429

IniciaAplicacion
ActiveX component can't create object 429 Linea:6

El problema de este error es el antivirus.
Contáctanos

Publicado el Dejar un comentario

Ticket con descuentos

Este es el código fuente del formato “Ticket con descuentos”

' Mybusiness POS v. 2011
Sub Main()

if Ambiente.rstEstacion("torreta") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("ptorreta") ) > 0 Then
Out Trim(Ambiente.rstEstacion("ptorreta")), Chr( 12 ) & "Total: $" & Formato( Val2( txtFields(4) ), "###,###.00" )
else
On Error resume next
Ambiente.torreta.PortOpen = True
if Ambiente.torreta.PortOpen Then
Ambiente.Torreta.OutPut = Chr( 12 ) & "Total: $" & Formato( Val2( txtFields(4) ), "###,###.00" )
end if
end if
end if

If Ambiente.rstEstacion("ventasportelefono") <> 0 Then

cSalida = ""

if Ambiente.rstEstacion("Cajon") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
cSalida = cSalida & Chr(7)
' Sansung de inyección
' cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(49)
end if

if Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

Exit Sub
End If

'If MsgBox( "Desea imprimir el ticket", vbQuestion + vbYesNo + vbDefaultButton2 ) = vbNo Then
' Exit Sub
'End If

' Creamos el recordSet del encabezado de la venta
Set rstEncabezado = Rst("SELECT * FROM ventas WHERE venta = " & prn.Documento, Ambiente.Connection )

' Verificamos que la venta que se desea imprimir exista
if rstEncabezado.EOF Then
MsgBox "No existe la venta seleccionada",vbInformation
Exit Sub
end if

' Creamos el recordSet de las partidas que componen la venta
Set rstPartidas = Rst("SELECT partvta.iespecial, partvta.articulo, prods.precio1,prods.descrip, partvta.precio, partvta.cantidad, partvta.descuento, partvta.impuesto, partvta.preciobase, partvta.prdescrip FROM partvta INNER JOIN prods ON prods.articulo = partvta.articulo WHERE venta =" & rstEncabezado.fields("Venta"), Ambiente.Connection )

' Traemos todos los datos del cliente
Set rstCliente = Rst("SELECT * FROM clients WHERE cliente = '" & rstEncabezado.fields("Cliente") & "'", Ambiente.Connection )

' Traemos los datos de cobranza si es que existe
Set rstCobranza = Rst( "SELECT * FROM cobranza WHERE venta = " & rstEncabezado("venta"), Ambiente.Connection )

cSalida = ""

'Esto abre el cajon de dinero
if Ambiente.rstEstacion("Cajon") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
cSalida = cSalida & Chr(7)
' Sansung de inyección
' cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(49)
end if

Set rstTextTicket = CreaRecordSet( "SELECT * FROM tickettext", Ambiente.Connection )

If rstTextTicket.EOF Then
cSalida = cSalida & "" & Ambiente.Empresa & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( Ambiente.Direccion1 ) & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( Ambiente.Direccion2 ) & Chr(13) & Chr(10)
cSalida = cSalida & "" & Trim( Ambiente.Telefonos ) & Chr(13) & Chr(10)
Else
cSalida = cSalida & rstTextTicket("textheader")
End If

cSalida = cSalida & "" & Trim( rstEncabezado("Usuario") ) & " " & Trim( Ambiente.Estacion ) & " Ticket: " & rstEncabezado("No_referen") & Chr(13) & Chr(10)
cSalida = cSalida & Formato( rstEncabezado("f_emision"),"dd-MM-yyyy" ) & " Hora: " & rstEncabezado("usuHora") & Chr(13) & Chr(10)
cSalida = cSalida & Trim( rstCliente("cliente") ) & " " & Trim( rstCliente("Nombre") ) & Chr(13) & Chr(10)
cSalida = cSalida & Ambiente.rstEstacion("leyendacomodin") & " " & rstEncabezado("comodin") & Chr(13) & Chr(10)
cSalida = cSalida & "Vendedor: " & rstEncabezado("Vend") & Chr(13) & Chr(10)
cSalida = cSalida & "CANT. DESCRIPCION PRECIO IMPORTE" & Chr(13) & Chr(10)

nImporteTotal = 0
nImpuesto = 0
nCantidadTotal = 0
nDescuentoTotal = 0
nImporteOrigen = 0

'PrintText cSalida

If Ambiente.Tag <> "HTML" Then

If Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

cSalida = ""

End If

While Not rstPartidas.EOF

nPrecio = rstPartidas("Precio") * ( 1 - (rstPartidas("Descuento")/100) ) * (1 + ( rstPartidas("impuesto") / 100 ) )
nPrecioBase = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 ) ), 2)
nDescuento = (nPrecioBase - nPrecio) * rstPartidas("Cantidad")

If nPrecioBase > 0 Then
nDescPor = ( nPrecio / nPrecioBase ) * 100
Else
nDescPor = 0
End If

nDescuentoTotal = nDescuentoTotal + nDescuento
nImporte = nPrecio * rstPartidas("Cantidad")

nCantidad = PadL(Formato( rstPartidas("cantidad"), "##,##0.00" ),3)

cDescrip = Mid( rstPartidas("Descrip"), 1, 16 )
nCantidadTotal = nCantidadTotal + rstPartidas("cantidad")

nImporteTotal = nImporteTotal + nImporte
nImpuesto = nImpuesto + ( nImporteTotal * ( rstPartidas("impuesto") / 100 ) )

nPrecio = 0
nIEspecial = rstPartidas("Precio") * (Val2(rstPartidas("iespecial")) / 100)
nIVa = rstPartidas("Precio") * (rstPartidas("impuesto") / 100)
nPrecio = rstPartidas("Precio") + nIEspecial + nIVa

cPrecio = PadL(Trim(Formato( nPrecio, Ambiente.FDinero )),8)
cImporte = PadL(Trim(Formato( Round( nPrecio, 2) * rstPartidas("cantidad") * (1 - (rstPartidas("descuento") / 100)), Ambiente.FDinero )),8)
nPrecioOrigen = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 )),2) * rstPartidas("cantidad")
nImporteOrigen = nImporteOrigen + nPrecioOrigen

strSalida = PadL(Formato( nCantidad, Ambiente.Formato ),2) & " " & cDescrip & " " & cPrecio & " " & cImporte

'If rstPartidas("Precio1") > rstPartidas("Precio") Then
' nDescuentoPartida = ( rstPartidas("Precio1") - rstPartidas("Precio") ) * nCantidad
' strSalida = strSalida & " Descuento: " & Formato( nDescuentoPartida, "##,##0.00" ) & vbCrLf
'End If

cSalida = cSalida & strSalida & Chr(13) & Chr(10)

If Not clEmpty( cNull( rstPartidas("prdescrip") ) ) Then
cSalida = cSalida & Trim( rstPartidas("prdescrip") ) & vbCrLf
End If

rstPartidas.MoveNext
Wend

'PrintText cSalida

If Ambiente.Tag <> "HTML" Then

If Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

cSalida = ""

End If

cSalida = cSalida & Chr(13) & Chr(10)
cSalida = cSalida & Chr(13) & Chr(10)

cSalida = cSalida & " Importe: " & PadL(Formato( Val2(rstEncabezado("importe")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & " Impuesto: " & PadL(Formato( Val2(rstEncabezado("impuesto")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)

if Val2(rstEncabezado("iespecial")) > 0 Then
cSalida = cSalida & " Impuesto 2%: " & PadL(Formato( Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
end if

if nDescuentoTotal > 0 Then
cSalida = cSalida & " Importe: " & PadL(Formato( nImporteOrigen, Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & " Descuento: " & PadL(Formato( nDescuentoTotal, Ambiente.FDinero ),10) & Chr(13) & Chr(10)
end if

cSalida = cSalida & " Importe: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & " Redondeo: " & PadL(Formato( Val2(rstEncabezado("Redondeo")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
cSalida = cSalida & Chr(13) & Chr(10)
cSalida = cSalida & PadL(Formato( nCantidadTotal, "###,###" ),4) & " ----- TOTALES ---- " & PadL(Formato( (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))), Ambiente.FDinero ),10) & Chr(13) & Chr(10)

nPagoTotal = Val2(rstEncabezado("Pago1")) + Val2(rstEncabezado("Pago2")) + Val2(rstEncabezado("Pago3"))

if rstEncabezado("Pago1") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto1") & " " & PadL(Formato( Val2(rstEncabezado("Pago1")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
end if

if rstEncabezado("Pago2") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto2") & " " & PadL(Formato( Val2(rstEncabezado("Pago2")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
end if

if rstEncabezado("Pago3") > 0 Then
cSalida = cSalida & " Pago en " & rstEncabezado("Concepto3") & " " & PadL(Formato( Val2(rstEncabezado("Pago3")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
end if

Eventos

If rstEncabezado("Comision") > 0 Then
cSalida = cSalida & " Comisión: " & PadL(Formato( Val2(rstEncabezado("comision")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
End If

nComision = rstEncabezado("comision")

if nPagoTotal < (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))) Then cSalida = cSalida & " Credito: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("redondeo")) - nPagoTotal, Ambiente.FDinero ),9) & Chr(13) & Chr(10) else cSalida = cSalida & " Cambio: " & PadL(Formato( nPagoTotal - nComision - Val2(rstEncabezado("impuesto")) - Val2(rstEncabezado("iespecial")) - Val2(rstEncabezado("importe")) - Val2(rstEncabezado("redondeo")), Ambiente.FDinero ),9) & Chr(13) & Chr(10) end if Set rstMoneda = CreaRecordSet( "SELECT * FROM monedas WHERE moneda = '" & rstEncabezado("moneda") & "'", Ambiente.Connection ) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Letra( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Trim(rstMoneda("Descrip")), True,rstMoneda("Nombre") ) & Chr(13) & Chr(10) If rstTextTicket.EOF Then cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & "***** GRACIAS POR SU COMPRA *****" & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) cSalida = cSalida & Chr(13) & Chr(10) Else cSalida = cSalida & rstTextTicket("textend") End If ' Esto manda un corte de papel 'PrintText cSalida if Ambiente.rstEstacion("ticketcorte") <> 0 Then
cSalida = cSalida & Chr(27) & Chr(105)
end if

If Ambiente.Tag = "HTML" Then

Ambiente.Tag = ""

cSalida = Replace( cSalida, Chr(13) & Chr(10), "
" )
cSalida = "

" & cSalida & "
"
CreaHtml "", (cSalida)

Else

if Ambiente.rstEstacion("ticket") <> 0 Then
if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
Out Trim(Ambiente.rstEstacion("pticket")), cSalida
else
if Ambiente.Ticket.PortOpen Then
Ambiente.Ticket.Output = cSalida
end if
end if
End if

End If

Dormir 100
Eventos

End Sub