所属产品: Mingcedar Studio DESIGNER
表格模板:先定列头和行,再决定 Rows 写数组、变量名还是函数名 | Mingcedar Studio
table 模板适合统一展示规则化的二维数据。它通过表头、行数据和数据来源驱动内容更新,避免逐个单元格手工维护。
<section id="table-template" class="docs-block docs-block-intro docs-block-current"> <span class="section-kicker">Table</span> <h2>表格模板:先定列头和行,再决定 Rows 写数组、变量名还是函数名</h2> <p>table 模板适合统一展示规则化的二维数据。它通过表头、行数据和数据来源驱动内容更新,避免逐个单元格手工维护。</p> <div class="docs-detail-list"> <article id="table-template-item-1" class="docs-detail-row"> <strong>表格模板有哪些关键字段</strong> <p>Table name 为显示标题,Table text ID 为标题翻译键,均非脚本查找名。Headers 为列标题,Header text IDs 为列标题翻译键,Rows 为二维数组。</p> </article><article id="table-template-item-2" class="docs-detail-row"> <strong>Headers 和 Rows 字段填写规则</strong> <p>Headers、Rows 接受数组、Page Script 数组变量或返回数组的函数,如 =buildPumpRows()。固定文字加引号;Tag 名称字符串不能直接作为行数据。</p> <ul> <li>直接表头:['设备', '状态']</li><li>直接行:[['Pump 1', 'Running'], ['Pump 2', 'Stop']]</li><li>引用变量:Rows 填 tableRows</li><li>引用函数:Rows 填 buildTableRows;显式调用填写 =buildTableRows()</li> </ul> </article><article id="table-template-item-3" class="docs-detail-row"> <strong>Table Rows 写法:数组、变量名或函数名</strong> <p>Rows 既可以直接写数组,也可以写变量名,还可以写函数名。推荐把稍复杂的数据放在 Page Script 里准备好,然后在 Rows 配置框里填变量名 tableRows。</p> <ul> <li>直接数组适合快速静态表格</li><li>变量名适合页面脚本提前准备数据</li><li>函数名适合需要运行时重新计算表格数据的场景</li> </ul> <pre class="docs-code-block"><code>var tableRows = [
["Pump 1", "Running"],
["Pump 2", "Stop"]
];
// Table 模板的 Rows 配置框填:tableRows</code></pre> </article><article id="table-template-item-4" class="docs-detail-row"> <strong>表格中接入 Tag 结果</strong> <p>把 Tag 读取放进 Page Script 函数,每次表格求值时返回最新二维数组。Rows 使用函数名或显式 = 调用。仅在页面脚本顶层读取一次并存入数组,不会自动重新读取 Tag。</p> <pre class="docs-code-block"><code>function buildTableRows() {
return [
["Pump 1", ReadTagString("PLC_LINE01.PUMP01.STATUS_TEXT", "")],
["Pump 2", ReadTagString("PLC_LINE01.PUMP02.STATUS_TEXT", "")]
];
}
// Table 模板的 Rows 配置框填:buildTableRows
// 或者:=buildTableRows()</code></pre> </article><article id="table-template-item-5" class="docs-detail-row"> <strong>结构化行数据接入</strong> <p>后端或聚合数据可写入 JSON Tag。Page Script 用 ReadTagJson("PLC_LINE01.REPORT01.ROWS", []) 读取,再转换为 Table 所需二维数组。</p> </article><article id="table-template-item-6" class="docs-detail-row"> <strong>表头和多语言</strong> <p>Headers 适合直接声明当前表头;Header Text IDs 适合接入统一语言键。项目需要多语言时,优先维护稳定 Text ID,再把默认表头作为默认显示。</p> </article><article id="table-template-item-7" class="docs-detail-row"> <strong>表格常见错法</strong> <p>Rows 接受数组、数组变量、函数或 =buildPumpRows() 表达式。复杂整理放在 Page Script 函数中;一次读取的数组不会持续更新。</p> </article><article id="table-template-item-8" class="docs-detail-row"> <strong>表格模板的高价值场景</strong> <p>当页面需要维护多行、多列内容,且这些内容未来会随配置、Tag 或脚本变化时,表格模板可以显著降低维护成本。它特别适合设备清单、诊断列表、参数表和状态列表。</p> </article> </div> <div class="docs-note-grid"> <figure id="table-template-image-1" class="docs-note-card manual-doc-image-card"> <img src="/WEB_img/HQPPT/TemplateInstanceEditorFormTable.png" alt="表格模板实例" loading="lazy" decoding="async"> <figcaption> <strong>表格模板实例</strong> <p>表格模板适合把列头、行样式和数据来源分开管理,避免每个单元格都靠手工维护。</p> </figcaption> </figure> </div> </section>