Sistema de Gestión de Negocios "Hexa"

Base de datos de conocimiento.

Doc. Ref. 8008
Título: Sintaxis de un "Hexa-Script"
Autor: Philippe Calvó
Última actualización: 18/06/2007
#Lenguaje #Programacion #Scripts #Sistema


Sintaxis de un "Hexa-Script"

Un "Hexa-Scipt" es un pequeño programa escrito en Visual Basic Script (VBS) que realiza alguna tarea utilizando los objetos del sistema Hexa

Se puede utilizar en las siguientes situaciones:

  • En un proceso de evento al pulsar el botón procesar en algún explorador de documentos de compra venta o en algún evento concreto de la aplicación.
  • En la opción "Ejecutar Script" del menú de sistema.
  • En los botones de acción de los nuevos formularios de la versión 8 de Hexa

El lenguage en el que se programan es Visual Basic Script (VBS). En el caso de utilizar el formulario de ejecución de scripts, se puede utilizar una sintaxis simple sin necesidad de declarar ningún procedimiento. Un ejemplo sería:

MsgBox "Hello world"

En esl caso de que el script sea llamado desde un botón de acción de un formulario o desde un evento, esté recibirá siempre tres parámetros:

  • Condición SQL de los registros relacionados
  • Orden SQL del proceso que se va a realizar
  • Opciones del proceso en formato "Opcion1=Valor1 Opcion2=Valor2..."

En estos casos, el script se tiene que escribir siempre en forma de un procedimiento "Sub" que se debe llamar "Main". El procedimiento debe tener siempre tres parámetros llamados estrictamente "P0", "P1" y "P2" que recibirán siempre respectivamente los valores de Condición, Orden y Opciones descitos.

El siguiente ejemplo es un script que, ejecutado desde el botón "Procesar" del explorador de pedidos, lanza el procedimiento de cálculo de necesidades según la composición de los artículos. A continuación llama a un informe que muestra las existencias y necesidades de cada uno de los artículos del pedido y sus componentes según las fórmulas de composición

Sub Main (PS0, PS1, PS2)
   Prefijo = BaseDeDatos.Cmp ("Pedido", "Prefijo", "" & PS0, False) : Numero = BaseDeDatos.Cmp ("Pedido", "Numero", "" & PS0, False)
   Existencias.CalcNec8 "", "", "ConsiderarExistenciasActuales=False, PuntoPedidoEsNecesidad=False"
   Lista = Redundancias.Listart ("MovimientoPrevisto", "PedidoPrefijo='" & Prefijo & "' And PedidoNumero=" & Numero, True)
   Impresion.ImprimeCR "Pantalla", "Listado de Existencias formato necesidades.rpt", "{Articulo.Nivel} = 'Materia prima' And {Articulo.Codigo} IN [" & Lista & "]", "Articulo.Codigo", 1
End Sub

Volver a la búsqueda anterior