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

科技小先鋒發表於2017-11-14
有多個網友多次諮詢如何獲得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,如需轉載請自行聯絡原作者


相關文章