Intérprete Interno de Macros

Se accede a los objetos de QlikView a través de automatización, desde dentro de QlikView, mediante el motor de script integrado.

Invocar Macros

Las macros escritas en VBScript o JScript, dentro de un documento QlikView, pueden invocarse de diferentes maneras:

Eventos de Documento:

  • Una macro puede ejecutarse tras abrirse un documento QlikView.
  • Una macro puede ejecutarse tras una reejecución de script.
  • Una macro puede ejecutarse tras el comando Reducir Datos.
  • Una macro puede ejecutarse tras haber efectuado una selección en cualquier campo del documento.
  • Una macro puede ejecutarse  cuando el valor de cualquier variable cambia en un documento.

Las macros invocadas desde los eventos de documento se crean en la página Propiedades de Documento: Disparadores.

Eventos de Hoja:

  • Una macro puede ejecutarse después de activarse una hoja.
  • Una macro puede ejecutarse cuando una hoja sea desactivada.

Las macros invocadas desde los eventos de hoja se crean en la página Propiedades de Hoja: Disparadores.

Eventos de Objeto de Hoja:

  • Una macro puede ejecutarse tras activarse un objeto de hoja.
  • A macro puede ejecutarse cuando se desactive un objeto de hoja.

Las macros invocadas desde los eventos de objetos de hoja se crean en la página Propiedades de Hoja: Disparadores.

Eventos de Botón:

  • Un botón puede definirse como un botón de macro.

Una macro que es invocada desde un evento de botón de macro se crea desde la página Acciones.

Eventos de Campo:

  • Se puede ejecutar una macro tras haber hecho una selección en un campo determinado.
  • Una macro puede ejecutarse cuando se haga una selección en cualquier campo que esté asociado lógicamente a un campo especificado.
  • Una macro puede ejecutarse cuando las selecciones se bloqueen en un determinado campo.
  • Una macro puede ejecutarse cuando las selecciones se desbloqueen en un campo específico.

Las macros invocadas desde los eventos de campo se crean en la página Propiedades de Documento: Disparadores.

Eventos de Variable:

  • Una macro puede ejecutarse cuando se introduzcan valores nuevos directamente en las variables de script especificadas.
  • Una macro puede ejecutarse cuando el valor de la variable especificada cambie como resultado de cambios efectuados en otras variables o en el estado lógico del documento.

Las macros invocadas desde los eventos de variable se crean en la página Propiedades de Documento: Disparadores.

Editor de Macros:

Independientemente de cómo sean lanzadas, las macros se crean y editan desde el diálogo Editor de Módulo.

Ejemplos:  

Esta sección ofrece un ejemplo de macro VBScript que puede resultar muy útil.

Using VBScript Input Boxes for User Interaction

rem ** Clear selections, ask for product, **

rem ** select that product, **

rem ** go to sheet "Market", **

rem ** show pivot table "Sales" **

Sub ChooseValue

Set q = ActiveDocument

q.ClearAll (false)

Set f = q.Fields("Model Name")

x = inputbox ("Enter product")

f.Select(x)

set s = q.Sheets("Market")

s.Activate

s.SheetObjects("Sales").Activate

end sub

Funciones especiales de librería para JScript

Si bien las funciones VBScript estándar InputBox y MsgBox pueden utilizarse libremente en macros VBScript , no hay ningún equivalente directo cuando usamos JScript. Para estas acciones, se ha añadido una librería especial qvlib. Las funciones se muestran en el siguiente ejemplo:

// JScript

function Test()

{

personName = qvlib.InputBox("What is you name?")

msg = "Hello " + personName + " !"

qvlib.MsgBox(msg)

}

Las funciones qvlib también funcionan en macros VBScript, tal como se muestra en el ejemplo inferior, pero en este caso podríamos utilizar también las funciones genéricas de VBScript: InputBox y MsgBox.

rem VBScript

sub TestModule

name = qvlib.InputBox("What is your name?")

msg = "Hello "

msg = msg + name + " !"

qvlib.MsgBox(msg)

end sub