为什么我在查询中拒绝 Field dataAreaId 访问?

Why I have Field dataAreaId Access denied in a Query?

我有一个问题,我在 init Form 中使用了一个小查询。 我使用了这段代码:

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());

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

"Can not select the Company field."

我在 DesigndataSource 中有这个字段,但我不能在查询中使用。 我可以毫无问题地使用所有其他字段。

是否可以在查询中使用该字段?

谢谢你的时间,

尽情享受吧!

您不能在查询中包含 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());