指令集说明文档创建空数据集 --- newemptyAPI举例1举例2清空表数据 --- emptyAllAPI举例过滤 --- filterAPI举例如果 --- ifdoAPIconditions API举例1举例2循环 --- fordoAPI说明举例新增 --- addAPI举例删除 --- delAPI举例复制 --- copyAPI举例编辑 --- editAPI举例打印 --- printAPI举例刷新 --- refreshAPI举例清空选中 --- clearrowkeyAPI举例选中表格第一行 --- selectfirstlineAPI举例查询SQL --- opensqlAPIdata API举例执行SQL --- exesqlAPIdata API举例消息指令 --- msgAPIcode类型 API举例保存指令 --- saveAPIdata API举例弹窗指令 --- popupAPI举例弹窗内容说明关闭弹窗指令集 --- closepopAPI举例按钮指令集 --- btnhandleAPIconditionGroup 介绍举例data APIshowText API说明举例1:顶部工具栏按钮指令集举例2: 表格按钮指令集特殊说明tab页签显示隐藏 --- btnhandleAPIdata API举例说明存储过程指令 --- procedureAPI举例说明跳转tab指令 --- changetabAPI举例弹窗修改字段指令 --- poprepairAPIfieldNames说明举例calcprocedure指令API举例sValue说明简单js运算说明dataset说明合计、合并语法(适用于sValue)合计合并连接符类型合并1获取最大值(适用于sValue)举例获取表格数据数量(适用于sValue)举例获取数组中某个字段分组后的组数举例(适用于sValue)举例 (适用于condition)
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| newDataset | 新产生的临时数据 | string | / | 是(newDataset/desDataset二选一) |
| desDataset | 覆盖掉原来的数据(新增新表单时用) | string | / | 是(newDataset/desDataset二选一) |
xxxxxxxxxx{ "opr": "newempty", "newDataset": "table0"}xxxxxxxxxx[ { "opr": "newempty", "desDataset": "table0" }, { "opr": "refresh", "dataset": "table1,table2" }]
说明:清空数据集,但不保存到数据库
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| desDataset | 被编辑的数据源(仅支持逗号) | string | / | 是 |
xxxxxxxxxx{ "opr": "emptyAll", "desDataset": "table0,table1,table2"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| srcDataset | 被过滤的数据(支持@筛选) | string | / | 是 |
| newDataset | 新产生的临时数据 | string | / | 是 |
| dataset | condition用到的数据集 | string | / | 否 |
| condition | 筛选srcDataset数据(需要用到js判断的情况下使用,简单的可以用desDataset的@删选实现) | string | / | 否 |
xxxxxxxxxx{ "opr": "filter", "srcDataset": "process", "newDataset": "processNew", "dataset": "processOne,controlOne", "condition": "${processOne.sControlId}==${controlOne.sId}"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | condition用到的数据集 | string | / | 否 |
| conditions | 固定格式,里面写详细条件 | object[] | / | 是 |
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| condition | 条件语句 | string | / | 是 |
| commands | 满足条件后执行的指令集 | object[] | / | 是 |
| conditionNotEmpty | 数据集如果都不为空,继续执行(多个数据集逗号分隔) | string | / | 否 |
| conditionEmpty | 数据集如果都为空,继续执行(多个数据集逗号分隔) | string | / | 否 |
xxxxxxxxxx{ "opr": "ifdo", "dataset": "table1@sec", "conditions": [ { "condition": "'${table1.iJobStatus}' == '3'", "commands": [ { "opr": "msg", "msg": "如果状态为3指令集..." } ] }, { "condition": "'${table1.iJobStatus}' == '2'", "commands": [ { "opr": "msg", "msg": "如果状态为2指令集..." } ] } ]}xxxxxxxxxx{ "opr": "ifdo", "conditions": [ { "conditionNotEmpty": "slave", "commands": [ { "opr": "msg", "msg": "slave不为空情况" } ] }, { "conditionEmpty": "slave", "commands": [ { "opr": "msg", "msg": "slave情况" } ] } ]}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | 被循环的数据集(不支持@、不支持逗号分隔) | string | / | 否 |
| conditions | 固定写法,里面写具体条件 | Object[] | / | 是 |
循环中当前条数据用 dataset名称+One 表示
xxxxxxxxxx{ "opr": "fordo", "dataset": "control", "foropr": [ // 循环执行的指令 ]}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| desDataset | 被新增的数据集 | string | / | 是 |
| dataset | sValue进行简单计算用到的数据集(支持逗号分隔,@筛选)dataset说明 | string | / | 是 |
| sValue | 赋值规则 | string | / | 否 |
sValue说明
支持如下写法:
*(所有数据集的所有字段)
数据集名称.* (某个数据集的所有字段)
新字段名称:数据集名称.数据集内字段名称
新字段名称:数据集内字段名称(单个数据集简写时使用)
xxxxxxxxxx{ "opr": "add", "dataset": "machinedata@sec,workerOrderBatchMaterial@sec", "desDataset": "jytable0", "sValue": "sLayingOffArea:machinedata.sWorkOrderNo,sMemo:workerOrderBatchMaterial.sMaterialsNo"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| desDataset | 被编辑的数据源(仅支持@筛选) | string | / | 是 |
| dataset | condition用到的数据集(支持逗号分隔,@筛选)dataset说明 | string | / | 否 |
| condition | 筛选srcDataset数据(需要用到js判断的情况下使用,简单的可以用desDataset的@删选实现) | string | / | 否 |
xxxxxxxxxx{ "opr": "del", "desDataset": "table2@sec"}| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| srcDataset | 被复制的数据源(仅支持@筛选) | string | / | 是 |
| newDataset | 新产生的临时数据 | stirng | / | 是 |
| dataset | sValue进行简单计算用到的数据集(支持逗号分隔,@筛选)dataset说明 | string | / | 否 |
| sValue | 赋值规则 sValue说明 | string | / | 否 |
xxxxxxxxxx{ "opr": "copy", "srcDataset": "machinedata@sec", "newDataset": "machinedataNew", "sValue": "sWorkOrderNo:sWorkOrderNo,sWorkOrderId:${sWorkOrderId}+1"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| desDataset | 被编辑的数据源(仅支持@筛选) | string | / | 是 |
| dataset | condition/sValue进行简单计算用到的数据集(支持逗号分隔,@筛选)dataset说明 | string | / | 否 |
| condition | 筛选srcDataset数据(需要用到js判断的情况下使用,简单的可以用desDataset的@删选实现) | string | / | 否 |
| sValue | 赋值规则 | string | / | 是 |
xxxxxxxxxx{ "opr": "edit", "desDataset": "jytable0", "dataset": "machinedata@sec,workerOrderBatchMaterial@sec", "condition": "${machinedata.sWorkOrderId}==${workerOrderBatchMaterial.sWorkOrderId}", "sValue": "sMemo:'${machinedata.sProductName}'+'(复制指令)',sLayingOffArea:${machinedata.sWorkOrderNo}+3"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| reportName | 报表名称 | string | / | 是 |
| reportType | 报表类型 | stirng | / | 否 |
| srcDataset | 报表数据源(支持逗号分隔,@筛选) | string | / | 是 |
| bPreviewOnly | 只要预览,不要显示打印页面 | bolean | false | 否 |
xxxxxxxxxx{ "opr": "print", "srcDataset": "upSlave,master", "reportName": "生产工单A4(二维码22)_SizeW210H297", "reportType": ".pdf"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | 需要刷新的数据源 (不填/填*表示刷新整个页面) (parent.数据源名 表示刷新父页面数据源) | string | * | 否 |
xxxxxxxxxx{ "opr": "refresh", "dataset": "table0,table1"}| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | 需要刷新的数据源(支持逗号分隔) | string | / | 是 |
xxxxxxxxxx{ "opr": "clearrowkey", "dataset": "slaveWypj1"}| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | 需要选中的数据源(支持逗号分隔) | string | / | 是 |
xxxxxxxxxx{ "opr": "selectfirstline", "dataset": "slaveWypj1"}| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| data | 详细配置 | object[] | / | 是 |
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| sql | 指令类型 | string | / | 是 |
| srcDataset | 传入接口的数据源(支持@筛选, 逗号分隔会把两个数据合并) | string | / | 是 |
| newDataset | 接口返回数据的存放数据源 | string | / | 是 |
| sSqlCondition | 后台用到的参数 | string | / | 是 |
xxxxxxxxxx{ "opr": "opensql", "data": [ { "sql": "select IFNULL(max(sBoardNo),0)+1 AS sBoardNo,IFNULL(max(sIndexNo),0)+1 AS sIndexNo FROM plc_machinedate_tray WHERE sWorkOrderId = ${sWorkOrderId} and sMachineId = ${sMachineId} ", "srcDataset": "machinedata@sec", "newDataset": "openPlctray", "sSqlCondition": "machinedata.sWorkOrderId.sWorkOrderId,machinedata.sMachineId.sMachineId" } ]}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| data | 详细配置 | object[] | / | 是 |
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| sql | 指令类型 | string | / | 是 |
| srcDataset | 传入接口的数据源(仅支持@筛选) | string | / | 是 |
xxxxxxxxxx{ "opr": "exesql", "data": [ { "sql": "update plc_machinedate_tray SET bWlStatus= 1 WHERE sId=${sParentId}", "srcDataset": "palletBatchMaterial@sec" } ]}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| sql | 指令类型 | string | / | 是 |
| code | 消息类型 | number | / | 是 |
| msg | 消息内容 | string | / | 是 |
| time | 弹窗消失时间(单位:秒)(能自动消失的类型才生效) | number | 3 | 否 |
| 值 | 说明 | 是否自动消失 |
|---|---|---|
| -1 | 错误类型消息 | 是 |
| 1 | 成功类型消息 | 是 |
| 2 | 提示类型消息 | 否 |
| -8 | 错误类型消息 | 否 |
| -7 | 确认类型消息(确定:继续执行,取消:指令集立即结束) | 否 |
xxxxxxxxxx{ "opr": "msg", "code": 1, "time": 3, "msg": "删除成功"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| data | 单表保存专用 (传统表单保存请不要添加这个属性) | object[] | / | 否 |
| doNotValidate | 保存不进行校验 | boolean | false | 否 |
| doNotRefresh | 保存后不刷新表格 | boolean | false | 否 |
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| tablename | 表名 | string | / | 是 |
| srcDataset | 表格名称 | string | / | 是 |
xxxxxxxxxx// 表单模式保存{ "opr": "save"}
// 单表模式保存{ "opr": "save", "data": [ { "tablename": "plc_machinedate_tray_slave", "srcDataset": "table0" }, { "tablename": "plc_machinedate_tray_slave1", "srcDataset": "table1" } ]}
// 单表模式保存(不刷新表格) { "opr": "save", "doNotRefresh": true, "data": [ { "tablename": "eptmachinemaintainplanslave", "srcDataset": "table1" } ] }
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | 弹窗【SQL条件】用到的数据源 | string | / | 否 |
xxxxxxxxxx{ "opr": "popup", "dataset": "slave@sec"}弹窗配置参照【MES功能配置】-【 6、表格按钮弹窗带参数配置】
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
xxxxxxxxxx{ "opr": "closepop"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| data | 各个按钮配置 | object[] | / | 是 |
| conditionGroup | 可多次复用的条件数组 | object{} | / | 否 |
key值: 自定义
value值:下方enabled/show/condition内会复用到的条件
调用时支持 conditionGroup.key值 或 !conditionGroup.key值 两种格式
xxxxxxxxxx{ "opr": "btnhandle", "conditionGroup": { "condition1": "${slave@one.sState.===.未审核}" }, "data": [ { "name": "BtnBatchSubmit", "enabled": "conditionGroup.condition1" }, { "name": "BtnBatchSubmit1", "enabled": "!conditionGroup.condition1" } ]}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| name | 按钮的控件名(支持逗号分隔) | string | / | 是 |
| show | 是否显示 | boolean/string | true | 否 |
| enabled | 是否可以点击 | boolean/string | false | 否 |
| showText | 按钮名称 | object[] | / | 否 |
| click | 点击指令集(表格中生效) | object[] | / | 否 |
| afterClick | 按钮点击后调用 | boolean | false | 否 |
| clickOnly | 只执行指令集,不执行原先按钮功能 | boolean | false | 否 |
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| condition | 条件 | string | / | 是 |
| text | 按钮显示名称 | string | / | 是 |
show/enabled的值
填 true/false 时就是固定情况,永远不变
填${xxx}就是根据条件判断显示不显示/可点击不可点击
xxxxxxxxxx{ "opr": "btnhandle", "data": [ { "name": "BtnBatchSubmit,BtnBatchExamine", "enabled": "${slave@one.sState.===.未审核}", "show": "${master.bCheck} !== true", "click": [ { "opr": "msg", "msg": "我是按钮前指令" } ] }, { "name": "BtnOut", "enabled": true, "showText": [ { "condition": "${slave@one.sState.===.未审核}", "text": "导出1" }, { "condition": "${slave@one.sState.!==.未审核}", "text": "导出2" } ] } ]}xxxxxxxxxx{ "opr": "btnhandle", "data": [ { "name": "BtnAdd", "enabled": "${props.enabled} && ${slave.dProductQty} > 0", "click": [ { "opr": "msg", "msg": "表格行按钮指令集测试" } ] } ]}${表名@one.表字段.比较条件.比较内容}
表示:【某表所有选中数据中】【只要有一条数据满足】 【某个字段】【等于/不等于/大于/小于】【比较内容】
${表名@all.表字段.比较条件.比较内容}
表示:【某表所有选中数据中】【所有数据都满足】 【某个字段】【等于/不等于/大于/小于】【比较内容】
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| tabs | 各个tab页签配置 | object[] | / | 是 |
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| name | tab页签名称 | string | / | 是 |
| show | 是否显示 | boolean/string | true | 是 |
xxxxxxxxxx{ "opr": "btnhandle", "tabs": [ { "name": "可用数量评审", "show": "${props.enabled} && ${slave.dProductQty} > 0" } ]}show的配置同按钮显示隐藏功能的enable一致
配置配在【主表】
同时有按钮显示隐藏、tab页签显示隐藏时,配置如下
xxxxxxxxxx{ "opr": "btnhandle", "data": [ { "name": "BtnAdd", "enabled": "${props.enabled} && ${slave.dProductQty} > 0" } ], "tabs": [ { "name": "可用数量评审", "show": "${props.enabled} && ${slave.dProductQty} > 0" } ]}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| config | 存储过程配置(配置和普通存储过程配置保持一致) | object{} | / | 是 |
| bRefresh | 等待刷新后继续执行剩余指令集 | boolean | false | 否 |
| bValidateList | 表单校验 | object[] | / | 否 |
xxxxxxxxxx{ "opr": "procedure", "config": { "sproName": "sp_working_staff", "inMap": "table0.sMachineName,table0.sBillNo,userinfo.sEmployeeName", "staticData": { "sOperate": "start" } }}
// 带表单校验{ "opr": "procedure", "bValidateList": ["table4"], "config": { "sproName": "Sp_Check_DailyReport", "inMap": "table4.*,userinfo.sWorkshopId" }}
存储过程指令执行完成后,会刷新页面,页面重新获取数据后再执行剩余指令集
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| tabName | 需要跳转到的tab名称(中文) | string | / | 是 |
xxxxxxxxxx{"opr": "changetab","tabName": "年保养"}
| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| title | 弹窗名称 | string | / | 是 |
| confirmBtnName | 自定义确认按钮名称 | string | / | 否 |
| fieldNames | 弹窗展示字段 | string | / | 是 |
| dataset | sValue用到的数据集(支持@和逗号分割) | string | / | 否 |
| sValue | 给弹窗数据赋默认值 | string | / | 否 |
| srcDataset | 表单下方按钮弹窗时指定的当前表名(表单时才有用!) | string | / | 否 |
| formEnabledCondition | 表单可编辑条件(优先级高于表单的formEnabledCondition) | string | / | 否 |
表格配置的【字段名】,多个时用英文逗号【,】拼接
xxxxxxxxxx[ { "opr": "poprepair", "title": "领班验收", "fieldNames": "sForeman,bForemanAccept,tForemanAcceptDate", "dataset": "userface@sec", "sValue": "sForeman:userface.name" }, { "opr": "save", "data": [ { "tablename": "EptMachineMaintenanceMaster", "srcDataset": "table2" } ] }]| 属性 | 说明 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| opr | 指令类型 | string | / | 是 |
| dataset | 指令传给后台的数据集(默认全部,若要指定,用逗号分隔,例如tabe1,table2) | string | * | 否 |
| sProName | 存储过程名称 | string | / | 是 |
| sButtonParam | sButtonParam参数 | string | / | 否 |
xxxxxxxxxx[{ "opr": "calcprocedure", "sProName": "Sp_SalesOrderReviewPassRate_calc" }]
格式1:newDataset的字段名.srcDataset的字段名 格式2:newDataset的字段名.简单js运算 // 详见简单js运算 格式2: var运算
xxxxxxxxxxsMachinetrayId: '${var sReturn = ''; if (Object.keys(jytable0@).length > 0) { sReturn = jytable0.sId} else if (Object.keys(wytable0@).length > 0) { sReturn = wytable0.sId } sReturn }'字段赋值时需要在不同条件下数据集中取数据。增加支持JS语法。识别前缀'${var'与后缀 '}'中的数据做解析。之前支持 jytable0.sId 取字段值, 增加 jytable0@ 判断数据集长度来识别数据集是否为空。上面例子场景:MES登录 凹印设备或胶印设备时,版材选择时,需要对应到MES中设备的托盘id,在MES界面中是两个不同的数据集。需要取 jytable0, wytable0 两个数据集哪个有值取哪个数据集中的sId.
xxxxxxxxxx
作用:condition、sValue做js运算时用到的数据
特点:筛选出的数据只有一条
种类:
只有数据集名称, 例如:slave,传到运算中的数据为【当前数据集的第一条】
数据集名称@过滤类型,例如:slave@sec, 传到运算中的数据为【过滤出数据集的第一条】
数据集名称@parnet过滤类型,例如:slave@parentsec, 传到运算中的数据为【过滤出父页面该数据集的第一条】
${表名@sum保留小数位数.字段名}
表示合计某张表的某个字段的数量,并保留指定位小数
举例:${slave@sum2.dProductPrice} 表示合计slave表的dProductPrice数量,并保留两位小数
${表名@merge连接符.字段名}
表示合并某张表的某个字段的值,并用连接符连接
举例:${slave@mergedot.sId} 表示合并slave表的sId的值,并用逗号连接,输出结果类似:"12345,23456'"
| 连接符名称 | 实际连接符 |
|---|---|
| 空(merge.字段名) | 空 |
| dot | , |
| minus | - |
| plus | + |
| divide | / |
| underline | _ |
${表名@mergequo连接符.字段名}
用法同上
区别,mergequo输出的结果会带单引号,输出结果类似:"'12345','23456'"
${表名@max.字段名}
xxxxxxxxxx[ { "opr": "newempty", "newDataset": "temp0" }, { "opr": "edit", "desDataset": "temp0", "sValue": "max:${table0@max.iRowNum}" }]
${表名@count}
xxxxxxxxxx[ { "opr": "newempty", "newDataset": "temp0" }, { "opr": "edit", "desDataset": "temp0", "sValue": "count:${table0@count}" }]
${表名@groupCount.字段名}
xxxxxxxxxx[ { "opr": "newempty", "newDataset": "temp0" }, { "opr": "edit", "desDataset": "temp0", "sValue": "count:${table0@groupCount.sBusinessType}" }]xxxxxxxxxx[ { "opr": "filter", "srcDataset": "slave@sec", "newDataset": "slaveNew" }, { "opr": "ifdo", "conditions": [ { "condition": "#${slaveNew@groupCount.sBusinessType}# === 2", "commands": [ { "opr": "msg", "code": -1, "msg": "订单类型需要保持一致!" } ] }, { "condition": "#${slaveNew@groupCount.sBusinessType}# === 1", "commands": [ { "opr": "msg", "code": 1, "msg": "订单类型校验通过 !" } ] } ] }]