天天看點

如何在Add-on插件中實作業務關聯

熟悉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,如需轉載請自行聯系原作者