Получение иерархии с использованием ADOMD, а не запроса MDX

Я хочу получить иерархию из одного из кубов. Я хочу сформировать структуру JSON, поэтому я надеюсь, что смогу использовать ADOMD и использовать рекурсивную функцию для получения этой информации и отображения результата в TreePanel.

Мне нужно сформировать JSON из вывода.

 foreach (var att in dimension.Hierarchies)
 {
    foreach (var m in att.Levels[1].GetMembers())
    {
       var path = att.UniqueName;
    }
}

Приведенный выше код получает только атрибуты уровня 1. Я не знаю, как получить все дочерние атрибуты для данного атрибута.

Пожалуйста помоги


person SharpCoder    schedule 08.08.2013    source источник
comment
Ваш код зацикливается только на элементах уровня 1. Вы хотите повторить каждый член каждого уровня?   -  person Magnus Smith    schedule 28.08.2013
comment
@MagnusSmith да, я хочу загрузить все дерево   -  person SharpCoder    schedule 29.08.2013


Ответы (1)


Изменить исходный код для зацикливания всех уровней (а не только уровня 1) несложно, но я предполагаю, что вы ищете имена элементов на каждом уровне.
Ваша исходная строка var path = att.UniqueName; будет возвращать одно и то же значение много раз. раз, не так ли?

 foreach (var att in dimension.Hierarchies)
 {
   foreach (var lev in att.Levels) //NEW LOOP
   {
     foreach (var m in lev.GetMembers())
     {
       var membername = m.UniqueName; //GET VALUE HERE
     }
   }
 }

Там, где я использовал UniqueName, вы могли использовать любое свойство члена — прочитайте об ADOMD, чтобы узнать, что доступно.

person Magnus Smith    schedule 30.08.2013