内部宏解释器

QlikView 对象可通过脚本编译引擎的方法从 QlikView 内部通过自动访问。

调用宏

VBScript 机票 JScript 脚本编写的宏,可在一个 QlikView 内部文档中以不同的方式调用:

文档事件:

  • 在打开一个 QlikView 文档后可运行宏。
  • 在重新执行脚本后可运行宏。
  • 减少数据指令后可运行宏。
  • 在在一个文档的任何字段中作出选择后可运行宏。
  • 在当一个文档中的任何一个变量值改变时可运行宏。

从文档事件调用的宏是从文档属性:触发器页面创建的。

工作表事件:

  • 在激活一个工作表后可运行宏。
  • 当关闭一个工作表时可运行宏。

从工作表事件调用的宏是从工作表属性:触发器页面创建的。

工作表对象事件:

  • 在激活一个工作表对象后可运行宏。
  • 当关闭一个工作表或对象时可运行宏。

从工作表对象事件调用的宏是从工作表属性:触发器页面创建的。

按钮事件:

  • 按钮可以定义为宏按钮。

从宏按钮事件调用的宏是从按钮操作页面创建的。

字段事件:

  • 在一个指定字段作出选择后可运行宏。
  • 当在任何字段(逻辑关联指定字段)中作出选择时都可以运行宏。
  • 当在指定字段中锁定选择时可运行宏。
  • 当在指定字段中解锁选择时可运行宏。

从字段事件调用的宏是从文档属性:触发器页面创建的。

变量事件:

  • 当新值直接输入一个指定的变量时可以运行宏。
  • 当作为其它变量的改变或文档的逻辑状态改变的结果,指定的变量的值发生变化时可运行宏。

从变量事件调用的宏是从文档属性:触发器页面创建的。

宏编辑器:

无论如何触发,都可以在编辑模块对话框中创建和编辑宏。

Examples:  

此部分提供了一个 VBScript 宏示例,可能非常有用。

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

特殊库函数 JScript

尽管标准的 VBScript 函数 InputBoxMsgBox 可在 VBScript 宏中自由使用,当使用 JScript 时没有直接的相对项可用。为此目的,为这些操作添加一个特殊的库 qvlib。这些函数在以下示例中展示。

// JScript

function Test()

{

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

msg = "Hello " + personName + " !"

qvlib.MsgBox(msg)

}

qvlib 函数实际上也在 VBScript 宏中起作用,如下示例所示,但在本例中您可以使用通用的 VBScript 函数 InputBoxMsgBox

rem VBScript

sub TestModule

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

msg = "Hello "

msg = msg + name + " !"

qvlib.MsgBox(msg)

end sub