Получить корневой уровень измерения в Mdx, используя olap4j Api


У меня есть проблема, которая действительно убивает меня. Кстати, я новичок в Mdx и использую olap4j Api для создания MDX Query. Моя проблема с корневым элементом, следующий фрагмент кода:

     Query myQuery = new Query("Generated Query", sales); // where sales is an object of type cube.
QueryDimension productDimension = myQuery.getDimension("Product");

Так что теперь у меня есть объект с измерением Product для использования. Я хочу что-то подобное [Product].[All Products] быть частью MdxQuery, когда я добавлю productDimension к оси. Я могу жестко закодировать [All Products] но если переданное измерение Name отличается от Product, скажем, Stores, это будет проблемой. Так что я хочу, чтобы можно было получить какую-то вещь, получить имена, такие как [Все продукты] или [Все магазины] или [определенные меры], что эквивалентно [Все меры] динамически с использованием olap4j?

PS: Это метод, который принимает имя измерения и возвращает первый элемент измерения, например [Продукт]. [Все продукты], если продукт передан, или [Меры]. [Все меры / некоторые меры], если меры пройдены.

1 ответ

Решение

Мне удалось выяснить, как получить корневой элемент. Чтобы получить что-то вроде All Products или, в основном, все имя участника, мне нужно сделать что-то, как показано ниже:

Скажем, я хочу, чтобы все имя элемента для productDimension [объект типа Dimension для продукта] затем,

   Member allMember = productDimension.getDimension().getDefaultHierarchy().getRootMembers().get(0);

   productDimension.include(Selection.Operator.MEMBER, allMember);

Таким образом, allMember станет частью Mdx Query.

Другие вопросы по тегам