页面与项目配置方法:优先从配置读取数据 | HQ VISU Designer

当前页的数据优先来自 Page Script 变量、函数、内部 JSON Tag 和默认 alarm.js。它们适合保存页面参数、表格数据、显示规则和报警范围。

脚本方法配置
配置

页面与项目配置方法:优先从配置读取数据

当前页的数据优先来自 Page Script 变量、函数、内部 JSON Tag 和默认 alarm.js。它们适合保存页面参数、表格数据、显示规则和报警范围。

Page Script 变量和函数

当前页专属数据直接放在 Page Script 里,例如表格行、默认筛选条件、当前页显示开关、局部标题和局部阈值。表格模板的 Rows 字段可以填写变量名或函数名,这些数据不宜拆成单独 JSON 文档。

  • 适合当前页独有配置
  • 常用于表格数据和局部规则
  • Rows 可填变量名或函数名
var tableRows = [
  ["Pump 1", "Running"],
  ["Pump 2", "Stop"]
];
var panelTitle = "未命名面板";
内部 JSON Tag

Python 或宿主侧脚本需要返回结构化数据时,优先写入内部 JSON Tag,PPT 页面用 `ReadTagJson(...)` 读取。这样报表、分页数据和查询结果仍然走统一 Tag 读写链,不需要页面直接调用 Python。

  • 适合报表行、分页结果和结构化状态
  • 由 Python 写内部 Tag
  • PPT 页面只负责 ReadTagJson 读取
var rows = ReadTagJson("Device.ReportRows", []);
var updatedAt = ReadTagDateTime("Device.ReportUpdatedAt", null);
默认 alarm.js

每页默认有一个受保护的 alarm.js,用来维护当前页报警窗口开关和范围。编辑核心对象 `HQVISU_PAGE_ALARM` 即可。

  • 适合当前页报警窗口开关
  • 适合当前页报警范围
  • 每页独立,跟随页面导出
HQVISU_PAGE_ALARM = {
  showWindow: true,
  tags: [],
  deviceCodes: [],
  objectIdentifiers: [],
  groupCodes: [],
  areaCodes: []
};
getPageAlarm(fallbackValue)

读取当前页的 PPT 报警设置。它不是运行端报警规则本身,而是当前页面随导出包携带的报警窗口开关和报警范围配置。当前页没有 alarm 配置时,会返回传入的回退值或默认结构。

  • 适合读取当前页是否允许显示报警窗口
  • 适合读取页面携带的报警范围
  • 导出后来自 HQVISU_PAGE_ALARM
  • 没有配置时要给回退值,避免空对象报错
var alarmConfig = getPageAlarm({
  showWindow: true,
  tags: [],
  deviceCodes: [],
  objectIdentifiers: [],
  groupCodes: [],
  areaCodes: []
});

if (alarmConfig.showWindow) {
  qtedit.setComponentVisible("PageAlarmPanel", true);
}
PPT 报警设置字段说明

`showWindow` 表示当前页是否允许显示报警窗口;`tags` 是完整 Tag 点名范围;`deviceCodes` 是设备或 PLC 编码范围;`objectIdentifiers` 是对象或设备单元标识;`groupCodes` 是信号分组;`areaCodes` 是区域、产线、工段或系统范围。数组为空表示该维度不附加范围条件,不表示自动选择全部点位。

  • 只指定几个点位时,优先填 tags
  • 按设备收口时,填 deviceCodes
  • 按对象或设备单元收口时,填 objectIdentifiers
  • 按信号类别收口时,填 groupCodes
  • 按区域或产线收口时,填 areaCodes
{
  "showWindow": true,
  "tags": [],
  "deviceCodes": [],
  "objectIdentifiers": [],
  "groupCodes": [],
  "areaCodes": []
}
GetCurrentUsername()

读取当前宿主用户。它适合做轻量级个性化显示,例如页面欢迎语、当前操作人展示和当前用户标记。它不是权限系统本身,权限判断应以宿主机规则为准。

  • 适合欢迎语和当前用户显示
  • 适合轻量日志标记
  • 权限校验仍然应以宿主机规则为准
var username = GetCurrentUsername();
qtedit.setComponentText("CurrentUser", username || "Guest");
页面脚本代码面板
页面脚本代码面板

页面配置读取、报警读取和局部逻辑通常会集中出现在这里。