Table name 为显示标题,Table text ID 为标题翻译键,均非脚本查找名。Headers 为列标题,Header text IDs 为列标题翻译键,Rows 为二维数组。
表格模板:先定列头和行,再决定 Rows 写数组、变量名还是函数名 | Mingcedar Studio
table 模板适合统一展示规则化的二维数据。它通过表头、行数据和数据来源驱动内容更新,避免逐个单元格手工维护。
表格模板:先定列头和行,再决定 Rows 写数组、变量名还是函数名
table 模板适合统一展示规则化的二维数据。它通过表头、行数据和数据来源驱动内容更新,避免逐个单元格手工维护。
Headers、Rows 接受数组、Page Script 数组变量或返回数组的函数,如 =buildPumpRows()。固定文字加引号;Tag 名称字符串不能直接作为行数据。
- 直接表头:['设备', '状态']
- 直接行:[['Pump 1', 'Running'], ['Pump 2', 'Stop']]
- 引用变量:Rows 填 tableRows
- 引用函数:Rows 填 buildTableRows;显式调用填写 =buildTableRows()
Rows 既可以直接写数组,也可以写变量名,还可以写函数名。推荐把稍复杂的数据放在 Page Script 里准备好,然后在 Rows 配置框里填变量名 tableRows。
- 直接数组适合快速静态表格
- 变量名适合页面脚本提前准备数据
- 函数名适合需要运行时重新计算表格数据的场景
var tableRows = [
["Pump 1", "Running"],
["Pump 2", "Stop"]
];
// Table 模板的 Rows 配置框填:tableRows 把 Tag 读取放进 Page Script 函数,每次表格求值时返回最新二维数组。Rows 使用函数名或显式 = 调用。仅在页面脚本顶层读取一次并存入数组,不会自动重新读取 Tag。
function buildTableRows() {
return [
["Pump 1", ReadTagString("PLC_LINE01.PUMP01.STATUS_TEXT", "")],
["Pump 2", ReadTagString("PLC_LINE01.PUMP02.STATUS_TEXT", "")]
];
}
// Table 模板的 Rows 配置框填:buildTableRows
// 或者:=buildTableRows() 后端或聚合数据可写入 JSON Tag。Page Script 用 ReadTagJson("PLC_LINE01.REPORT01.ROWS", []) 读取,再转换为 Table 所需二维数组。
Headers 适合直接声明当前表头;Header Text IDs 适合接入统一语言键。项目需要多语言时,优先维护稳定 Text ID,再把默认表头作为默认显示。
Rows 接受数组、数组变量、函数或 =buildPumpRows() 表达式。复杂整理放在 Page Script 函数中;一次读取的数组不会持续更新。
当页面需要维护多行、多列内容,且这些内容未来会随配置、Tag 或脚本变化时,表格模板可以显著降低维护成本。它特别适合设备清单、诊断列表、参数表和状态列表。
表格模板适合把列头、行样式和数据来源分开管理,避免每个单元格都靠手工维护。