По-моему я совсем потерялся. На всякий случай приведу код, может поможет
PHP код:
public void executeQuery()
{
Query q = new Query();
QueryBuildDataSource qbCustTable, qbCustTrans;
if (SwitchButton.selection() == 0)
{
qbCustTable = q.addDataSource(tablenum(CustTable));
qbCustTable.addSortField(fieldnum(CustTable, CustGroup));
qbCustTable.orderMode(OrderMode::GroupBy);
qbCustTable.addSelectionField(fieldnum(CustTable, RecId), SelectionField::Max);
qbCustTable.addSelectionField(fieldnum(CustTable, CustGroup));
qbCustTrans = qbCustTable.addDataSource(tablenum(CustTrans));
qbCustTrans.clearLinks();
qbCustTrans.joinMode(JoinMode::InnerJoin);
qbCustTrans.addLink(fieldnum(CustTable, accountNum), fieldnum(CustTrans, accountNum));
qbCustTrans.addSortField(fieldnum(CustTrans, TransDate));
qbCustTrans.orderMode(OrderMode::GroupBy);
qbCustTrans.addSelectionField(fieldnum(CustTrans, AmountCur), SelectionField::Sum);
qbCustTrans.addSelectionField(fieldnum(CustTrans, TransDate));
}
else
{
qbCustTrans = q.addDataSource(tablenum(CustTrans));
qbCustTrans.addSortField(fieldnum(CustTrans, TransDate));
qbCustTrans.orderMode(OrderMode::GroupBy);
qbCustTrans.addSelectionField(fieldnum(CustTrans, AmountCur), SelectionField::Sum);
qbCustTrans.addSelectionField(fieldnum(CustTrans, TransDate));
qbCustTable = qbCustTrans.addDataSource(tablenum(CustTable));
qbCustTable.clearLinks();
qbCustTable.joinMode(JoinMode::InnerJoin);
qbCustTable.addLink(fieldnum(CustTable, accountNum), fieldnum(CustTrans, accountNum));
qbCustTable.addSortField(fieldnum(CustTable, CustGroup));
qbCustTable.orderMode(OrderMode::GroupBy);
qbCustTable.addSelectionField(fieldnum(CustTable, RecId), SelectionField::Max);
qbCustTable.addSelectionField(fieldnum(CustTable, CustGroup));
}
CustTable_ds.Query(q);
super();
}