学习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-查询列表间的数据交互...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 所有信用卡都有年费吗
- 下一篇: mysql 关联更新_跳出初学MySQL