列表界面脚本脚本控制精度_西门子COMOS软件开发定制学习6-管理界面定制

COMOS一体化平台提供了很多管理和设计功能,这些功能可以单独使用。但如果能将其按照自身业务需要进行有机的组合,将为普通用户带来更大的便利和效率提升。

72351e2652073bbbe342a33608e2f386.png

通过定制交互界面,可以化繁为简,让相关用户只需关注自己需要的内容。清晰的功能按钮,让用户无需操作手册即可直接使用。

73bbad12d7dcf03ce7a955e1659294cd.png

今天先一起学习下基本的设备管理界面定制,如下图所示:

7ae2e76814c4bcd7ded270cfa43adfb5.png

功能介绍:

  1. 选择“查询节点”,输入要查询的“设备编号”,点击“查询”按钮,即在下方列表显示符合条件的设备信息。
  2. 选择某行设备,点击“查看设备”按钮,弹出设备属性界面。
  3. 点击“导出Excel”按钮,将列表自动导出Excel文件。

接下来开始功能定制,首先打开COMOS(如经常使用同一数据库,可以选择“视图|快速启动”)

5f736f1d76070e2c01b648829e2e8572.png

​那么以后每次双击COMOS图标后,将自动打开上一次关闭时所在的项目和工作层。

打开项目后,推荐创建新的工作层,可以帮助我们保护数据和恢复数据。

9a9eea384932b0fa15a093edf9002d5f.png

双击进入新建工作层,根据需要在相应结构中新建管理界面对象,此处暂创建在项目根节点,并给新建的界面对象命名。

08357d58ffb6392a0f8c49af03329e3d.png

如需设置界面的图标,可点击图标按钮,如下图所示。

f2682bca7263356212cf8e8a0fc524ed.png
6e45f5fe50e4e85e29469bab219e6f25.png

点击界面对象的属性选项卡

5b98fac4069328135bf945dbaf182a40.png

在属性选项卡的空白区域,鼠标点击右键,选择设计模式

9b1eedac184390d56894f11f79177d06.png

新建选项卡

9f141329dc520fd9b0cd330aff8b3ab7.png

填写选项卡名称和描述,其中名称是必填关键字

173257f30aeda11806c65afe2fab275a.png

进入新建选项卡,新建属性

a0b2fc208c74da3c4108173d855df5a6.png

显示类型选择“框架”,输入名称和描述,其中名称为必填关键字

785317f3486fbe1714bc16d337cc7284.png

依次按下图创建显示类型为“链接”、“编辑字段”“按钮”、“查询”的属性参数,如下图所示

95094974a577d13307f426aa948ec14d.png
ab99fcbb3d8a96d86b73b9fb7b172cd6.png
49809b110619f8d5857fe4cdb26c11bd.png
6a9929884f05c5ae80b294e9bb39f4f3.png
3e48a9ee0f3ebda220394b6d77b50b50.png
68d29c4544c26e8f783a60ed90c1214a.png

调整属性参数尺寸和位置,如下图所示

942916f2289b15b10ae8de28f27b6e3a.png

接下来定制用于显示设备信息的Query列表。

在COMOS上方菜单选择“查询(Q)|工程对象查询|查询:工程对象”

503997a89b8d1a08f6de94a0e9b89ba6.png

拖拽起始对象和基础对象至相应位置

4a45a4802f3f578d51b4ec59593f5e5b.png

在“标签”列的表头上鼠标点击右键,选择属性

deeea0c5841ae7d222ff5ff423e8d387.png

将描述“标签”改为“设备编号”

8beb24e7c54522b21af668c842e32693.png

点击“值计算”选项卡,将“标签(label)”改为“名称(Name)”

bc492d55ccc1fcbc0786470e25278828.png

然后点击“确定”按钮关闭当前属性窗口。

在“描述”列上鼠标点击右键,选择属性,修改“描述”列的描述为“设备名称”。

b8666ba8b8dfb7510bebef79156481c3.png

选择设备属性参数“功率”和“数量”拖拽至“设备名称”列的表头处,松开鼠标将自动创建“数量”和“功率”列(注:此处泵对象是定制对象,您可按自己实际需要定制Query列表)。

9954d89e4074c6deef6eb111bb898f83.png

点击Query上部“保存”右侧的箭头按钮,选择“另存为”

d22536d13a50a446c639c5518f4a2139.png

拖拽保存节点,输入名称,点击“确定”保存。

d683883ca2ae5e4fff7de07ed0e099d3.png

关闭Query界面,回到“管理界面”对象。选择“查询”参数,鼠标右键选择“属性|显示属性”

8d15fdd8dbe1e267f4368b97c644a64a.png

按下图拖拽此前保存的Query,并取消“立即执行查询”。

dd98dd9ac2fc958819af07d718742518.png

“立即执行查询”功能介绍:当Query属性参数打开时立即执行查询,但对于今天我们定制的管理功能,只需“查询”按钮点击时执行查询,因而取消此选项,避免不必要的性能浪费。

双击“查询”按钮或右键菜单选择“属性”,弹出属性窗口,选择“脚本”选项卡,双击“Sub OnClick()”,打开脚本编辑窗口。

7ddf14f1279669dc7a177540bfc17246.png

输入定制脚本:

Sub OnClick()

'事件:按下按钮之后

If GetSpecOwner.SystemType=13 Then Exit Sub '当前对象为基础对象时不执行后续脚本

'获取当前COMOS进程中的SpecQBrowsers

Set Brws = GetSpecOwner.Workset.globals.SpecQBrowsers

Set specSteps = Nothing

Set specSteps = owner.spec("Qry1") '获取当前界面的Qry参数

Set QBrowser1 = Nothing

Set Query1 = Nothing

'在COMOS进程的全局变量SpecQBrowsers中查找是否有当前Qry参数的Browser

'注意:只有Qry参数处于打开的界面中才会在SpecQBrowsers中存在

Set QBrowser1 = Brws.Item(specSteps.SystemFullName)

Set Query1 = QBrowser1.query '通过QueryBrowser获取Query

Set topQry= Query1.owner '通过Query获取TopQuery

Set topQry.mainObject=owner.spec("Z00A00002").LinkObject '赋予查询的起点

strName=owner.spec("Z00A00001").DisplayValue

Call SetFilter(Query1 ,strName) '筛选设备编号

topQry.execute '执行查询

QBrowser1.refresh '刷新Query浏览器

End Sub

点击“确定”关闭脚本编辑器,回到“脚本”选项卡,双击“UserScriptBlock1”,输入“筛选”脚本。

' UserScriptBlock1

Sub SetFilter(Qry,strName)

Set F=Qry.Filter '获取Query的过滤器对象

F.clear '清空已有的过滤条件

If strName<>"" Then

Set FI=F.addNew '增加一条过滤条件

Set FI.Column=Qry.baseQuery.columns.Item("Object") '过滤名称为Object的列

FI.Operator=9 '操作条件为9对应 “包含”

FI.value=strName '查询的值为strName

FI.caseSensitive=false '大小写不敏感

End If

End Sub

依次点击“确定”按钮关闭脚本编辑窗口和属性窗口。

以上程序涉及的Query、QueryBrowser、TopQuery、Filter对象,其层级结构如下图所示:

f7182dadb7c4bfc3ceadb88b04c2aeaf.png

关于Query详细的程序语法,请参考COMOS帮助文件中的“Class_Documentation_ivbQuery_dll_zhCN_zh-CHS.pdf”。

目录如下图所示:

4a5c6ead03f39531c4e078982be92a97.png

Query的属性方法示例:

c31203418ad769661afd83901c7c768b.png

推荐先通览查询接口的内容,然后实际开发过程中再根据需要查询具体方法和属性。

接下来定制“查看设备”按钮功能,双击“查看设备”按钮或右键菜单选择“属性”,弹出属性窗口,在脚本选项卡的“Sub OnClick()”中输入以下脚本:

Sub OnClick()

'事件:按下按钮之后

Set Brws = GetSpecOwner.Workset.globals.SpecQBrowsers

Set specSteps = Nothing

Set specSteps = owner.spec("Qry1")

Set QBrowser1 = Nothing

Set Query1 = Nothing

Set QBrowser1 = Brws.Item(specSteps.SystemFullName) '获取QueryBrowser

If QBrowser1.selectedRowObjects.Count>0 Then '获取当前列表中选中的对象集合

Set SelObj=QBrowser1.selectedRowObjects.Item(1) '获取当前列表中选中的第一个对象

Set App = Project.Workset.Globals.Application

Call App.ShowPropertiesOnMdiChild(selobj, false,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值