CONTACTO ***** jofelchez@gmail.com *****




Soporte Remoto, helpmybusinesspos.info , TeamViewer, Hamachi, Descarga My Business pos 2012 Gratis, crack activar, keygen activador , FACTURACIÓN ELECTRÓNICA, my business pos 2012, MyCBB, Codigo de Barras BiDimensional, configurar facturas, Migración de la Versión 2006 a la Versión 2011, Delta, Configurar 2011, Manuales de Instalación, Errores, Modificar, Respaldos, Nuevo IVA, Red MyBusiness, Problema, Ambiente path, Migración, Impresora, Descarga 2011, Reportes, Presentaciones, Win7, SQL, Manager, Ticket, Etiquetas, Generador, Corte X Z, Restaurar, Zebra, Logo, recomendaciones, Remisiones, Barras, Inventario, hamachi, Delta y LINUX, code39, como cambiar el iva en my business pos, my business pos blogspot, como instalar my busuness delta, TPV, MyMoney, Concentrador POS, Zebra, Datamax, Mobile Business, Commander, Restaurante, MyBusiness POS 2012, Kardex
Mostrando entradas con la etiqueta código fuente. Mostrar todas las entradas
Mostrando entradas con la etiqueta código fuente. Mostrar todas las entradas

domingo, 15 de marzo de 2015

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


[wpdm_package id='15368']
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

jueves, 15 de enero de 2015

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

[wpdm_package id='15383']

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


























































































ConstanteValorDescripción
vbKeyF1112Tecla F1
vbKeyF2113Tecla F2
vbKeyF3114Tecla F3
vbKeyF4115Tecla F4
vbKeyF5116Tecla F5
vbKeyF6117Tecla F6
vbKeyF7118Tecla F7
vbKeyF8119Tecla F8
vbKeyF9120Tecla F9
vbKeyF10121Tecla F10
vbKeyF11122Tecla F11
vbKeyF12123Tecla F12
vbKeyF13124Tecla F13
vbKeyF14125Tecla F14
vbKeyF15126Tecla F15
vbKeyF16127Tecla F16

Constantes de códigos de tecla





































































































































































ConstanteValorDescripción
vbKeyLButton1Botón primario del mouse
vbKeyRButton2Botón secundario del mouse
vbKeyCancel3Tecla CANCEL
vbKeyMButton4Botón central del mouse
vbKeyBack8Tecla RETROCESO
vbKeyTab9Tecla TAB
vbKeyClear12Tecla SUPR
vbKeyReturn13Tecla ENTRAR
vbKeyShift16Tecla MAYÚS
vbKeyControl17Tecla CTRL
vbKeyMenu18Tecla MENÚ
vbKeyPause19Tecla PAUSA
vbKeyCapital20Tecla BLOQ MAYÚS
vbKeyEscape27Tecla ESC
vbKeySpace32Tecla BARRA ESPACIADORA
vbKeyPageUp33Tecla RE PÁG
vbKeyPageDown34Tecla AV PÁG
vbKeyEnd35Tecla FIN
vbKeyHome36Tecla INICIO
vbKeyLeft37Tecla FLECHA IZQUIERDA
vbKeyUp38Tecla FLECHA ARRIBA
vbKeyRight39Tecla FLECHA DERECHA
vbKeyDown40Tecla FLECHA ABAJO
vbKeySelect41Tecla SELECT
vbKeyPrint42Tecla IMPRIMIR PANTALLA
vbKeyExecute43Tecla EXECUTE
vbKeySnapshot44Tecla SNAPSHOT
vbKeyInsert45Tecla INS
vbKeyDelete46Tecla SUPR
vbKeyHelp47Tecla AYUDA
vbKeyNumlock144Tecla BLOQ NUM

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












































































































































ConstanteValorDescripción
vbKeyA65Tecla A
vbKeyB66Tecla B
vbKeyC67Tecla C
vbKeyD68Tecla D
vbKeyE69Tecla E
vbKeyF70Tecla F
vbKeyG71Tecla G
vbKeyH72Tecla H
vbKeyI73Tecla I
vbKeyJ74Tecla J
vbKeyK75Tecla K
vbKeyL76Tecla L
vbKeyM77Tecla M
vbKeyN78Tecla N
vbKeyO79Tecla O
vbKeyP80Tecla P
vbKeyQ81Tecla Q
vbKeyR82Tecla R
vbKeyS83Tecla S
vbKeyT84Tecla T
vbKeyU85Tecla U
vbKeyV86Tecla V
vbKeyW87Tecla W
vbKeyX88Tecla X
vbKeyY89Tecla Y
vbKeyZ90Tecla Z

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




























































ConstanteValorDescripción
vbKey048Tecla 0
vbKey149Tecla 1
vbKey250Tecla 2
vbKey351Tecla 3
vbKey452Tecla 4
vbKey553Tecla 5
vbKey654Tecla 6
vbKey755Tecla 7
vbKey856Tecla 8
vbKey957Tecla 9

Teclas del teclado numérico


























































































ConstanteValorDescripción
vbKeyNumpad096Tecla 0
vbKeyNumpad197Tecla 1
vbKeyNumpad298Tecla 2
vbKeyNumpad399Tecla 3
vbKeyNumpad4100Tecla 4
vbKeyNumpad5101Tecla 5
vbKeyNumpad6102Tecla 6
vbKeyNumpad7103Tecla 7
vbKeyNumpad8104Tecla 8
vbKeyNumpad9105Tecla 9
vbKeyMultiply106Tecla SIGNO DE MULTIPLICACIÓN (*)
vbKeyAdd107Tecla SIGNO MÁS (+)
vbKeySeparator108Tecla INTRO (teclado numérico)
vbKeySubtract109Tecla SIGNO MENOS (-)
vbKeyDecimal110Tecla PUNTO DECIMAL (.)
vbKeyDivide111Tecla SIGNO DE DIVISIÓN (/)

jueves, 29 de diciembre de 2011

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






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

sábado, 12 de noviembre de 2011

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