熟悉Sbo操作的人都知道,在Sbo中,不管是Sbo系統程式,還是自定義的業務報表,隻要業務對象的主鍵顯示在螢幕上,往往這個字段隻要存在目前值,在它的前面都有一個黃色的右向箭頭,點選這個箭頭,就可以關聯到這個主鍵關聯的業務對象主操作界面上。
Sbo稱呼這個黃色的右向箭頭為關聯按鈕(linkButton),在Sbo UI SDK API中,專門有一種控件類型就是linkButton,就是SAPbouiCOM.LinkedButton。那麼在Sbo Add-on開發中,到底如何實作linkButton同實際的業務對象的關聯呢--點選這個linkButton,就可以關聯到這個主鍵關聯的業務對象主操作界面上?
如前所述,linkButton需要同一個編輯或者顯示控件對象的目前值關聯,還要同相關的業務對象關聯。而支援編輯或者顯示的控件對象分為兩類:單控件對象,如下拉清單控件SAPbouiCOM.ComboBox、文本編輯控件SAPbouiCOM.EditText等;表格控件對象,主要包括Matrix和Grid。在Sbo中,上述兩種控件對象都可能同業務對象實作基于linkButton的關聯,隻不過,表格控件對象的業務關聯往往需要Matrix或者Grid的一列關聯到指定的業務對象。
在Sbo UI開發中,上述的兩種控件隻是在綁定資料源的時候有所差別,單控件對象或者表格控件的列對象同linkButton的綁定的過程都差不多。
1、單控件對象
聲明單控件對象和linkButton對象
Dim oCombo As SAPbouiCOM.ComboBox
Dim oLinked As SAPbouiCOM.LinkedButton
新增一個下拉清單框
oItem = oForm.Items.Add("ItemLink", SAPbouiCOM.BoFormItemTypes.it_COMBO_BOX)
oItem.Left = 100
oItem.Top = 110
oItem.AffectsFormMode = False
oItem.LinkTo = "Linked"
新增一個連接配接按鈕,位于上述的下拉清單的前面位置
oItem = oForm.Items.Add("Linked", SAPbouiCOM.BoFormItemTypes.it_LINKED_BUTTON)
oItem.Left = 80
oItem.LinkTo = "ItemLink"
綁定編輯/顯示對象到業務對象:物料主資料,并将關聯到物料主資料主操作界面
oLinked = oItem.Specific
oLinked.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Items
2、表格空間的列對象
聲明一個Matrix控件和一個Matrix空間列對象,以及一個linkButton對象
Dim oMatrix As SAPbouiCOM.Matrix
Dim Column As SAPbouiCOM.Column
添加一個Matrix控件
oItem = oForm.Items.Add("PCMatrix", SAPbouiCOM.BoFormItemTypes.it_MATRIX)
oItem.Left = 30
oItem.Width = 360
oItem.Top = 150
oItem.Height = 400
oMatrix = oItem.Specific
為Matrix添加一個列對象
oColumns = oMatrix.Columns
oColumn = oColumns.Add("ItemCode", SAPbouiCOM.BoFormItemTypes.it_EDIT)
oColumn.TitleObject.Caption = "物料編碼"
oColumn.Width = 30
oColumn.Editable = True
綁定列對象到業務對象:物料主資料,并将列連結到物料主資料系統界面
oLink = oColumn.ExtendedObject
oLink.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Items
上述代碼實作了控件對象目前值同相關業務的關聯--關聯到業務對象的Sbo主處理界面而無法實作從相關業務對象處理界面中回調資料,對于這些控件對象該如何同資料源進行綁定,以及在資訊錄入操作時如何實作對業務對象選擇界面回取資訊,不在本文中讨論。
本文轉自foresun 51CTO部落格,原文連結:http://blog.51cto.com/foresun/44054,如需轉載請自行聯系原作者