您是通过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);
}
}
嗨,我的Axapta的对象没有一个方法称为GetTableId。查看此处:http://msdn.microsoft.com/en-us/library/microsoft.dynamics.businessconnectornet.axapta_methods.aspx – CallumVass 2012-03-13 09:08:40
是的,正如我所提到的,GetTableId是一个扩展方法我已经加入到Axapta的类。它的代码在博客文章中 - 为了您的方便,我现在添加到了这篇文章中。 – armasanea 2012-03-13 14:32:05
我明白了,谢谢这一点,我相信这是定了! – CallumVass 2012-03-13 14:37:39