2012-03-12 1 views
0

Мне было интересно, можно ли использовать объект QueryRun в C#, и если да, какое пространство имён я импортирую для его использования, так как у меня есть метод, который возвращает объект QueryRun в моем классе AX, который я называю в моем C# код, как так:Использование типа данных QueryRun в C#

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

findMultipleProducts метод в вопросе, мне нужно, чтобы получить доступ к нему в качестве объекта QueryRun как мне нужно перебирать продукты, используя() метод .next. Любая помощь или примеры будут оценены.

ответ

3

Вы получаете доступ к Ax через BC.NET? Если это так вот пример того, как использовать QueryRun из BC.NET:

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

+0

Да, как я уже упоминал, GetTableId - это метод расширения, который я добавил в класс Axapta. Код для него находится в сообщении блога - теперь я добавил к этому сообщению для вашего удобства. – armasanea

+0

Я вижу, спасибо за это, я считаю, что это исправлено! – CallumVass