学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...

​本篇在西门子COMOS软件开发定制学习6-管理界面定制基础上定制,简单介绍两个查询列表之间的数据交互。

实现效果:

76568abc83aba5668dcaf2f6c50e2e25.png

在左侧列表中选择某一设备,右侧列表自动根据所选设备,显示该设备相关的设计图纸(如PID图纸或电气图纸等);

在右侧列表中选择某一图纸,点击“查看文档”按钮,将自动打开设计图纸,并在图纸中自动定位到左侧列表所选的设备。

效果动图如下:

18075cbc4639a3e7d53a527cccbbd955.gif

实现原理:

  • 借助Query的Onchange事件,实现左侧列表选择时触发动作。
  • 设备与图纸通过docObj对象连接,假如设备对象为a,那么

a.BackPointerDocObjs '为设备所在的所有图纸链接的集合

a.BackPointerDocObjs.item(1).owner '为设备所在的第一份图纸

  • 相反,如果a为图纸

a.docObjs '为图纸中所有设备链接的集合

a.docObjs.item(1).reference '为图纸中包含的第一个设备

定制过程如下:

在“设备管理”基础对象的界面中进入“设计模式”,鼠标右键创建“属性”。

16112c1f527f91a1e5331f4b6fae84ab.png

选择“框架”

31d9804f4e012991a1478b79e88ab555.png

新建文档Query

7ee7612f6fe51eb5988a43603c804724.png

删除Query中的“模型”列

092b9813ba75e1553ed8dce04513fa44.png

在“文档”列的表头处鼠标点击右键,选择属性

b505896e5005b96404c54829b9e93bfc.png

编辑“文档”列的“对象评估”选项卡,"导航步骤"中选择“Owner”

7dbbd57231748c6b27b4e84a245990a0.png

编辑“值计算”选项卡,“显示”参数选择“名称”

484a90ec2371970a30180da6c986fee8.png

点击“确定”按钮,关闭当前窗口。

在“描述”列的表头处鼠标点击右键,选择属性。编辑“对象评估”选项卡,选择“导航步骤”为“Owner”。

49505cecbf677dd0cc925bbbc33fb848.png

点击“确定”按钮,关闭当前窗口。

点击Query左上方的“保存”按钮,保存Query。

0be7e30a0a671194f94a34211551b03c.png

选择保存位置并输入名称。

c6ee77a21fc78356adf1509a4ef52ce0.png

回到设备管理界面,新建“属性”,选择显示类型为“查询”,名称为“Qry2”。

167aa971d9d4499976e11f989d8a7bd7.png

拖拽设置Qry2的尺寸大小

231ecfc3ce43d6127b39efc5d7884c06.png

在Qry2上鼠标右键,选择“属性|显示属性”。

991cb00c9af0817b0a179e35fc7f13f0.png

选择此前创建的文档Query拖拽至当前窗口“SO1基础项目”处,并取消“立即执行查询”的勾选。

2c3533607a06a858cef49dde6e270703.png

点击“确定”按钮,保存并关闭窗口

54ee79d3f26d69c369e3a00e20c9976d.png

在左侧Query上鼠标右键,选择“属性|属性”。

f5f55a7017c41f3cb555d44f37084109.png

在“脚本”选项卡,选择“Sub OnChange()”

ef7081b603f3a488b4117e2bea1463ae.png

输入以下脚本

Sub OnChange()

'编辑单位或值之后

'获取当前环境的所有QueryBrowser

Set Brws = GetSpecOwner.Workset.globals.SpecQBrowsers

Set specSteps = Nothing

Set specSteps = owner.spec("Qry1")

Set QBrowser1 = Nothing

'获取名称为“Qry1”的QueryBrowser即当前Query的Browser

Set QBrowser1 = Brws.Item(specSteps.SystemFullName)

'获取名称为“Qry2”的QueryBrowser,即右侧Query的Browser

Set QBrowser2 = Brws.Item(owner.spec("Qry2").SystemFullName)

Set Query2 = QBrowser2.Query

If QBrowser1.selectedRowObjects.Count>0 Then

Set SelObj=QBrowser1.selectedRowObjects.Item(1)

'当前设备关联的docObjs集合赋予Qry2中进行显示

Set Query2.baseQuery.OrigCollection=SelObj.BackPointerDocObjs

Query2.refresh

QBrowser2.refresh

End If

End Sub

接下来进行功能测试。

首先将设备通过拖拽方式绘制在多个PID图纸中,并保存。

f5fcd18b94adac130bff86a4ac2acd1e.png

然后在“单元”选项卡的“管理界面”对象中,查询此设备,并在左侧列表中选中,其相关图纸将自动显示在右侧列表中。

bcc7ad19f7305c73780b15a4758e098c.png

接下来定制“查看文档”按钮功能。

在管理界面中,新建“属性”。

80474c6880eeef76ba0880fd7792170e.png

在脚本选项卡,编辑“Sub OnClick()”

输入脚本如下:

Sub OnClick()

'事件:按下按钮之后

Set Brws = GetSpecOwner.Workset.globals.SpecQBrowsers

Set specSteps = Nothing

Set specSteps = owner.spec("Qry2")

Set QBrowser1 = Nothing

'获取名称为“Qry2”的QueryBrowser

Set QBrowser1 = Brws.Item(specSteps.SystemFullName)

If QBrowser1.selectedRowObjects.Count>0 Then

Set SelObj=QBrowser1.selectedRowObjects.Item(1)

'打开右侧列表中所选对象,因此Query行对象是docObj类型对象,即打开docObj

Workset.Globals.Navigator.GetCurrentTree.DefaultAction SelObj

End If

End Sub

功能测试,右侧列表中选择任一文档,点击“查看文档”按钮。

6eec34baffd56b1fdd850ba602b21fa6.png

将自动打开PID图纸,并在图纸中自动定位到左侧列表所选的设备上。

6892bd664aca2fa01584d14438ac92f2.png

今天就到这里,欢迎关注~转发~

推荐阅读:

西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核

西门子COMOS软件开发定制学习6-管理界面定制

西门子COMOS软件开发定制学习5-用程序绘制椭圆

西门子COMOS软件开发定制学习4-小游戏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值