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 documento 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 objeto de hoja se crean desde 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 desde 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 de 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