Pages
ButtonScript
ButtonScript 控件是一个可自定义的小部件,可以通过页面编辑器放置在 HMI 页面的任意位置。顾名思义,该控件旨在响应不同的生命周期事件执行脚本,提供一种灵活的方式直接从接口触发逻辑。
房产
唱片公司
这定义了按钮上显示的文字。它作为面向用户的说明,可以描述按钮的用途或动作。
图片位置
通过URL指定按钮的背景图片。这使得视觉定制不仅限于标准标签,还能提升界面设计。
剧本加载中
当 ButtonScript 控件加载到屏幕上时,该脚本会自动运行。它适合在用户操作前初始化数值或准备条件。
剧本
这是主动作脚本,点击按钮时执行。它可以包含一个或多个预定义命令,用于控制变量、触发操作或影响HMI的其他部分。
剧本关门
当 ButtonScript 控件从视图中移除时(例如页面转换时),该脚本会执行。它可以用于清理、取消订阅变量或重置值。
ButtonScript 命令引用
每个命令都可以在 buttonscript 控件的 Script、Script on Load 或 Script on Close 属性中使用。
可用指令
| 指挥 | 描述 |
|---|---|
elementById('id') |
返回具有给定ID的内部对象引用控件 |
set(value) |
将提供的值设置为给定元素(目前仅支持 outputbasic). |
append(value) |
在当前文本内容中附加字符串,包含一个outputbasic元素。 |
appendRangeCheck(value, maxRef, minRef) |
只有当元素保持在定义的最小最大范围内时,才会附加该值。参考可以是身份证或字面数字。 |
checkRange(minRef, maxRef, targetId) |
如果元素值超出最小最大范围,则禁用目标按钮。 |
truncate(numChars) |
截断outputbasic元素的最后N个字符。 |
getValue() |
它从outputbasic元素中获取值。 |
setWs(value, connectionId, path) |
通过WebSocket向后端发送一个值(使用全局或显式连接和路径). |
setWsOnPosition(value, mapName, connectionId, path) |
如果索引为0,则将值发送到所有位置,否则使用本地页面索引 |
evalValue('javascript') |
使用当前值执行内联 JavaScript 代码,代码为 this.value. |
changeSign() |
将元素中的数值乘以-1。 |
closePopup() |
触发当前弹窗关闭。 |
getCurrentPageIndex() |
返回基于路由器URL的当前页面索引。 |
goToPage(true, pageId, index, forceProceed) |
在应用中导航到另一条路由 (/home/pageId). |
navigateToPageIndex(pageIndex, mapName, pageId, forceProceed) |
使用索引和地图名导航(比goToPage更动态). |
submitContainer() |
触发当前控件容器的提交。 |
submitAll() |
触发所有小部件的表单提交。 |
sleep(ms, forceProcess) |
暂停脚本执行 '毫秒'毫秒(可选返回 true). |
factor(value, multiplier) |
将该数值乘以给定的数值。 |
重要提示: 命令行必须始终以分号结尾;
✅示例
示例 1: 附加值和检查范围
elementById(display_element) .append(8) .checkRange(display_min, display_max, display_submit);
示例 2: 截断值与校验范围
elementById(display_element) .truncate(1) .checkRange(display_min, display_max, display_submit);
示例 3:在 WS 连接中设置值并关闭弹窗
第一行会显示在“display_element”(element properties中outputbasic集合的id)中显示的值。然后它会把它设置成连接绑定。
第二行会关闭弹窗。
elementById(display_element).getValue().setWs(); closePopup();