我有一个使用Microsoft SSAS创建的Olap多维数据集。在内部,我在源交易货币和所需的"报告"之间存在多对多的关系。货币。这一切都是功能性的,但要显示一个动态货币符号,我正在使用"货币"格式化字符串default并根据所选货币传入自定义LCID。
使用"货币" format是小数位和大数。我报告数百万英镑/美元,我的首席财务官希望看到这些数字以千万或数百万报告。为了控制这一点,我已阅读有关使用#,,
这样的特殊格式字符串的内容,但这不允许显示货币符号。
我有一个想法,有一个特殊的维度,相当于1,1000,1000000,然后创建一个计算的度量除以此(显然默认为1而不是可聚合),但我有很多措施。
其他人可以就替代方法提出建议吗?
答案 0 :(得分:1)
我只需通过脚本分配设置FORMAT_STRING
:
FORMAT_STRING(([Dim-Currency].[Currency Code].&[USD])) = "$#,,";
FORMAT_STRING(([Dim-Currency].[Currency Code].&[Euro])) = "€#,,";
答案 1 :(得分:0)
您可以在此处使用SCOPE声明:
Scope(AddCalculatedMembers([Measures].Members));
This = case
when [Measures].CurrentMember >= 1000000
then Cstr(Cint([Measures].CurrentMember / 1000000)) + " millions"
when [Measures].CurrentMember >= 1000
then Cstr(Cint([Measures].CurrentMember / 1000)) + " thousands"
else [Measures].CurrentMember
end;
End Scope;
Cint 返回int值, Cstr 有助于将int值连接到文本。我不确定它是不是太多了。我从来没有使用过"货币"老实说。
答案 2 :(得分:0)
我和@GregGalloway在一起。在我们的立方体脚本中,它实现如下:
Scope
([Dim-Currency].[Currency Code].&[EUR]);
//EUR
FORMAT_STRING(This) = '€ #,##0.00';
End Scope;
Scope
([Dim-Currency].[Currency Code].&[GBP]);
FORMAT_STRING(This) = '£ #,##0.00';
End Scope;
我们通过金字塔前端渲染。