学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...
?本篇在西門子COMOS軟件開發(fā)定制學(xué)習(xí)6-管理界面定制基礎(chǔ)上定制,簡單介紹兩個(gè)查詢列表之間的數(shù)據(jù)交互。
實(shí)現(xiàn)效果:
在左側(cè)列表中選擇某一設(shè)備,右側(cè)列表自動(dòng)根據(jù)所選設(shè)備,顯示該設(shè)備相關(guān)的設(shè)計(jì)圖紙(如PID圖紙或電氣圖紙等);
在右側(cè)列表中選擇某一圖紙,點(diǎn)擊“查看文檔”按鈕,將自動(dòng)打開設(shè)計(jì)圖紙,并在圖紙中自動(dòng)定位到左側(cè)列表所選的設(shè)備。
效果動(dòng)圖如下:
實(shí)現(xiàn)原理:
- 借助Query的Onchange事件,實(shí)現(xiàn)左側(cè)列表選擇時(shí)觸發(fā)動(dòng)作。
- 設(shè)備與圖紙通過docObj對(duì)象連接,假如設(shè)備對(duì)象為a,那么
a.BackPointerDocObjs '為設(shè)備所在的所有圖紙鏈接的集合
a.BackPointerDocObjs.item(1).owner '為設(shè)備所在的第一份圖紙
- 相反,如果a為圖紙
a.docObjs '為圖紙中所有設(shè)備鏈接的集合
a.docObjs.item(1).reference '為圖紙中包含的第一個(gè)設(shè)備
定制過程如下:
在“設(shè)備管理”基礎(chǔ)對(duì)象的界面中進(jìn)入“設(shè)計(jì)模式”,鼠標(biāo)右鍵創(chuàng)建“屬性”。
選擇“框架”
新建文檔Query
刪除Query中的“模型”列
在“文檔”列的表頭處鼠標(biāo)點(diǎn)擊右鍵,選擇屬性
編輯“文檔”列的“對(duì)象評(píng)估”選項(xiàng)卡,"導(dǎo)航步驟"中選擇“Owner”
編輯“值計(jì)算”選項(xiàng)卡,“顯示”參數(shù)選擇“名稱”
點(diǎn)擊“確定”按鈕,關(guān)閉當(dāng)前窗口。
在“描述”列的表頭處鼠標(biāo)點(diǎn)擊右鍵,選擇屬性。編輯“對(duì)象評(píng)估”選項(xiàng)卡,選擇“導(dǎo)航步驟”為“Owner”。
點(diǎn)擊“確定”按鈕,關(guān)閉當(dāng)前窗口。
點(diǎn)擊Query左上方的“保存”按鈕,保存Query。
選擇保存位置并輸入名稱。
回到設(shè)備管理界面,新建“屬性”,選擇顯示類型為“查詢”,名稱為“Qry2”。
拖拽設(shè)置Qry2的尺寸大小
在Qry2上鼠標(biāo)右鍵,選擇“屬性|顯示屬性”。
選擇此前創(chuàng)建的文檔Query拖拽至當(dāng)前窗口“SO1基礎(chǔ)項(xiàng)目”處,并取消“立即執(zhí)行查詢”的勾選。
點(diǎn)擊“確定”按鈕,保存并關(guān)閉窗口
在左側(cè)Query上鼠標(biāo)右鍵,選擇“屬性|屬性”。
在“腳本”選項(xiàng)卡,選擇“Sub OnChange()”
輸入以下腳本
Sub OnChange()
'編輯單位或值之后
'獲取當(dāng)前環(huán)境的所有QueryBrowser
Set Brws = GetSpecOwner.Workset.globals.SpecQBrowsers
Set specSteps = Nothing
Set specSteps = owner.spec("Qry1")
Set QBrowser1 = Nothing
'獲取名稱為“Qry1”的QueryBrowser即當(dāng)前Query的Browser
Set QBrowser1 = Brws.Item(specSteps.SystemFullName)
'獲取名稱為“Qry2”的QueryBrowser,即右側(cè)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)
'當(dāng)前設(shè)備關(guān)聯(lián)的docObjs集合賦予Qry2中進(jìn)行顯示
Set Query2.baseQuery.OrigCollection=SelObj.BackPointerDocObjs
Query2.refresh
QBrowser2.refresh
End If
End Sub
接下來進(jìn)行功能測試。
首先將設(shè)備通過拖拽方式繪制在多個(gè)PID圖紙中,并保存。
然后在“單元”選項(xiàng)卡的“管理界面”對(duì)象中,查詢此設(shè)備,并在左側(cè)列表中選中,其相關(guān)圖紙將自動(dòng)顯示在右側(cè)列表中。
接下來定制“查看文檔”按鈕功能。
在管理界面中,新建“屬性”。
在腳本選項(xiàng)卡,編輯“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)
'打開右側(cè)列表中所選對(duì)象,因此Query行對(duì)象是docObj類型對(duì)象,即打開docObj
Workset.Globals.Navigator.GetCurrentTree.DefaultAction SelObj
End If
End Sub
功能測試,右側(cè)列表中選擇任一文檔,點(diǎn)擊“查看文檔”按鈕。
將自動(dòng)打開PID圖紙,并在圖紙中自動(dòng)定位到左側(cè)列表所選的設(shè)備上。
今天就到這里,歡迎關(guān)注~轉(zhuǎn)發(fā)~
推薦閱讀:
西門子COMOS軟件開發(fā)定制學(xué)習(xí)7-嵌入谷歌瀏覽器內(nèi)核
西門子COMOS軟件開發(fā)定制學(xué)習(xí)6-管理界面定制
西門子COMOS軟件開發(fā)定制學(xué)習(xí)5-用程序繪制橢圓
西門子COMOS軟件開發(fā)定制學(xué)習(xí)4-小游戲
總結(jié)
以上是生活随笔為你收集整理的学习swing鼠标点击事件心得体会_西门子COMOS软件开发定制学习8-查询列表间的数据交互...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 所有信用卡都有年费吗
- 下一篇: mysql 关联更新_跳出初学MySQL