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

实现效果:

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

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

效果动图如下:

实现原理:

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

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

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

  • 相反,如果a为图纸

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

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

定制过程如下:

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

选择“框架”

新建文档Query

删除Query中的“模型”列

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

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

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

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

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

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

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

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

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

拖拽设置Qry2的尺寸大小

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

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

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

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

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

输入以下脚本

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图纸中,并保存。

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

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

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

在脚本选项卡,编辑“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

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

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

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

推荐阅读:

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

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

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

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

查看环境列表_西门子COMOS软件开发定制学习8-查询列表间的数据交互相关推荐

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

    ​本篇在西门子COMOS软件开发定制学习6-管理界面定制基础上定制,简单介绍两个查询列表之间的数据交互. 实现效果: 在左侧列表中选择某一设备,右侧列表自动根据所选设备,显示该设备相关的设计图纸(如P ...

  2. 无法嵌入互操作类型 请改用适用的接口_西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核...

    首先需要声明的是,本篇并非COMOS实用案例,只是希望借此让大家了解,如何使用微软的WPF和C#语言开发COMOS插件. 首先看下效果图 功能说明: 拖拽COMOS设备至定制的浏览器,自动根据设备的名 ...

  3. 软件开发流程--学习笔记

    软件开发流程--学习笔记 背景 产生原因及作用 个人理解 软件开发流程 需求 需求调研 需求分析 需求确认 设计 概要设计 详细设计 编码 测试 交付 维护 知识拓展 软件开发生命周期(SDLC) 软 ...

  4. 预约到店软件开发定制搭建详细方案

    预约到店软件开发,预约到店软件开发定制,预约到店软件开发搭建.伴随着社会的智能化发展趋势,无论从哪种领域角度去分析,不会太难发觉大家对时间的意识日趋高度重视.高效率的时间观是销售市场迅速有效的发展趋势 ...

  5. (广州)软件开发定制服务,工作流引擎 OA 库存管理系统

    本人专注于工作流的研究设计同时提供软件开发定制服务,工作流引擎 OA系统 库存管理系统 如果有机会合作共事请联系:15817167503(本人在广州) QQ:1311663711 加时请注明软件定制 ...

  6. 软件开发定制的类型有哪些?

    随着信息化时代的来临,各类软件应运而生,企业为了实现可持续发展,企业必须要开发适合自身的软件系统,软件开发定制是根据企业实际需求分析而开发的,就相当于量身定制服装,这样才会更适合. 企业选择软件开发定 ...

  7. 最后期限 软件工程_如何在软件开发的最后期限内实现和平

    最后期限 软件工程 D E A D L I N E- 最后期限- As a developer, this is one of your biggest nightmares or should I ...

  8. 迷宫出路代码_如何在软件开发的迷宫中找到自己的出路

    迷宫出路代码 by Tim Kleier 蒂姆·克莱尔(Tim Kleier) 如何在软件开发的迷宫中找到自己的出路 (How to find your way through the corn ma ...

  9. 文本显示变量_无代码软件开发文本字符显示设计

    腾讯课堂搜"尚识"进行在线学习 无代码软件开发如果要显示一些文字在页面中,或者是表格中显示字符串字段值,都是拖放文本显示元件,然后将要显示的值传给显示元件中的"值&quo ...

  10. 软件开发项目指标_重要的软件开发指标

    软件开发项目指标 作为一个行业,我们在衡量我们所做的工作以及做得如何出色方面做得非常差. 除了少数组织购买了昂贵的重量级模型(如CMMI或TSP / PSP(全部都是在微观水平上进行测量)或6 Sig ...

最新文章

  1. Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
  2. VC屏幕截图,保存为Bmp文件
  3. 无人出价!贾跃亭所持2210万股乐视网股票首次拍卖流拍
  4. Flink+Alink,当大数据遇见机器学习! 博文视点Broadview 前天
  5. 工业互联网发展驶入快车道
  6. win8文件共享服务器搭建,Win8系统开启公用文件夹共享的方法【图文】
  7. linux a7 a8,iOS12 A7/A8 固定Generator值 图文教程
  8. 如何用MAYA 制作人物动画 使人物动作更加真实流畅
  9. 利用VB操作目录和文件夹
  10. 小问题:要把pdg格式的jpg图片还原成pc能显示的jpg图片
  11. android9支持的tf卡格式,老手机福音 三星安卓9.0测试存储卡装应用功能
  12. Python Post提交简单案例,文本内容在线语音合成
  13. 6种继承的优点和缺点
  14. 解决办法之Duplicate entry ‘1‘ for key ‘PRIMARY‘
  15. canal deployer+canal adapter自动同步MySQL数据到ElasticSearch
  16. sqlmap用户手册详解【实用版】
  17. 【计组】储存器的性能指标
  18. OFD文件、pdf文件相互转换、ofd文件在线预览
  19. 侧扫声纳内业处理--基于HYPACK2018
  20. 揭秘国漫《武动乾坤》制作幕后 动作戏竟然真人演

热门文章

  1. KISSY - A Powerful JavaScript Framework
  2. lr_save_var() 截取任意字符串长度,以参数形式输出(参数转变量)
  3. 修改cas登陆页面-服务器端
  4. 华为2台3928千兆电口对接trunk启不来
  5. WMWorld 2010--VMware演绎虚拟化发展三段论与三部曲
  6. ASP.NET C#读写Cookie的方法!
  7. JVM-类加载、GC回收机制
  8. 北京理工大学计算机基础实验,北京理工大学2020计算机基础考研真题
  9. original:,tool:AAPT
  10. linux timeout 格式,Linux内核API wait_for_completion_timeout