У меня есть таблица фактов (детализация документа) с 3 показателями суммы и другими мерами qtys, эти 3 показателя суммы не в одной валюте, а связаны с типом визуализации.
Отчеты могут иметь три типавизуализации, просмотра документов, представления компании, представления группы компаний.
Если вы просматриваете просмотр документа, вы должны просматривать все виды валют, в зависимости от документа (GBP, EUR, CAN, USA, AUD и т. д.).
Если вы просматриваете представление компании, вы должны увидеть это в отношении валюты, связанной с компанией (т. Е. Компания 1 - это евро, Компания 2 - это доллар США и т. Д.).
Группа компаний - это всегда евро.
Пример:
таблица фактов
╔═══════════════════════════════════════════════════════════════════════════╗
║ Fact Document ║
╠════════════╦═════════════╦══════════════╦═════════════╦═══════════════════╣
║ Company ID ║ Doc ID ║ Mtr Document ║ Mtr Company ║ Mtr Company Group ║
╠════════════╬═════════════╬══════════════╬═════════════╬═══════════════════╣
║ 1 ║ 101 ║ 100 ║ 90 ║ 95 ║
╠════════════╬═════════════╬══════════════╬═════════════╬═══════════════════╣
║ 2 ║ 102 ║ 250 ║ 150 ║ 120 ║
╠════════════╬═════════════╬══════════════╬═════════════╬═══════════════════╣
║ 3 ║ 103 ║ 400 ║ 200 ║ 170 ║
╚════════════╩═════════════╩══════════════╩═════════════╩═══════════════════╝
затемненный документ
╔════════════════════════════════════════════════════════════════════════╗
║ Dim Document ║
╠════════╦═══════════════════╦══════════════════╦════════════════════════╣
║ Doc ID ║ Document Currency ║ Company Currency ║ Company Group Currency ║
╠════════╬═══════════════════╬══════════════════╬════════════════════════╣
║ 101 ║ USD ║ GBP ║ EUR ║
╠════════╬═══════════════════╬══════════════════╬════════════════════════╣
║ 102 ║ CAN ║ USD ║ EUR ║
╠════════╬═══════════════════╬══════════════════╬════════════════════════╣
║ 103 ║ AUD ║ USD ║ EUR ║
╚════════╩═══════════════════╩══════════════════╩════════════════════════╝
затемненный тип визуализации (ручное и статическое измерение без изменений)
╔═══════════════════════╦═════════════════════════╗
║ Visualization type ID ║ Visualization type Name ║
╠═══════════════════════╬═════════════════════════╣
║ 1 ║ Document view ║
║ 2 ║ Company view ║
║ 3 ║ Company Group view ║
╚═══════════════════════╩═════════════════════════╝
тусклая валюта
╔══════════╗
║ Currency ║
╠══════════╣
║ EUR ║
║ USD ║
║ GBP ║
║ CAN ║
╚══════════╝
Я хочу выбрать тип визуализации и динамически выбрать правильный показатель (что вы сделали).
Но я также хочу динамически выбирать валюту, связанную с этим показателем. Поэтому я хочу связать одно измерение с другим, чтобы у меня был только атрибут валюты, и я не хочу иметь 3 разных атрибута валюты.
Желаемый вывод:
Выбран вид документа
╔═════════╦════════╦══════════╗
║ Doc Id ║ Amount ║ Currency ║
╠═════════╬════════╬══════════╣
║ 101 ║ 100 ║ USD ║
║ 102 ║ 250 ║ CAN ║
║ 103 ║ 450 ║ AUD ║
╚═════════╩════════╩══════════╝
Выбран вид компании
╔═════════╦════════╦══════════╗
║ Doc Id ║ Amount ║ Currency ║
╠═════════╬════════╬══════════╣
║ 101 ║ 90 ║ GPB ║
║ 102 ║ 150 ║ USD ║
║ 103 ║ 200 ║ USD ║
╚═════════╩════════╩══════════╝
Выбран вид группы компаний
╔═════════╦════════╦══════════╗
║ Doc Id ║ Amount ║ Currency ║
╠═════════╬════════╬══════════╣
║ 101 ║ 95 ║ EUR ║
║ 102 ║ 120 ║ EUR ║
║ 103 ║ 170 ║ EUR ║
╚═════════╩════════╩══════════╝
Возможно ли это сделать?
Всего наилучшего и спасибо!
Рикардо Кастро
ОБНОВЛЕНИЕ
Я сделал это ниже, и я получаю значения1, 2 или 3, когда я выбираю тип в «тусклый тип визуализации»
CREATE MEMBER [Coin]
AS CASE WHEN [visualization type].[visualization type].CurrentMember.MEMBERVALUE = 'Document view'
THEN 1
ELSE (CASE WHEN [visualization type].[visualization type].CurrentMember.MEMBERVALUE = 'Company view'
THEN 2
ELSE 3 END) END,
VISIBLE = 1 ;
Мне нужно получить значения атрибута. Я попробовал:
[Document].[Document Currency].firstchild
STRTOMEMBER("[Document].[Document Currency].MEMBERS")
STRTOMEMBER('[Document].[Document Currency].[Document Currency].FirstChild', CONSTRAINED)
Если я добавлю следующий код, я получу «все», единственное, что мне не нужно: P:
[Document].[Document Currency].CurrentMember.Properties("Name")
Есть мысли?