|
Можно ли вытащить запросом следующее? | ☑ | ||
---|---|---|---|---|
0
Alexor
28.01.13
✎
15:18
|
Всем привет.
Есть справочник номенклатура. У групп и элементов есть реквизит, Статус. Требуется в запросе вытащить номенклатуру и статус. Причем у номенклатуры если статус не задан, то должно "брать" статус родителя, если у данного родителя не задан, то смотрим вышестоящего. Вопрос можно ли это запросом вытащить или нет? |
|||
1
DrShad
28.01.13
✎
15:19
|
можно
|
|||
2
samozvanec
28.01.13
✎
15:20
|
(0) Причем у номенклатуры если статус не задан, то должно "брать" статус родителя, если у данного родителя не задан, то смотрим вышестоящего
вот тут сколько пропишешь, столько уровней вверх и просмотрит |
|||
3
ThreeTONE
28.01.13
✎
15:20
|
выбор когда номенклатура.статус = "" тогда номенклатура.родитель.статус иначе номенклатура.статус конец как статус
|
|||
4
Error pro
28.01.13
✎
15:21
|
(3) А если и у родителя не задан? А иерархия 10 уровней.
|
|||
5
lEvGl
гуру
28.01.13
✎
15:23
|
(4) сколько уровней, столько и "надписей"
|
|||
6
Alexor
28.01.13
✎
15:23
|
(1) А скелетом не поделишся?
(2)(3) Такое решение "в тупую" я думал, но хотел более красивое решение. |
|||
7
samozvanec
28.01.13
✎
15:24
|
(6) вроде не придумали еще
|
|||
8
Alexor
28.01.13
✎
15:25
|
(2)(3) Кстати, а запрос не загнется, если я буду анализировать элемент 2-го уровня, а у условии у меня проверка до десятого родитель.родитель....родитель.Статус
да и тормозить такое решение полагаю будет. |
|||
9
France
28.01.13
✎
15:26
|
выбрать все элементы в иерархии с группировкой по реквизиту "Статус"...
потом обход по группировкам |
|||
10
pumbaEO
28.01.13
✎
15:26
|
(6) красивое решение
1. сначала посчитать макс. количество уровней , а потом динамически собрать текст запроса. 2. Подписка для номенклатуры: Перед записью и заполняй сразу статус, если не заполненно. |
|||
11
Alexor
28.01.13
✎
15:27
|
(10) 2-ой вариант, тоже рассматривался, но пока не комфортен. Номенклатура может перемещаться из группы в группу, иметь или не иметь свой статус.
|
|||
12
Chin
28.01.13
✎
15:29
|
(0) А не проще вопрос со статусами решить при записи номенклатуры? Зачем мучить себе мозг... Ну конечно если интересно, то пожалуйста, а так:
а) тратишь зря время б) не знаю для чего тебе такой запрос, но если у тебя справочик номенклатуры огромный, то работать он может занудно долго. По возможности такие вопросы лучше решать на этапе создание объетов. |
|||
13
Chin
28.01.13
✎
15:31
|
(11) При перемещении из группы в группу так же записывается элемент, так как у него меняется родитель...
|
|||
14
К_Дач
28.01.13
✎
15:37
|
Рекурсию не предлагать?
|
|||
15
c00Lo
28.01.13
✎
15:40
|
красивей рекурсии нет решения
|
|||
16
France
28.01.13
✎
15:40
|
рекурсию запросом??
|
|||
17
Chin
28.01.13
✎
15:42
|
(14) Рекурсию как раз лучше использовать при записи номенклатуры, для поиска родителя с непустым статусом.
Я бы на месте автора сделал бы так: 1. создал реквизит номенклатуры ("НаследуемыйСтатус" - булево) 2. перед записью, если стутус явно не указан, искал бы родительский статус и устанавливал признак "НаследуемыйСтатус". При перемещении из одной группы в другую, если статус заполнен, а флаг "наследуемый статус" не установлен, статус не менять. Если флаг установлен, обновлять статус по данным нового родителя... В итоге с запросом не придется мучиться... |
|||
18
samozvanec
28.01.13
✎
15:53
|
(17) хорошее решение
|
|||
19
France
28.01.13
✎
15:55
|
(0) можешь про статус рассказать?? может, лучшее решение найдут..
|
|||
20
hhhh
28.01.13
✎
15:59
|
(15) есть красивее. Запретить Статус в группах. Задавать его только в элементах.
|
|||
21
К_Дач
28.01.13
✎
15:59
|
Можно запросом вытащить всю иерархию в ТЗ вида:
Родитель Элемент Статус <пусто> Группа1 Статус1 Группа1 Группа2 Статус2 Группа2 Группа3 Статус3 Группа3 Элемент4 Статус4 и потом обрабатывать эту ТЗ снизу вверх в цикле, проверяя заполненность статуса. Весь цимус в том, как всю иерархию вытащить одним запросом, не зная количество уровней заранее.... |
|||
22
Chin
28.01.13
✎
16:28
|
(20) Если в группе 10000 номенклатур и у них у всех один итот же статус - смысл изменять у каждого?
|
|||
23
acsent
28.01.13
✎
16:29
|
только для ограниченного количества родителей
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |