|  | 
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ Есть иерархическое измерение регионов dimRegion. Атрибуты измерения: Атрибут описаниеID линейныйValue линейныйHierValue иерархический Задача : сделать такой запрос, чтобы из атрибута HierValue получить только значение "Арбат" по имени пользователя. Цель : динамическая раздача прав пользователям. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 10:57 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ Попытка номер 1: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Выдаёт всю иерархию: HierValueAllРоссияМоскваАрбат Попытка номер 2: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Выдаёт то, что нужно. Вот только для этого приходится указывать конкретную иерархию. И плюс, то что нужно только в данном примере. Если у Иванова доступ к Арбату и к Киеву - разные уровни иерархии, то не пойдёт. HierValueАрбат ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 10:58 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ Попытка номер 3: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Выдаёт всю иерархию: ValueАрбат Да, идеально. Почти. Не годится. Необходимо дать доступ именно к иерархическому дереву, а НЕ к НЕиерархическому атрибуту. если я дам доступ пользователю к "России" из линейного атрибута, тогда он будет видеть только одну строку - Россия. А если я дам к "России" из иерархического атрибута, тогда он будет видеть И россию, И всё, что в неё входит - всё её дочерние элементы (Москва, Арбат). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 11:02 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ Charles Weyland, факты только на листьях? Leaves() или Descendants(Откуда,,LEAVES) пробовал? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 11:11 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ ShIgor, нет, не только. доступ можно дать к арбату, можно дать целиком к москве, или ко всей россии. т. е. к конкретному узлу дерева ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 11:35 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ Charles Weyland, тогда из цепочки Tail(ххх, 1) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 11:44 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ Tail действительно очень здорово помогает в случае, если право одно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. У каждого узла иерархии есть в качестве дочернего он сам же. Поэтому за счёт " ,2) " я получаю два элемента: сам узел и уровнем выше - его поддерево. Но как должен выглядеть запрос, чтобы получить выделенные красным узлы? Чтобы получить все поддеревья. Можно с захватом одноимённых дочерних, как это делает Tail(xxx, 2) Этот запрос помещается в роль в раздел "разрешённые" ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 14:14 |  | ||
| 
MDX: как выдать только непустые элементы иерархии? | |||
|---|---|---|---|
| #18+ картинку чуть неправильную вставил. корректная ниже. Красным выделены те элементы, которые на самом деле являются узловыми, но в дереве отображаются. Это "datamember" узла. Дело в том, что tail(xxx, 1) вернёт [dimRegion].[HierValue].&[7].Datamember а Дело в том, что tail(xxx, 2) вернёт [dimRegion].[HierValue].&[7].Datamember и [dimRegion].[HierValue].&[7] вот эти datamember'ы как-то исключить бы... ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 30.04.2021, 14:19 |  | ||
|  | 

| start [/forum/topic.php?fid=49&msg=40067606&tid=1857148]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 31ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 50ms | 
| get tp. blocked users: | 2ms | 
| others: | 242ms | 
| total: | 365ms | 

| 0 / 0 | 
