![]() |
#31 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() Разобьём задачу на две
1) определить список отделов для фильтрации 2) задать фильтр по списку отделов С первым пунктом я так понял вы справились. По второму пункту есть несколько решений: - использовать класс Query. Он поддерживает условие по списку значений. Хороший способ если список отделов не слишком велик. - использовать временную таблицу. Вместо фильтра по выбранным отделам сделать цикл по выбранным отделам. Результат поместить во временную таблицу, которую использовать для вывода отчёта. Если у вас уже используется временная таблица, то так возможно будет даже проще. - использовать вспомогательную постоянную таблицу. Поместить список отделов во вспомогательную таблицу. Присоеденить эту таблицу к источнику данных с целью его фильтрации. Хороший способ если число отделов велико. Выборка произвольных записей одним запросом Цитата:
Сообщение от LeonDerCom
![]() user_ax
Теперь понятно. То что необходимо сделать для дерева - Вам подсказал plumbum. Далее ListIterator (поскольку у Вас все подразделения загоняются в List) - и вот уже то, что возвращает ListIterator гоним в запрос. X++: ListIterator Lier = new ListIterator('Ваш полученный лист'); String50 ( Ex. Type - ) lValue; ; while (Liter.more()) { while select Table where Table.Field like +'*'+lValue+'*' // while select Table where Table.Field == lValue { ...//делаем что нужно } Liter.next(); } |
|