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