2012-03-12 58 views
0

我想知道是否有可能使用QueryRun對象在C#中,如果是這樣,我導入到使用這些功能的命名空間,因爲我有我的AX類返回QueryRun對象的方法,我在我的C#代碼中調用,像這樣:使用QueryRun數據類型在C#

CallStaticClassMethod("OnlineUsers", "findMultipleProducts", user, id); 

findMultipleProducts是有問題的方法,我需要訪問它作爲一個QueryRun對象,因爲我需要通過使用的.next()方法的產品進行迭代。任何幫助或例子,將不勝感激。

回答

3

您是通過BC.NET訪問斧?如果所以這裏是如何從BC.NET使用QueryRun樣本:

using (var ax = new Axapta()) 
    { 
     ax.Logon(null, null, null, null); 
     int tableId = ax.GetTableId("TaxTable"); 
     var query = ax.CreateAxaptaObject("Query"); 
     var qbd = (AxaptaObject)query.Call("addDataSource", tableId); 

     var qr = ax.CreateAxaptaObject("QueryRun", query); 

     while ((bool)qr.Call("next")) 
     { 
      var record = (AxaptaRecord)qr.Call("Get", tableId); 

      Console.WriteLine("TaxCode: {0}", record.get_Field("TaxCode")); 
      Console.WriteLine("TaxName: {0}", record.get_Field("TaxName")); 
     } 
     ax.Logoff(); 
    } 

凡GetTableId擴展方法是從this post採取:

public static class AxaptaExtensions 
    { 
     public static int GetTableId(this Axapta ax, string table) 
     { 
      return (int)ax.CallStaticClassMethod("Global", "tableName2Id", table); 
     } 
    } 
+0

嗨,我的Axapta的對象沒有一個方法稱爲GetTableId。查看此處:http://msdn.microsoft.com/en-us/library/microsoft.dynamics.businessconnectornet.axapta_methods.aspx – CallumVass 2012-03-13 09:08:40

+0

是的,正如我所提到的,GetTableId是一個擴展方法我已經加入到Axapta的類。它的代碼在博客文章中 - 爲了您的方便,我現在添加到了這篇文章中。 – armasanea 2012-03-13 14:32:05

+0

我明白了,謝謝這一點,我相信這是定了! – CallumVass 2012-03-13 14:37:39