为什么我在查询中拒绝了字段dataAreaId访问?

时间:2015-05-07 07:05:29

标签: axapta x++ query-builder dynamics-ax-2012

我遇到了问题,我在init 表单中使用了一个小查询。 我用了这段代码:

query q = new Query();
QueryBuildDataSource qbds;
QueryRun queryRun;
qbds.addRange(fieldNum(MyTable,dataAreaId)).value(SysQuery::valueUnlimited());
queryRun = new queryRun(q);
if (! queryRun.prompt())
{
     element.close();
}
MyTable_ds.query(queryRun.query());

当我在查询提示中加入一个值时,我会收到一条错误消息:

  

“无法选择公司字段。”

我的设计 dataSource 此字段,但我无法在查询中使用。 我可以毫无问题地使用所有其他字段。

可以在查询中使用此字段吗?

谢谢你的时间,

享受!

1 个答案:

答案 0 :(得分:2)

您不能在查询中加入DataAreaId

但是,您可以在查询中使用addCompanyRange方法:

q.addCompanyRange("dat");

试试这个:

query q = new Query();
QueryBuildDataSource qbds;   
QueryRun queryRun;

qbds = q.addDataSource("MyTable");
//Build you query 

q.allowCrossCompany(true);
q.addCompanyRange("dat");

queryRun = new queryRun(q);
if (! queryRun.prompt())
{
    element.close();
}
MyTable_ds.query(queryRun.query());