Инструменты пользователя

Инструменты сайта


axapta:axapta:treeview

 *Tree_Lookup

Стандартный Класс/FormTreeDatasource не поддерживает фильтрованные источники данных. Если вы хотите из использовать, измените функцию subTreeQueryRun в классе ~FormTreeDataSource. Вызовите метод mergeRanges, чтобы соединить фильтры в один объект query: QueryRun subTreeQueryRun(AnyType _ParentValue) { Query query = new Query(); QueryBuildDataSource queryBuildDataSource = query.addDataSource(formDataSource.table()); QueryBuildRange criteriaParentId = queryBuildDataSource.addRange(parentId); ; queryBuildDataSource.addSortField(txt); //это добавленный код SysQuery::mergeRanges(query,formDataSource.query()); if (_ParentValue) criteriaParentId.value(_ParentValue); else criteriaParentId.value(strFmt('"%1"',queryValue(_ParentValue))); return new QueryRun(query); }

Для того, чтобы фильтровать источник данных CustTable, надо поправить метод init в tutorial_Form_Treedatasource:

void init()
{
    super();
 
    SysQuery::findOrCreateRange(CustTable_q.dataSourceNo(1), fieldNum(CustTable,CustGroup)).value(queryValue('20'));
 
    treeDatasource = new FormTreeDatasource(this,element.control(control::Tree), 
                                                   fieldnum(CustTable,accountNum),
                                                   fieldnum(CustTable,invoiceAccount),
                                                   fieldnum(CustTable,name)
     );   
     treeDatasource.initRoot(CompanyInfo::find().name,'');
}
axapta/axapta/treeview.txt · Последнее изменение: 2018/04/04 00:33 (внешнее изменение)