сборка запроса из данных TreeView

msflm
Дата: 22.11.2006 16:25:31
День добрый,

уже клинит на решении одной загвоздки, по сему решил попытать счастья, и спросить у спецов.

Итак, имеем трехуровневое иерархичное TreeView. Cкажем - вид продукции, продукт, артикль.

Нод имеет три значения: все ниже него выбрано (checked=1), все ниже него не выбрано(unchecked=0), ниже него есть выбранные элементы(checked + серая подсветка=2).

На основе выбранных элементов функцией надобно собрать запрос по типу
SELECT ... WHERE Level1 in (перечисляются выбранные элементы первого уровня) AND Level2 in () AND Level3 in ()


Можно было тупо собрать все выбранные элементы самого нижнего уровня до кучи и запихнуть в Query, что не есть хорошо, ибо элементов на данный момент порядка 900 и со временем будет больше.

Но проблема еще и в том, что запрос всовывается в RowSource, который имеет ограничение 2048 символов.

если родитель сhecked/unchecked, то ниже него соответственно не просматривается, ибо все дети имеют соответсвующее значение. Тут пока все понятно. Но вот когда выбрано частично да еще и по разным узлам, начинаются непонятки.

для примера пара картинок:

Картинка с другого сайта.Картинка с другого сайта.Картинка с другого сайта.

За конструктивные идеи заранее спасибо!
Надеюсь, что объяснил более менее, так, что без бутылки разобраться можно Картинка с другого сайта.
barrabas
Дата: 22.11.2006 16:33:33
а в таблице они как хранятся то
в моем понимани иерархическое хранение это
ID, PARENTID, NAME....

а у тебя какие то поля level1-3, вобщем структура таблицы какая?
_____________________________________
Мое конг-фу сильнее твоего
msflm
Дата: 22.11.2006 16:49:28
есть табличка в которой хранятся данные типа
вид продукта | продукт

она прикручена по ключу "продукт" к в табличке артикли
продукт | арткиль

а так же есть табличка в которой куча записей на различные артикли
из нее мне данные вытаскивать и надо запросом.
proposed amendment
Дата: 22.11.2006 16:50:49
barrabas
ID, PARENTID, NAME....


вообще-то не обязательно
barrabas
Дата: 22.11.2006 16:55:24
msflm
есть табличка в которой хранятся данные типа
вид продукта | продукт

она прикручена по ключу "продукт" к в табличке артикли
продукт | арткиль

а так же есть табличка в которой куча записей на различные артикли
из нее мне данные вытаскивать и надо запросом.

да интересовали поля level1-3
barrabas
Дата: 22.11.2006 16:56:25
proposed amendment
barrabas
ID, PARENTID, NAME....


вообще-то не обязательно

я же написал что это в моем понимании
barrabas
Дата: 22.11.2006 16:58:23
а собственно если есть возможность выделять конечные элеменыто, а не только целыми группами, то можно например из тривью запихивать ключи в временую таблицу и ее в запросе использовать
_____________________________________
Мое конг-фу сильнее твоего
msflm
Дата: 22.11.2006 17:09:40
думал с уровнями будет проще... ок, для наглядности:

Картинка с другого сайта.

первые две таблицы используются для построения тривью

все три позже для вытягивания данных из третьей.

временная табличка к сожалению не пойдет, так как база многопользовательская.
barrabas
Дата: 22.11.2006 17:12:49
ну и сделай служебную таблицу и закидывай туда перез выводом отчета данные из дерева, какие нужны.
_____________________________________
Мое конг-фу сильнее твоего
PA
Дата: 22.11.2006 17:14:12
автор
временная табличка к сожалению не пойдет, так как база многопользовательская

У меня как-то была похожая задача - делал именно через временную таблицу. А в чём затык с многопользовательским режимом?