学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...
本篇在西门子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-小游戏
学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...相关推荐
- 无法嵌入互操作类型 请改用适用的接口_西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核...
首先需要声明的是,本篇并非COMOS实用案例,只是希望借此让大家了解,如何使用微软的WPF和C#语言开发COMOS插件. 首先看下效果图 功能说明: 拖拽COMOS设备至定制的浏览器,自动根据设备的名 ...
- QT之鼠标点击事件学习
最近在学习点击鼠标事件,在这分享给大家 window.h中的配置 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow& ...
- java鼠标点击事件_Java 鼠标点击事件实例
首先我们应该知道鼠标点击事件怎么实现 其部分代码如下 if (anyEvent.getButton() == MouseEvent.BUTTON1) {} e.getButton()返回值分别为NOB ...
- java 鼠标点击按钮事件_Java 鼠标点击事件实例
首先我们应该知道鼠标点击事件怎么实现 其部分代码如下 if (anyEvent.getButton() == MouseEvent.BUTTON1) {} e.getButton()返回值分别为NOB ...
- php鼠标点击事件,javascript模拟鼠标点击事件的实例代码
javascript触发模拟鼠标点击事件 事件触发器就是用来触发某个元素下的某个事件,IE下fireEvent方法,高级浏览器(chrome,firefox等)有dispatchEvent方法. 一般 ...
- css禁用鼠标点击事件
1.css禁用鼠标点击事件 .disabled { pointer-events: none; } 转载于:https://www.cnblogs.com/jiangtuzi/p/5728230.ht ...
- android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件
看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...
- [css] 怎样用纯CSS实现禁止鼠标点击事件?
[css] 怎样用纯CSS实现禁止鼠标点击事件? pointer-events: none; 是css3新出现的属性,意思就是禁止鼠标点击事件,当元素中有这一属性时,链接.点击事件统统失效. 个人简介 ...
- 【Qt串口调试助手】1.3 - 重写ComboBox下拉框的鼠标点击事件,实现点击下拉框扫描可用串口
由于ComboBox没有鼠标点击信号,所以如果想实现点击下拉框响应,需要重写ComboBox下拉框的鼠标点击事件.在点击事件中,添加扫描可用串口代码,实现点击下拉框时重新扫描串口.并且下拉框内容输出端 ...
最新文章
- #6279. 数列分块入门 3(区间修改,查询权值前驱)
- Redis 概念以及底层数据结构
- Table 'xxxxx' is marked as crashed and last 解决办法
- If you are confused about the future
- SpringMVC跳转页面默认类型和转发、重定向的使用
- 如何从数学角度解释何恺明新作Masked Autoencoders (MAE)?
- SQL Server Profiler的一个小问题
- 我遇到的一个怪现象!
- Python对自定义离散点进行指定多项式函数拟合
- Linux Crontab 任务管理工具命令以及示例
- 使用viewPage实现图片轮播
- 恢复 混淆后的 stacktrace 文件
- 不可不知的 Android strings.xml 那些事
- 中小型研发团队架构落地实践18篇,含案例、代码
- Memcached(七)Memcached的并发实例
- 为知笔记保存为html,为知笔记使用方法
- 嵌入式Uboot,通过tftp进行内核镜像的加载及flash写入
- 小马哥----高仿苹果6S A236 刷机拆机主板图与开机界面图 更新解锁界面 全网通4G 警惕
- vue数据传递--父传子-方法传递
- 设置PPT幻灯版自动翻页播放
热门文章
- guava之cache
- 自定义标签 (choose)
- Date Picker控件:
- 几个常用SQL2000语句
- WinAPI: SetTextColor - 设置设备环境的文本颜色
- [Leetcode][第40题][JAVA][数组总和2][回溯][剪枝]
- [剑指offer][JAVA]面试题第[21]题[调整数组顺序使奇数位于偶数面前][双指针]
- [剑指offer][JAVA]面试题[第23题][合并K个排序链表][分治][优先队列]
- java环境变量设置优化_Mac/windows配置jdk环境变量-seo优化只选拉一八科技
- =在 java中怎么表示_在Java中各种类型运算符的介绍与其基本使用方式(有具体使用示例)...