# 使用 QV-Server 上 QV 文档中的宏

## QlikView Server 的宏

QlikView Server 可以执行 QlikView 文档的宏。由于客户端服务器环境的差异，使用宏时必须考虑一些因素。

使用 QlikView 作为客户端时，所有宏会在客户端内执行。此时允许更多操作。

信息注释由于设计者可能已有的设计/推断，广泛使用宏可能导致宏在并行执行而非相继执行时发生潜在问题。

## 宏功能限制

通常在 QlikView Server 环境的宏中与任何类型客户端兼容运行的功能包括：

* 逻辑操作，如在字段中进行清除或选择
* 与变量相关的操作

以下类型的功能不可用于 QlikView Server 环境，因为它们可能会造成意外结果：

* 通过 SetProperties 在工作表和工作表对象的属性上执行布局操作

* 更改文档或用户设置的操作

* 所有与脚本相关的操作，包括重新加载

* 数据缩减操作，如 ReduceData

* 保存和打开文档等操作

* AJAX 中需要返回值的操作可能会返回空的结果缓冲区

信息注释支持在服务器对象的属性上执行布局操作。

## 宏触发限制

以下触发器可方便所有客户在 QlikView Server 环境中正常工作，除了不能支持事件触发器的 AJAX 模式：

`Document.OnAnySelect` `Field.OnSelect` `Field.OnChange` `Field.OnUnlock` `Document.OnPressMacroButton` `Variable.OnChange` `Variable.OnInput`

以下触发器不可用于 QlikView Server 环境，因为它们缺乏意义，或者可能会造成意外结果：

`OnPostReduceData` `OnPostReload`

## VBScript 函数

QlikView 文档模块中定义的 VBScript 函数通常可在 QlikView Server 上顺利工作。之前章节定义的一般功能限制在此适用。

## 服务器端导出

使用连接到按钮的宏可以导出任何图表内容到服务器上的文本文件。此功能必须添加到 QlikView 文档内，然后直接从网络浏览器中 QlikView Server 执行宏。