在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));
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14