2012-03-12 55 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