Как получить доступ к свойствам кортежа/ячейки вывода MDX через С#?

У меня есть запрос MDX, который я выполняю с помощью Adomd.net, где cmd содержит текст команды.

Это, когда выполняется непосредственно против куба, возвращает следующий вывод, только заголовок и целое число счетчика, это является мерой:

TrueCount
   n

Однако как мне получить доступ к этой мере/кортежу/числу через С#?

Я знаю, как вывести заголовок TrueCount (см. ниже), но не знаю, как вывести цветущий номер.

//Execute the query, returning a cellset
CellSet cs = cmd.ExecuteCellSet();

//Output the column captions from the first axis
TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples;

foreach (var column in tuplesOnColumns)
    if (!column.Members[0].Caption.Contains("All"))
        truecount.Add(new TrueCount() { CountTitle = column.Members[0].Caption });

Любые идеи или указатели приветствуются - извинения за толстый вопрос.


person Unknown Soldier    schedule 18.02.2011    source источник


Ответы (2)


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

В ADOMD вы просто говорите myNumber = cs(x, y).FormattedValue

Надеюсь, это может привести вас в правильном направлении!

person Magnus Smith    schedule 20.02.2011

Вам нужно использовать свойство Cells CellSet, Axes получает только метки. Что-то вроде:

Count = cs.Cells[column.TupleOrdinal,0].Value

Используйте .FormattedValue, если вы хотите отображать значение с правилами форматирования кубов.

Мне было проще использовать cs.Axes[0].Positions, а не член кортежей.

person LeBleu    schedule 13.03.2012