Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Sv translation
languageja
Note

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

CrossValue関数は、他のデータセットインジケータにアクセスするために使用されます。BellaDati 2.9.2以降、firstValue()、lastValueや、lastValue()などの関数を使用して属性にアクセスすることもできます。

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

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

次の例は、結果データセットから生徒数を返します。

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

数式ヘルプから事前定義されたキューブ名への相互参照関数にアクセスします。

ドリルダウンあり/なしの相互参照

値を相互参照する場合、BellaDatiは適用されたドリルダウンを考慮します。つまり、両方のデータセットに同じ属性(同じコード)と同じメンバーが必要です。

ドリルダウンなしで値を表示するには、クロス値をwithoutDrillDown関数と組み合わせて使用します。これにより、各メンバーに同じ値が表示されます。

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

同じことは、日付と時刻のドリルダウンとwithoutDateTime関数にも当てはまります。

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

場合によっては、メンバーは同じかもしれませんが、属性コードは異なるかもしれません。その場合、参照データセットのどの属性を使用すべきかをBellaDatiに明示的に伝える必要があります。

これを実現するには、crossValue関数の2番目のパラメーターとしてmemberIdentifierを指定します。memberValueで独自の文字列を作成する必要があります。

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

この例では、L_COUNTRY_REFは参照されるデータセットの属性コードであり、memberValueは現在のメンバー(国名)の値です。

Info

これにより、ドリルダウンパスも自動的に処理されます。

フィルターありの相互参照

BellaDatiは、ビュー設定全体に適用されるフィルターも考慮しません。従って、式の定義でBellaDatiにどのフィルターを使用し、どのように使用するかを明示的に指示する必要があります。

Code Block
filter("L_PASS_RESULT in ('"+ memberValue()+"') AND L_PASS_SUBJECT in ('Math')"){  
	crossValue('CUBE_RESULTS.RESULTS','L_STUDENT_COUNT')
}
Code Block
filter("L_DATE is not NULL"){
	crossValue('DATASET','[L_NAME="'+memberValue('L_USERNAME')+'"]','L_USERNAME_DCOUNT')
}

 

フィルターは、crossValue関数内でも直接定義できます:

Code Block
crossValue('CROSS','[L_ATT1="aaa"]','M_CROSS')

プラス記号を使用して、複数の条件を組み合わせることができます:

Code Block
crossValue('CROSS','[L_ATT1="aaa"]'+'[L_ATT2="bbb"]','M_CROSS')
Note

数値であっても、フィルターの値は文字列でなければならないことに注意してください。

例:

crossValue('dataset','[L_MONTH="'+month(minus(date(contextDay()),'months',1)).toString()+'"]','M_INDICATOR')

 

 

日付ありの相互参照

日付をフィルタリングする場合、日付属性の形式は「yyyy-MM-dd」でなければなりません。

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

絞り込まれた日付はcrossValue機能内でも定義できますフィルター処理された日付は、crossValue関数内でも定義できます:

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

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

CROSS-REFERENCING ATTRIBUTES

とその組み合わせの詳細については、Filtering in Formulasを参照してください。

相互参照属性

Since BellaDati 2.9.2, it is also possible to access Attributes by using operators such as LASTVALUE or FIRSTVALUE.2以降、LASTVALUEやFIRSTVALUEなどの演算子を使用して属性にアクセスすることもできます。

Code Block
crossValue('COUNTIES','L_REGION_LASTVALUE')

次に

...