Buscar palabras clave en la documentación    Buscar Ayuda

Doc. Ref. 8086
Título: Cómo visualizar rápidamente datos sobre las ventas de un artículo.
Autor: Philippe Calvó
Última actualización: 11/04/2008


Cómo visualizar rápidamente datos sobre las ventas de un artículo.

Este documento describe paso a paso el sistema para parametrizar el botón “Procesar” del formulario de exploración de artículos para que muestre de forma ágil información útil sobre las ventas de cada artículo.

Normalmente, la forma más práctica de obtener información de la base de datos consiste en la preparación de un informe Crystal Reports que la calcule y la muestre. El informe se puede parametrizar para que sea invocado desde alguna llamada a informes relacionados con la tabla afectada en la aplicación. Este sistema tiene la ventaja de que se puede aprovechar la potencia del sistema de diseño de informes y, al mismo tiempo, que el informe resultante ya está adaptado para ser impreso.

Sin embargo, la opción del informe tiene el inconveniente de ser a veces algo engorrosa y lenta. Un ejemplo sería el caso de un comercial que, hablando con un cliente por teléfono, necesita conocer de forma rápida datos estadísticos muy claros y concretos sobre un artículo, como la cantidad vendida total o su precio medio. Para este comercial, lanzar repetidamente el informe mientras habla con un comercial, puede resultar poco ágil.

En este ejemplo se muestra como utilizar la técnica de los Hexa-Scripts y los procedimientos de evento para obtener esta información de forma instantánea.

El botón de acción “Procesar” que se encuentra en el formulario de exploración de artículos ejecuta el procesos de evento con código “ProcesarArticulo”. Para crear el script correspondiente deberemos ir a la exploración de eventos (Menú Sistema, Procedimientos de evento) y crear el nuevo registro con el código mencionado.

En el campo “Script” introduciremos el siguiente código:

Sub Main (PS0, PS1, PS2)
 Articulo = BaseDeDatos.Cmp ("Articulo", "Codigo", "" & PS0, False)
 Denominacion = BaseDeDatos.Cmp ("Articulo", "Denominacion", "" & PS0, False)
 PrimeraVenta = BaseDeDatos.Cmp ("Movimiento", "Min (Fecha)", "Articulo='" & Articulo & "' And FacturaPrefijo <> ''" , False)
 UltimaVenta = BaseDeDatos.Cmp ("Movimiento", "Max (Fecha)", "Articulo='" & Articulo & "' And FacturaPrefijo <> ''" , False)
 CantidadVendidaGlobal = BaseDeDatos.Cmp ("Movimiento", "Sum (Cantidad)", "Articulo='" & Articulo & "' And FacturaPrefijo <> ''" , False)
 BaseVendidaGlobal = BaseDeDatos.Cmp ("Movimiento", "Sum (Base)", "Articulo='" & Articulo & "' And FacturaPrefijo <> ''" , False)
 If CantidadVendidaGlobal <> "" Then
  If CantidadVendidaGlobal <> 0 Then PrecioMedio = BaseVendidaGlobal / CantidadVendidaGlobal Else PrecioMedio = "0"
  Texto = Texto & "Estadísticas para el artículo: " & Articulo & " " & Denominacion & VbCrLf
  Texto = Texto & "Denominacion: " & Denominacion & VbCrLf
  Texto = Texto & "(desde " & PrimeraVenta & " hasta " & UltimaVenta & ")" & VbCrLf
  Texto = Texto & "Cantidad Vendida Total: " & FH.Aproximacion (CantidadVendidaGlobal, 2) & "uds." & VbCrLf
  Texto = Texto & "Importe Base ventas totales: " & FH.Aproximacion (BaseVendidaGlobal, 2) & "EUR" & VbCrLf
  Texto = Texto & "Precio medio: " & FH.Aproximacion (PrecioMedio, 4) & "EUR" & VbCrLf
 Else
  Texto = Texto & "Sin ventas" & VbCrLf
  End If
  MsgBox (Texto)
End Sub

Este script utiliza la función Hexa “Cmp” para obtener los datos que necesitamos, opera con ellos y almacena los resultados en una variable llamada “Texto” para, al final, mostrar el resultado en un “TextBox”

Una vez guardado el script, si localizamos un artículo en el explorador de artículos y pulsamos el botón de acción, obtendremos el resultado de los cálculos: Cantidad vendida total, importe total, fechas de la primera y última venta y precio medio.

Siguiendo el mismo sistema, es sencillo obtener más datos sobre este artículo o incluso sobre la relación con otros objetos del sistema.

Tags Relacionados:

Articulo Evento Script Ventas