2017-04-26 7 views
0

Microsoft SSASを使用して作成されたOlapキューブがあります。内部では、元の取引通貨と必要な「レポート」通貨との間に多対多の関係があります。これはすべて機能していますが、動的な通貨記号を表示するには「通貨」形​​式の文字列のデフォルトを使用し、選択した通貨に基づいてカスタムLCIDを渡します。SSASメジャーを数千または数百万で表示

"通貨"形式を使用する際の問題は、小数点以下の桁数と大きな数値です。私は数百万ポンド/ドルを報告しています。私のCFOは、これらの数字を数千または数百万で報告したいと考えています。これを制御するために、私は#,,のような特別なフォーマットの文字列を使うことについて読んだが、これは通貨記号が表示されることを許さない。

私は、1,1000,1000000と等しい特別な次元を持っていて、これで分けた計算された数値を作成する考えがありました(明らかにデフォルトは1で、集計可能ではありません)。

他の誰かが別の方法でアドバイスできますか?

+0

レポートを表示するにはどうすればよいですか?おそらく、フロントエンドのツールセットを再利用することができます。 –

+0

現在ExcelとPyramid Analyticsを使用しています。フロントエンドのツールに問題があると思うのは彼らがよく知っていると思うということです。何百万というキューブフォーマットの通貨記号を切り捨てると、レポート消費者は通貨を推測したままになります。 –

答えて

0

現在地SCOPEステートメントを使用することがあります。Cintの戻りint型の値とCSTRをテキストにint型の値を結合するために役立ちます

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; 

。それほど大したことではないか分かりません。正直なところ、「通貨」タイプは一度も使用していません。

+0

面白いアプローチでは、問題は完全に通貨記号です。私は現在、このコード 'Language(([Dim-Currency]。[Currency Code] .Members、[Measures]。[Sales])))= [Dim-Currency]を使用します。[Currency Code] .CurrentMember.MemberValue; '次元にはLCIDの値があります - これは通貨記号を動的にします。私はあなたの範囲の声明にそれを構築する必要がありますが、それはショットを与える! –

1

私は、スクリプトの割り当てを経由してFORMAT_STRINGを設定します:私は@GregGallowayと思い

FORMAT_STRING(([Dim-Currency].[Currency Code].&[USD])) = "$#,,"; 
FORMAT_STRING(([Dim-Currency].[Currency Code].&[Euro])) = "€#,,"; 
+0

ありがとうございます。申し訳ありませんが、愚かな質問をしますが、これは次元の書式文字列を設定するように見えますが、その後これが多くのメジャーにどのように適用されますか? –

+0

@DomCottonはそれをテストしますが、私はそれがすべての対策に適用されると信じています。そうでない場合は、各声明に[Measures] .AllMembersを含めることができます。 – GregGalloway

0

。私たちのキューブスクリプトでは、それはこのように実装されています

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; 

私たちは、ピラミッドのフロントエンドを経由してレンダリングします。

関連する問題