Цитата:
Сообщение от
S.Kuskov
Иначе количество во View должно быть посчитано по уже отфильтрованным категориям!
Поэтому View либо нужно каким-то образом строить на лету(?), либо фильтровать View при помощи вспомогательной таблицы...
Мне кажется, тут поможет HAVING. Группируем кросстаблицу по поставщику, считаем число категорий и сравниваем с числом выбранных категорий (оно по идее должно быть известно из интерфейса).
Что то типа такого :
X++:
qbdsVendor = query.addDataSource(...);
...
qbdsVendCat = qbdsVendor.addDataSource(...);
...
qbdsVendCat.addGroupByField(fieldNum(VendCategory, VendorId));
qbdsVendCat.addSelectionField(fieldNum(VendCategory, CategoryId),SelectionField::Count);
...
query.addHavingFilter(qbdsVendCat, "Category", AggregateFunction::Count).value(strfmt("==%1", _selectedCatNum));