Publicado el Dejar un comentario

Cómo hacer una consulta a la tabla de clientes

En esta ocasión mostramos un ejemplo de una ventana que consulta a la tabla de clientes y permite hacer el filtro por nombre.


Este es el código fuente

 

Sub Form_load()

'José Félix 20140812

'jofelchez@gmail.com

'Ejemplo de cómo hacer una consulta a la tabla de clientes

TxtCliente.TabIndex = 0

aceptar.Default = True

'TxtCliente.PasswordChar = "*"

'TxtCliente.BackColor = 0

'TxtCliente.ForeColor = vbGreen

'TxtCliente.font.size = 14

Me.Caption = "Ejemplo de consulta a cliente"

Set mc1 = Me.Controls.Add("DBMultiCombo.MultiCombo","mc1", Me)

With mc1

.Left = TxtCliente.Left

.Top = TxtCliente.Top

.Width = TxtCliente.Width + 450

.Height = TxtCliente.Height

Set .Connection = Ambiente.Connection

Set .txtObject = TxtCliente

.Buscar = "Clientes"

.Visible = True

Set TxtCliente.Container = mc1

End With

End Sub

Sub Button_Click()

Dim cUsuario

Dim cPassword

Dim nPos

Dim s

If ControlEvento.Tag = "cancelar" Then

bolAceptar = False

DescargaForma

Exit Sub

End If

'consulta a la base de datos

Set rstCliente = CreaRecordSet( _

"SELECT * FROM clients WHERE cliente = '" & TxtCliente & "'", _

Ambiente.Connection )

'En caso de que no se encuentre el usuario envía mensaje de error

If rstCliente.EOF Then

'Progress.Destroy

MyMessage "Error:" & vbCrLf & "No existe el cliente indicado"

EstableceFoco

Exit Sub

End If

mymessage " Cliente: " & rstCliente("cliente") & vbCrLf & " Nombre: " & rstCliente("nombre")

End Sub

Sub EstableceFoco()

TxtCliente.Setfocus

TxtCliente.SelStart = 0

TxtCliente.SelLength = Len( TxtCliente )

End Sub

Sub Text_KeyUp()

'Este bloque permite responder a una tecla

'En caso de

If KeyCode = 40 Then

Select Case ControlEvento.Tag

Case "TxtCliente"

TxtCliente.Container.ShowData

End Select

End If

'en caso de

If KeyCode = 27 Then

DescargaForma

'Exit Sub

End If

End Sub

Publicado el 2 comentarios

Cambiar datos de la empresa directo en el ticket

Con conocimientos básicos de programación podemos colocar el texto que necesitemos en el encabezado del ticket, todo directo desde la edición del código de Ticket.

Publicado el 1 comentario

Abrir cajón de dinero con impresora USB

Para abrir el cajón de dinero, es necesario enviar la instrucción desde el controlador (driver) de la impresora, en la pestaña Comandos Adicionales aparece una opción para abrir cajón de dinero cada vez que se envía una impresión.

En las propiedades de la impresora genérica USB, los comandos de impresora son los siguientes:

  • Comando para Abrir el cajón
    <1B>p0<1414>
  • Comando para Cortar el papel, al finalizar trabajo de impresión
    <0A0A0A0A0A1B>i<0D0A>

Publicado el 1 comentario

BARTICULOS001

El siguiente bloque de código BARTICULOS001 es el que permite visualizar desde el punto de venta, la ventana de artículos donde se muestra la clave, descripción y precio unitario. Describiremos un poco cada línea de código.

Para abrir y modificar este bloque de código, necesitamo ir a la siguiente ruta, dentro del Business Manager:
CONFIGURACIÓN–PERSONALIZACIÓN–PROCEDIMIENTOS Y RUTINAS DE USUARIO


Public Sub Main()
Dim strSQL 'Definición de variables
Set rstProds = SQLProdsSQLServer() ' invocamos al procedimiento SQLProdsSQLServer y asignamos el resultado a rstProds
SetSessionValue Ambiente, "CONDICIONDEBUSQUEDA", ""
End Sub

'Funcion SQLProdsSQLServer
Function SQLProdsSQLServer()
Dim s
'evaluamos la variable Var1
If clEmpty( Ambiente.Var1 ) Then
Ambiente.Var1 = " prods.descrip "
End If
'Iniciamos con la consulta, aquí mismo definimos también el nombre de los encabezados de cada columna.
s = ""
s = s & "SELECT "
s = s & "prods.articulo As 'Clave', "
s = s & "prods.descrip AS 'UNIDAD DE CONSUMO', "
s = s & "prods.precio1 * ( 1 + (impuestos.valor / 100) ) As 'Precio', "
s = s & "prods.existencia, "
s = s & "existenciaalmacen.existencia As 'Almacen " & Ambiente.Almacen & "', "
s = s & "prods.articulo "
s = s & "FROM prods "
s = s & "INNER JOIN impuestos ON prods.impuesto = impuestos.impuesto "
s = s & "LEFT JOIN existenciaalmacen ON prods.articulo = existenciaalmacen.articulo AND existenciaalmacen.almacen = " & Ambiente.Almacen
s = s & "WHERE prods.bloqueado = 0 "
s = s & cNull(GetSessionValue(Ambiente, "CONDICIONDEBUSQUEDA"))
'Evaluamos filtros adicionales. aquí es donde considera la condición que aplicamos antes de presionar la flecha hacia abajo
If Not clEmpty(cFiltro) Then
If Not clEmpty(Condition) Then
s = s & " AND (prods.descrip LIKE '%" & Cambia("%", " ", cFiltro) & "%' OR prods.articulo LIKE '%" & Cambia("%", " ", cFiltro) & "%') AND " & Condition & " ORDER BY " & Ambiente.Var1
Else
s = s & " AND (prods.descrip LIKE '%" & Cambia("%", " ", cFiltro) & "%' OR prods.articulo LIKE '%" & Cambia("%", " ", cFiltro) & "%') ORDER BY " & Ambiente.Var1
End If
Else
If Not clEmpty(Condition) Then
s = s & " ORDER BY " & Ambiente.Var1
Else
s = s & " ORDER BY " & Ambiente.Var1
End If
End If
'Ejecutamos la consulta antes estructurada y se guarda el resultado en rstProds
Set rstProds = CreaRecordSetEnCliente( (s), Ambiente.Connection)
Set SQLProdsSQLServer = rstProds 'guardamos el arreglo de datos en la variable SQLProdsSQLServer
'Especificamos el ancho de las columnas, iniciando desde la columna 0 y considerando el orden en que estructura la consulta
Set TDBGrid1.DataSource = rstProds
AnchoColumna 0, 2000
AnchoColumna 1, 6500
AnchoColumna 2, 2000
AnchoColumna 3, 1000
AnchoColumna 4, 1000
AnchoColumna 5, 2500
'Para las columnas de tipo numérico podemos colocar el formato numérico y con la cantidad de decimales apropiada
FormatoColumna 2, 1, "##,##0.00"
FormatoColumna 3, 1, Ambiente.FDinero
FormatoColumna 4, 1, Ambiente.FDinero
'Termina la función
End Function