D365:QueryBuildDataSource

  • 2021-11-15
  • Admin

在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

原文:https://blog.csdn.net/m0_46115516/article/details/121332770

联系站长

QQ:769220720