Вопрос-ответ
Раздел с ответами на самые популярные вопросы
Ответили на самые популярные вопросы о платформе Alpha BI.
Как получить в мерах значение по определенному адресу (размерности и мере)?
Надо указать в скобках имена размерностей и меры: (размерность1, мера1) или (размерность1, [размерность2...] мера2) ([valutaStat2].[RUB], [Measures].[Courses]) или ([valutaStat2].[RUB], [valutaStat2].[USD], [Measures].[Courses])
Как получить имя мембера (то что мы видим в таблице)?
Надо обратиться к его свойству MEMBER_CAPTION: [valutaStat2].CurrentMember.Properties('MEMBER_CAPTION')
Как получить информацию по мемберу по необходимому уровню?
Надо привести текущий мембер к нужному уровню с помощью команды Ancestor: Ancestor([period].[2017].[1 квартал].[Январь].[1], [period].[year]) - здесь мы обращаемся к уровню год
Как получить значение атрибута мембера?
Надо обратиться к нему с помощью Properties [period].[month]).Properties('NumberMonth')
Как получить мембер из сета?
Надо обратиться к item и указать индекс мемебра: { [valutaStat2].[RUB]; [valutaStat2].[USD] }.item(0)
Как обратиться с предыдущему/следующему мемберу иерархии?
Для этого существует свойства у мембера PrevMember/Nextmember [Period].CurrentMember.PrevMember
Как вычислить значение за самый последний месяц из набора (переменная - элементы иерархии)?
Отсортировать по убыванию (Order(Set_Expression, Numeric_Expression [ , { ASC | DESC | BASC | BDESC } ] ) ) и взять n верхних элементов, тут 1 IIF([Period].Currentmember.Level.Name = 'year', (order(${ax},[Period].CurrentMember.Properties("month_by_day"),BDESC).ITEM(0),[Measures].[1111]),1)
Как вычислить максимальное значение в месяце?
Отсортировать по убыванию (Order(Set_Expression, Numeric_Expression [ , { ASC | DESC | BASC | BDESC } ] ) ) и взять n верхних элементов, тут 1 max([Period].Children, [Measures].[Dolg_month_start])
Как получить развернутую иерархию по элементам иерархии (фильтрация по переменной region)?
exists([region_org].[region].Members,${region})
Как получить значение за параллельный период (например, предыдущий год)?
Для этого существует функция ParallelPeriod
(ParallelPeriod([period_year_month_dim].[date_period_hier].[year_lvl], 1, ${Отчетный период}), [Measures].[Средняя Численность])
Как получить накопительную сумму за предыдущий период (например прошлый год)?
Для этого стоит использовать функция SUM и ParallelPeriod
YTD - интервал времени в год.
SUM(Ytd(ParallelPeriod([period_year_month_dim].[date_period_hier].[year_lvl], 1, ${Отчетный период}.CurrentMember)),[Measures].[ФЗП месяц])
Как получить значения за квартал?
LastPeriods - функция возвращает набор элементов из последовательности элементов на уровне указанного элемента, начинающегося или заканчивающегося элементом.
IIF((${Отчетный период}.Properties('month') = 3)
OR (${Отчетный период}.Properties('month') = 6)
OR (${Отчетный период}.Properties('month') = 9)
OR (${Отчетный период}.Properties('month') = 12),
AVG(LastPeriods(3, ${Отчетный период}.CurrentMember),[Measures].[ССЧ месяц]), null)
Как убрать infinity в значение расчетной меры и заменить 0?
IIF (<условие>, <выражение, если условие истинно>, <выражение, если условие не истинно>)
IIF ( [Measures].[ССЧ пред. накоп.] <> 0, ([Measures].[ССЧ тек. накоп.]/[Measures].[ССЧ пред. накоп.]*100), 0)
Как получить и использовать текущую дату в mdx?
Пример:
Есть иерархия, где элементами являются даты. Для фильтрации нужно получить кортеж вида [year_month_day].[year_month_day_hier].[2018-11-15], где в качестве элемента будет динамически подставляться текущая дата в нужном виде. Для этого нужно использовать:
{StrToMember("[year_month_day].[year_month_day_hier].["|| Format(now(), "yyyy-mm-dd") || "]")}
Как конкретную меру отфильтровать по заданным значениям переменных типа элемент и элементы иерархии?
aggregate( [year_dim].[year_hier].[All year_hiers].Firstchild:${Сумма на текущий год}.PrevMember, Aggregate({${!Заказчик}}, (${Год версии справочника АСБУ}, [Measures].[ZZNETAM_MAX])))
Как получить содержание/отсутствие наименований элементов в определенном уровне/атрибуте?
Для этого используется формула Matches/Not Matches(Содержит/Не содержит). Для разделения наименований элементов можно использовать символ ' | '
Filter([direc].[ier].DefaultMember.Children,[direc].[ier].CurrentMember.Properties("ABBRV") Not Matches 'ЕИ|ПКО')