在Form中展示的data source中的数据需要根据另一张table的field进行条件过滤的时候,可以考虑使用QueryBuildDataSource
在Form的data source的table中覆盖init()方法,在根据需求考虑在super()前还是super()后编写代码
QueryBuildLink qbl;
QueryBuildDataSource custTableQBDS, custTransQBDS;
custTableQBDS = query.addDataSource(tablenum(custTable));
custTransQBDS = custTableQBDS.addDataSource(tableNum(CustTrans));
qbl = custTransQBDS.addLink(fieldNum(CustTable, AccountNum), fieldNum(CustTrans, AccountNum));
public void init()
{
QueryBuildDataSource qbds;
super();
qbds = this.query().dataSourceTable(tableNum(
Table1)).addDataSource(
tableNum(Table2));
qbds.addLink(fieldNum(Table1,CompanyId),
fieldNum(Table2, CompanyID));
qbds.joinMode(JoinMode::ExistsJoin);
}