操作构件



在完成上面控制业务字段信息维护和字段权限分配后,点击控制业务操作信息维护,进入该模块的维护界,面刚添加的模块会在这里出现。该模块的功能有新增,修改,删除、复制、粘贴按钮,可以给该节点添加、修改、删除该节点下的信息,可以复制该操作节点的所有信息,然后在进行新增或修改某个操作时把最近的复制信息粘贴过来。

如图所示:




该模块界面字段信息:


  • 操作名称:该操作的名称,新增、修改等。

  • 执行脚本类型:在点击操作时用于进行脚本验证或进行信息提示等,其选项有:0:无脚本(不执行脚本);1:点击前执行脚本(在执行操作所有功能前执行该脚本,必须在执行脚本框中输入脚本,脚本必须返回truefalse用于确定是否再往下继续执行,若为true则继续,若为false则终止);2:点击后执行脚本(在执行完操作所有功能后执行该脚本,必须在执行脚本框中输入脚本,不需要返回truefalse)。

    说明:当选择无脚本(不执行脚本)时,系统不执行任何脚本;当选中点击前执行脚本,需要在“点击前执行脚本”录入框中录入脚本,当选中点击后执行脚本时,需要在“点击后执行脚本”录入框中录入脚本;如果“点击前执行脚本”和“点击后执行脚本”都存在,选择这两个类型中其中一个类型进行保存即可,系统处理时发现类型为“无脚本”将不执行任何脚本,如果类型为“点击前执行脚本”或“点击后执行脚本”,只要二者脚本中有不为空者就将执行,为空则不执行,二者都不为空则都执行。

  • 不能操作的提示语言:由自己输入不能操作的原因,如没有数据等。

  • 操作成功的提示语言:如删除成功!,保存成功!等。

  • 可操作按钮图片的相对超连接地址:存放图片的路径。

  • 不可操作按钮图片的相对超连接地址:存放图片的路径。

  • 操作按钮的CSS:可以用css自定义出操作按钮的显示样式。

  • 数据为空时的状态0:无效;1:不可操作;2:可操作。

  • 操作功能类型0:无操作;1:刷新数据(select)2:执行SQL3:执行SQL后刷新4:弹出过滤框。5:弹出编辑框确认操作,6:弹出编辑框取消操作,7:弹出浏览框,8:送审工作流,9:审核工作流,10:浏览工作流,11:浏览工作流历程,12:报表预览,13:报表打印,14:查询树,15:弹出上传多附件框(可以上传多个附件,必须输入上传路径,原过滤界面列宽组的输入框变为上传附件路径),16执行SQL后刷新主界面元(用于细表的功能类型),17Excel报表,18:指纹读取(必须要设置指纹取值字段名,该字段将存储读出来的指纹加密编码,所支持的指纹设备见www.ZKsoftware.com),19:指纹验证(必须要设置指纹验证的取值字段名,该字段存储了需要验证的指纹加密编码,所支持的指纹设备见www.ZKsoftware.com),20:指纹验证执行SQL(必须要设置指纹验证的取值字段名,该字段存储了需要验证的指纹加密编码,验证成功后将执行在操作SQL构件中设置的SQL所支持的指纹设备见www.ZKsoftware.com)21:编辑文档执行SQL,主要用于文档处理,在新增保存文档或修改保存文档时使用,保存文档的同时要保存记录信息,22:上传加密多附件框,弹出多选文件框,可以上传多个文档,上传后对文档进行加密。在选择811时必须要选择一个工作流,在选择1213时必须要选择一张报表。在选择14时必须选择一个查询树,23:导入Excel,Excel数据导入数据库。

  • 操作顺序号:操作按钮在界面的顺序。

  • 操作成功后的界面状态0:浏览状态;1:修改状态;2:新增状态;3:不设状态(不改变界面状态,原来界面是什么状态仍是什么状态);4:新增根状态;5:复制状态(用于文件)6:剪切状态(用于文件或目录)

  • 默认操作状态0:不可操作;1:可操作。是必选项。

  • 过滤界面列宽组:必须为双数,是弹出过滤界面列的排列列宽组。

  • 过滤框标题(工作流批量审核布尔字段名):在弹出的过滤框顶部显示的标题。当操作功能类型为送审工作流或审核工作流时,该字段为工作流批量审核布尔字段名,目前只用于审核情况。

  • 可操作性设置:如果在本操作变为真时取值系列组为:00001=1,00002=1,00005=0,00006=0,00007=1指示:操作功能ID00001的置为真;操作功能ID00002的置为真;操作功能ID00005的置为假;操作功能ID00006的置为假;操作功能ID00007的置为真;即:点击新增后,新增 、修改、删除置为假,确认,取消置为真,Note:: 00001为当前节点的主键ID

  • 流程脚本:如果该操作是属于流程控制的操作,在流程弹出界面显示出来前需要对从后端取过来的数据进行加工,需要写脚本进行处理,现在只用于对审批人或审批单位列表进行处理。审批人或审批单位列表在脚本数组RoleMemberList里保存,用脚本对RoleMemberList进行加工处理,如:

             for(vari=RoleMemberList.length-1;i>-1;i--)

    { 

                 if(RoleMemberList[i].EmpName!=getFv('S','ZYQ'))

                     RoleMemberList.splice(i,1);

    }

    getFv('S','ZYQ')为从当前界面中取出作业区,把不等于该作业区的审批单位都删掉。数组RoleMemberList中的主要内容有

    RoleMemberList[0].DepID:单位ID

    RoleMemberList[0].DepName:单位名称

    RoleMemberList[0].EmpID:人员ID(如果流程是发送到单位则为单位ID

    RoleMemberList[0].EmpName:人员名称(如果流程是发送到单位则为单位名称)


  • 校验脚本:只在行编辑时是否可以编辑本行时检验使用,为javascript编写的脚本,定制者按规定接口格式自己编写 (删除时提示的脚本格式 :confirm(“确认要删除该报表信息记录吗?”);)。如果该操作的检验类型是客户端脚本检验,则该项为必填项。说明:可用脚本进行Url重置刷新本模块,如:window.parent.frames[3].location='../MasterBillDetail/MasterBillDetail1.aspx?GUIID=00000082'。当执行脚本类型选择为“点击前执行脚本”时则要求输入点击前执行的脚本内容,当执行脚本类型选择为“点击后执行脚本”时则要求输入点击后执行的脚本内容。

  • 过滤界面列宽组:如果是2列,第一个是显示汉字列宽,第二个是内容列宽,之间用逗号隔开。如:100,200。如果是4列,第一个是显示汉字列宽,第二个是内容列宽,第三个是显示汉字列宽,第四个是内容列宽。之间用逗号隔开。如:100,200,50,300。必须是偶数对。

  • 预览打印报表:当操作功能类型为“12:报表预览,13:报表打印”时必须要选择一张报表与之对应。

  • 业务工作流:如果操作功能类型为891011时,要选择一种工作流。

  • 工作流键取值字段名:如果操作功能类型为891011时,必须要填写本界面元能唯一标示一条记录的键字段物理名。

  • 工作流显示标题取值字段名:如果操作功能类型为891011时,必须要填写本界面元能标示一条记录意义的字段物理名(它的取值一般为汉字描述或汉字名称)。

  • 查询树名称:选择一个查询树,当操作功能类型选择为“14.查询树”时该项选择才有效。该操作和一个查询树关联起来,当点击该操作时系统会弹出一个查询树。

  • 弹出界面:选择一个弹出界面,对于操作功能类型为“0:无操作;1:刷新数据(select)2:执行SQL3:执行SQL后刷新;16执行SQL后刷新父界面元”时有效。该下拉框列出模块维护中的模块类型为“8.弹出式界面”的所有模块供选择。

  • 弹出界面状态:选择一个弹出界面状态,0:浏览状态;1:修改状态;2:新增状态。

  • 是否进行字段验证:如果设置为验证,则在修改、新增状态时点击该操作将进行字段验证,否则不验证。

  • 操作类型:操作类型有固定按钮、事件按钮、自由按钮、菜单按钮等。固定按钮是由系统创建并显示到相应位置上的一种按钮类型,事件按钮不显示到界面上,与某一事件绑定进行的一种操作,该事件触发将会执行该操作,自由按钮是可以在自定义界面上有定制者自由放置的一种按钮,如果为菜单按钮则要定义快捷菜单的目标。

  • 快捷菜单目标:如果操作类型为菜单按钮时该设置有效,目前有三种情况:无、标签页界面元、树界面元。如果目标为标签页界面元,则在标签页界面元中点击鼠标右键会弹出快捷菜单,同理如果目标为树界面元,则在树界面元中点击鼠标右键会弹出快捷菜单。

  • 可操作性脚本:javaScript脚本文本,系统执行该脚本后必需返回一个值或者为false(0)或者为ture(1), false(0)说明该操作不可用,反之ture(1)说明该操作可用。


该模块有新增、修改删除操作:


新增操作:选中要添加操作的界面元,点击【新增】,界面进入新增状态。维护好该界面的字段信息后点击【确定】按钮完成新增操作。


修改操作:选中要修改的操作,点击【修改】按钮,界面进入修改状态。重新维护好该界面的字段信息后点击【确定】按钮,完成修改操作。


删除操作:选中要删除的操作,点击删除按钮,系统弹出确认操作对话框。点击确定删除该操作,点击取消按钮取消本次删除操作。注意:删除操作时应先删除分配给角色的该操作的权限,否则进行删除时系统会报错。


复制操作:选中要复制的操作,点击复制按钮,如果复制成功会弹出对话框提示,复制可以进行多次,但只保留最近一次有效。对某个操作进行复制后,可以对新增的操作或要修改的操作进行粘贴,刚才复制的操作所有信息就带了过来。如果新增的操作信息和已有的某个操作信息很类似,可以先复制已有的某个操作信息,然后新增时再进行粘贴,然后作简单修改就可以完成新操作的定义,提高了工作效率。

粘贴操作:在新增操作或修改才作时出现,并且进行过了复制操作粘贴操作才有效。用于把其他类似的操作信息快速搬到现在正编辑的操作中来,从而提高了工作效率。



<think> 我们正在讨论MCGS策略脚本与设备操作构件的联动方法。根据用户提供的引用,我们知道MCGS触摸屏可以与PLC(如西门子S7-200)联合控制设备,例如步进伺服电机。在MCGS中,设备操作构件通常指在用户界面上配置的构件(如按钮、输入框等),而策略脚本则用于编写控制逻辑。联动方法主要涉及如何通过脚本控制构件,以及构件如何触发脚本执行。 具体联动方法如下: 1. **通过策略脚本控制设备操作构件**: - 在策略脚本中,可以直接读写与设备操作构件关联的变量。例如,在界面上有一个按钮构件,其操作属性关联了一个变量`启动按钮`。在脚本中可以通过给这个变量赋值来改变按钮的状态(如按下或抬起)。 - 示例脚本: ```vb ' 当满足某个条件时,自动按下按钮 If 自动启动条件 = 1 Then 启动按钮 = 1 ' 1表示按钮按下状态 Else 启动按钮 = 0 ' 0表示按钮抬起状态 End If ``` 2. **设备操作构件触发策略脚本执行**: - 在设备操作构件的属性设置中,可以关联脚本。例如,按钮构件可以设置“按下时执行脚本”或“抬起时执行脚本”。这样,当用户操作按钮时,就会执行相应的脚本。 - 设置步骤: a. 在用户窗口中,双击按钮构件,进入属性设置。 b. 在“操作属性”选项卡中,选择“按下执行脚本”或“抬起执行脚本”。 c. 在脚本编辑器中编写相应的控制逻辑。 3. **共享数据变量实现双向联动**: - 设备操作构件和策略脚本可以通过共享数据变量来实现联动。例如,一个输入框构件关联了变量`目标速度`,策略脚本可以读取这个变量并发送给PLC控制电机速度;同时,策略脚本也可以将从PLC读取的实际速度值写入另一个变量,然后在界面上用显示构件展示出来。 4. **利用策略脚本处理构件事件**: - 对于更复杂的事件处理,可以在策略脚本中使用事件驱动的机制。例如,当某个报警条件满足时,策略脚本可以修改一个报警指示灯构件的状态(如颜色变化)并弹出报警窗口。 - 示例脚本(在策略脚本中): ```vb If 温度 > 100 Then ' 改变报警指示灯的颜色为红色 报警指示灯.FillColor = VBRed ' 弹出报警窗口 !OpenWindow("报警窗口") End If ``` 5. **设备操作构件与脚本策略的同步更新**: - 当设备操作构件的状态变化(如用户操作)需要立即反映到控制逻辑时,可以通过设置策略的循环时间较短来实现快速响应。同时,也可以使用事件策略(与脚本策略类似,但由事件触发)来立即响应构件操作。 注意:在MCGS中,设备操作构件通常与“设备窗口”中配置的PLC设备变量进行连接,而策略脚本可以直接访问这些变量。因此,通过变量作为桥梁,策略脚本和设备操作构件可以方便地联动。 示例场景:电机控制 - 在界面上有一个“启动”按钮,一个“停止”按钮,一个输入框用于设置目标位置,一个显示框用于显示当前位置。 - 联动实现: - “启动”按钮按下时,执行脚本将目标位置的值发送给PLC,并启动电机运动。 - 策略脚本周期性地从PLC读取当前位置,并更新显示框的变量。 - 当电机运行到目标位置时,策略脚本自动将“启动”按钮状态复位(抬起)。 根据以上内容,我们可以为用户总结联动方法。 注意:引用资料中提到了MCGS与西门子S7-200PLC的联合控制,其中涉及了实时显示电机当前位置,这正好说明了设备操作构件(显示框)与策略脚本(读取位置并更新变量)的联动[^2]。 因此,回答如下: </think> ### MCGS策略脚本与设备操作构件的联动方法 MCGS策略脚本与设备操作构件(如按钮、输入框、指示灯等)的联动主要通过**变量绑定**和**事件驱动**实现,具体方法如下: #### 1. **变量绑定联动(核心机制)** 设备操作构件需关联**组态变量**,脚本通过读写同一变量实现双向联动: ```vb ' 脚本策略中控制按钮状态 If 传感器值 > 100 Then 紧急停止按钮 = 1 ' 自动触发按钮按下状态 End If ' 按钮操作反向控制脚本 Sub 启动按钮_Click() !SetDevice("电机", 1) ' 点击按钮启动设备[^2] !LogMessage("设备手动启动") End Sub ``` **配置步骤**: 1. 在构件属性中绑定变量(如`紧急停止按钮`) 2. 脚本中直接读写该变量 #### 2. **事件驱动联动** 通过构件事件触发脚本执行: - **按钮点击事件**:执行指定脚本函数 - **数据变化事件**:当输入框值变化时触发校验逻辑 ```vb ' 输入框值变化触发脚本 Sub 目标速度_Change() If 目标速度 > 最大转速 Then !Alarm("速度超标") ' 触发报警 目标速度 = 最大转速 ' 自动修正数值 End If End Sub ``` #### 3. **实时状态反馈** 设备构件动态显示脚本控制的设备状态: ```vb ' 脚本更新设备状态 电机状态 = !ReadDevice("电机") ' 指示灯构件绑定"电机状态"变量 ' ▶ 当变量=1时显示绿色,=0时显示红色 ``` ![](https://via.placeholder.com/400x200?text=指示灯状态同步示意图)[^1] #### 4. **联动应用案例** **电机控制系统**(参考引用[2]): ```vb ' 策略脚本 If 复位按钮 = 1 Then ' 按钮触发 !SetServo("伺服电机", "HOME") ' 执行复位 当前位置 = 0 ' 重置位置显示 End If ' 位置显示构件绑定"当前位置"变量 ' ▶ 实时更新电机位置数据 ``` #### 5. **调试技巧** 1. 使用`!LogMessage`输出联动日志 2. 在运行策略中设置**断点**观察变量传递 3. 通过「实时数据库」监控变量变化时序 > ⚠️ **注意事项** > - 确保变量名称在脚本和构件中**完全一致** > - 事件响应脚本需设置合理的执行周期 > - 关键操作需添加互斥锁防止冲突 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值