当前 PPT 导出按页面独立维护脚本文档。页面内初始化、表格数据、标题和局部联动优先放在当前页 Page Script;确实需要复用的能力,优先由宿主 runtime 或模板本身提供,不再依赖一个全局脚本文档承载所有页面逻辑。
- 页面逻辑放当前页 Page Script
- 跨页复用优先交给宿主 runtime 或模板
- 单页流程不应作为全局公共逻辑维护
function openAlarmPage() {
qtedit.openPage("Alarm");
} 同一段逻辑放在不同入口,运行时机和可用上下文不同。先明确入口职责,再编写具体方法。
同一段逻辑放在不同入口,运行时机和可用上下文不同。先明确入口职责,再编写具体方法。
当前 PPT 导出按页面独立维护脚本文档。页面内初始化、表格数据、标题和局部联动优先放在当前页 Page Script;确实需要复用的能力,优先由宿主 runtime 或模板本身提供,不再依赖一个全局脚本文档承载所有页面逻辑。
function openAlarmPage() {
qtedit.openPage("Alarm");
} 页面脚本只属于当前页。适合页面初始化、页面内局部变量、当前页专用数据整理,以及当前页的表格、模板和展示逻辑。确定逻辑只服务当前页时,优先放在 Page Script。
window.qteditPageReady = function(ctx) {
var rows = window.tableRows || [];
qtedit.setComponentText("RowCountText", String(rows.length));
}; Definition 负责提前准备后续字段需要使用的值。它适合进行标签读取、条件拆分和中间变量整理。通常不在这里直接完成最终动作,而是将最终结果留给 Condition、Value、Text 或后续动作字段。
var running = ReadTagInteger("PLC1.PUMP.RUN", 0);
var alarm = ReadTagBoolean("PLC1.PUMP.ALARM", false);
var ready = running === 1 && !alarm; Click Script 适合按钮点击、确认动作、打开页面、写值、弹窗;Hover Script 适合鼠标移入提示、预览和样式变化。它们都是对象级逻辑,不适合承载整页初始化代码。
// Click Script
qtedit.openPage("Alarm");
// Hover Script -> Mouse Over
object.style.opacity = "0.75"; Condition、Active、Value、Text、Fill、Stroke、Move、Rotate、Scale 这类字段属于表达式位置,需要立即返回布尔值、数字、颜色或文本。`fetch`、`Promise`、定时器和批量页面修改应放在 Page Script、Click Script、Hover Script 或 `qteditPageReady` 中处理,再把结果写入变量或 Tag。
// Page Script
var pressure = ReadTagDouble("Device.PRESSURE", 0);
function pressureColor() {
return pressure > 8 ? "#dc2626" : "#16a34a";
}
// Script Color / Fill
pressureColor()
页面级逻辑优先放入 Page Script,避免分散在大量对象脚本中。
按钮或对象动作优先放点击脚本,职责会更清晰。
悬停类交互和提示行为更适合放在这里。