Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languageen
Note

It is recommended to get familiar with crossValue, memberValue and filter function before proceeding with this tutorial.

CrossValue function is used to access Indicators from other Data Sets.

It receives two parameters:

  1. Cube name
  2. Indicator name

Following example returns Students count from Results data set.

Code Block
crossValue('CUBE_RESULTS.RESULTS', 'L_STUDENT_COUNT')
Tip

Access cross reference function from Formulas help to predefine Cube name.

Cross Reference with and without Drill-down

When cross-referencing values, BellaDati does take in consideration applied drill-downs. That means both data sets need to have the same attribute (same code) and same members.

To display value without drill-down, use the cross value in combination with the function withoutDrillDown. That will display same value for each member.

Code Block
withoutDrillDown() { 
crossValue('CROSSVALUETEST2.CROSSVALUETEST2', 'M_GDP')}

Image Modified

In some cases the members might be the same but the attribute code might be different. In that case you need to explicitelly tell BellaDati, which attribute from the referenced data set should be used.

You can achieve this by specifying memberIdentifier as second parameter of crossValue functions. You need to construct you own string with memberValue.

Code Block
crossValue('CROSSVALUETEST2.CROSSVALUETEST2', '[L_COUNTRY_REF="'+memberValue()+'"]','M_GDP')

In this example L_COUNTRY_REF is the code of attribute in referenced data set and memberValue is value of current member (name of country).

Image Modified

Info

This will also automatically handle drill-down paths.

Cross Reference with Filter

BellaDati also does not take in consideration filters applied throught view settings. Therefore, you need to explicitelly tell BellaDati in formula definition which filters and how do you want to use them.

Code Block
filter("L_PASS_RESULT in ('" + memberValue() + "') AND L_PASS_SUBJECT in ('Math')"){  
	crossValue('CUBE_RESULTS.RESULTS', 'L_STUDENT_COUNT')
}

Cross Reference with Date

When filtering date, date attribute must be in format 'yyyy-MM-dd'.

Code Block
filter("L_DATE in ('2015-01-01')"){  
	crossValue('CUBE_RESULTS.RESULTS', 'M_MEASURE')
}

filtered date can also defined inside the crossValue function:

Code Block
crossValue('CUBE_RESULTS.RESULTS', '[L_DATE={2015-01-01}]', 'M_MEASURE')

You can find more about filters and their combinations in Filtering in Formulas.

Next Steps

Sv translation
languageja
Note

このチュートリアルに進む前に、crossValue、memberValueフィルター機能を十分参照することをお勧めします。

他所参照機能は他のデータセットからインディケーターにアクセスするときに使用されます。

2つのパラメーターを受け取ります:

  1. キューブ名
  2. インディケーター名

以下の例は結果データセットから生徒数を戻します。

Code Block
crossValue('CUBE_RESULTS.RESULTS', 'L_STUDENT_COUNT')
Tip

フォーミュラのヘルプから他所参照機能にアクセスし、キューブ名を定義してください。

他所参照、ドリルダウンの有無

値を他所参照する際、BellaDatiは適用したドリルダウンを考慮します。つまりは、両方のデータセットは同じアトリビュト(同じコード)と同じメンバーでなくてはいけません。

ドリルダウンなしで値を表示するには、withoutDrillDown機能との組み合わせでクロス値を使用してください。これでそれぞれのメンバーに同じ値が表示されます。

Code Block
withoutDrillDown() { 
crossValue('CROSSVALUETEST2.CROSSVALUETEST2', 'M_GDP')}

Image Added

メンバーが同じであってもアトリビュトコードが異なる場合があります。この場合BellaDatiに、参照データセットのどのアトリビュトを使用するかを明確に伝えてください。

以上の工程はcrossValue機能の2番目のパラメーターとしてmemberIdentifierを特定することで実行できます。ユーザー自身がmemberValueで自身のストリングを構成する必要があります。

Code Block
crossValue('CROSSVALUETEST2.CROSSVALUETEST2', '[L_COUNTRY_REF="'+memberValue()+'"]','M_GDP')

この例では、L_COUNTRY_REFは参照データセットのアトリビュトコードで、memberValueは現在のメンバー(国名)の値です。

Image Added

Info

これは自動的にドリルダウンコースを処理します。

フィルターで他所参照

BellaDatiはビュー設定を通して適用したフィルターを考慮しません。 それゆえ、BellaDatiにフォーミュラ定義において、どのフィルターおどのように使いたいか明確に伝える必要があります。

Code Block
filter("L_PASS_RESULT in ('" + memberValue() + "') AND L_PASS_SUBJECT in ('Math')"){  
	crossValue('CUBE_RESULTS.RESULTS', 'L_STUDENT_COUNT')
}

日付を用いた他所参照

日付を絞り込む場合、日付アトリビュトは'yyyy-MM-dd'形式でなくてはいけません。

Code Block
filter("L_DATE in ('2015-01-01')"){  
	crossValue('CUBE_RESULTS.RESULTS', 'M_MEASURE')
}

絞り込まれた日付はcrossValue機能内でも定義できます:

Code Block
crossValue('CUBE_RESULTS.RESULTS', '[L_DATE={2015-01-01}]', 'M_MEASURE')

フィルターとその組み合わせに関するさらなる詳細は、フォーミュラでの絞込み をご覧下さい。

Next Steps