天天看點

[原創]如何獲得SBO的資料表中文描述和資料表的中文字段

有多個網友多次咨詢如何獲得SBO的資料表--包括系統表和使用者自定義表的清單與中文描述,繼而獲得SBO的資料表結構特别是字段中文描述。

SBO在這方面提供了充分的資料表結構與字段屬性提取接口,很容易得到上述要求的結果。

1、如何獲得SBO的資料表中文描述?

首先定義個一個SBO資料表業務對象執行個體

SAPbobsCOM.SBObob boTable = fsSboCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge) as SAPbobsCOM.SBObob;

然後獲得此執行個體關聯的資料表結構屬性資訊清單。

SAPbobsCOM.Recordset rsTable = boTable.GetTableList();

最後通過循環方式獲得資料表結構資訊,進而達到對所有資料表或者指定表結構資訊的提取。

if (rsTable.Record__count > 0)

{

       rsTable.MoveFirst();

       while (!rsTable.EoF)

      {

           string strTableCode = rsTable.Fields.Item("Alias").Value.ToString();

           string strTableName = rsTable.Fields.Item("Description").Value.ToString().Trim();

          //在此進行資料表屬性的相關操作吧

         rsFields.MoveNext();

    }

}

上面程式中的strTableCode和strTableName就是資料表名稱和資料表的中文描述了。當然如果您使用的不是SBO中文版,其描述就是對應語言的資料表名稱描述了。

2、如何獲得SBO的資料表字段中文描述?

類似的,首先定一個SBO資料表字段業務對象。

SAPbobsCOM.SBObob boFields = fsSboCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge) as SAPbobsCOM.SBObob;

獲得此對象關聯的使用者興趣表的字段屬性清單

SAPbobsCOM.Recordset rsFields = boFields.GetTableFieldList(strTableCode);

下面的代碼就不需要介紹了吧?!很好了解的。

if (rsFields.Record__count > 0)

     rsFields.MoveFirst();

     while (!rsFields.EoF)

     {

         string strFieldCode = rsFields.Fields.Item("FieldName").Value.ToString().Trim();

         string strFieldName = rsFields.Fields.Item("FieldDesc").Value.ToString().Trim().Trim();

         string strFieldLen = rsFields.Fields.Item("FieldLength").Value.ToString();

         string strFieldType = rsFields.Fields.Item("FieldType").Value.ToString();

         string strIsNull = rsFields.Fields.Item("IsNullable").Value.ToString();

         string strIsValid = rsFields.Fields.Item("IsValidValues").Value.ToString();

         string strLinkTo = rsFields.Fields.Item("LinkedTo").Value.ToString();

         //在此進行字段屬性的相關操作吧

       rsFields.MoveNext();

以上代碼經本人在多個系統軟體中反複調用,不存在任何問題。支援的開發平台包括VS 2003-2008,當然開發語言是C#;資料庫可以是Sql 2000/2005;SBO可以使SBO 2004、2005、2007版本。

本文轉自foresun  51CTO部落格,原文連結:http://blog.51cto.com/foresun/176590,如需轉載請自行聯系原作者