如何在提示Query中添加另一个DataSource?

时间:2015-04-20 11:50:15

标签: forms axapta x++ dynamics-ax-2012

我想在Query提示中添加另一个数据源。

当我启动表单时,我打开提示查询。

我的格式为init方法:

QueryRun queryRun;

super();

queryRun = new QueryRun(TableA_ds.query());
if (! queryRun.prompt())
{
     element.close();
}

TableA_ds.query(queryRun.query());

在我的表单数据源中,在init方法中,我已将此代码设置为我的查询范围:

tableA_ds.query().dataSourceTable(tablenum(TableA)).addRange(fieldnum(TableA,FieldtableA)).value(SysQuery::valueUnlimited() );

我想添加另一个数据源(另一个表) - TableB。 我用了这段代码:

purchLine_ds.query().dataSourceTable(tablenum(TableB)).addRange(fieldnum(TableB,FieldtableB)).value(SysQuery::valueUnlimited() );

但是,当我启动一个表单时,我只查看来自TableA的记录查询范围

TableA与TableB的关系在字段PurchId上。 我想看两个范围。有人能帮我吗? 谢谢你的时间。

享受!

2 个答案:

答案 0 :(得分:1)

我认为你可以添加另一个数据源:     。purchLine_ds.query()dataSourcetable(表A).addDatasource(tableNum中(表B);     purchLine_ds.query()。dataSourcetable(表B).relations(真)

答案 1 :(得分:0)

感谢Alex,感谢您的帮助, 我用过这段代码, 在我的表单初始化方法:

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

qbds = Q.addDataSource(tableNum(TableA));
qbds.addRange(fieldnum(TableA,Field1TableA)).value(SysQuery::valueUnlimited());
qbds2 = qbds.addDataSource(tableNum(TableB));
qbds2.relations(true);

并启动查询, 工作得很好,

享受!