Я создал метод executeQuery () в форме источника данных, который должен скрывать ненужные записи.Но только одно поле не видно, остальные поля видны.Что случилось?
public void executeQuery()
{
Query query;
QueryBuildDataSource qbds, qbdsTypeDef;
QueryBuildRange queryBuildRange, queryBuildRangeAgregat;
QueryBuildRange queryBuildRangeParent;
if(element.args())
{
qbds = KPFinStatementTable_ds.query().dataSourceTable(tablenum(KPFinStatementTable));
queryBuildRange = qbds.addRange(fieldnum(KPFinStatementTable,OperationDate));
queryBuildRange.value(queryValue(element.args().parm()));
queryBuildRangeAgregat = qbds.addRange(fieldnum(KPFinStatementTable,IsAggregate));
queryBuildRangeAgregat.value(queryValue(NoYes::Yes));
queryBuildRangeAgregat = qbds.addRange(fieldnum(KPFinStatementTable,Level));
queryBuildRangeAgregat.value(queryValue(1));
queryBuildRangeAgregat = qbds.addRange(fieldnum(KPFinStatementTable,AggrLevel));
queryBuildRangeAgregat.value(queryValue(KPFinStatementListPageType::AggrLevel1));
qbdsTypeDef = KPFinStatementTable_ds.query().dataSourceTable(tablenum(KPFinStatementTypeDef));
queryBuildRangeParent = qbdsTypeDef.addRange(fieldnum(KPFinStatementTypeDef,FinStatementTypeDefParent));
queryBuildRangeParent.value(queryValue(0));
super();
}
}
ОБНОВЛЕНИЕ: Я нашел разрешение, вместо
qbdsTypeDef = KPFinStatementTable_ds.query().dataSourceTable(tablenum(KPFinStatementTypeDef));
вы должны написать:
qbdsTypeDef = qbds.addDataSource(tablenum(KPFinStatementTypeDef));
qbdsTypeDef.relations(true);