Versions Compared

Key

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

...

Sv translation
languageja
Note

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

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

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

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

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

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

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

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

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

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

Code Block
withoutDrillDown() { 
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')
}

日付を用いた他所参照

日付を絞り込む場合、日付アトリビュトは'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')

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

次に

Sv translation
languagede


Note

Es wird empfohlen, sich mit den Funktionen crossValue, memberValue und Filter vertraut zu machen, bevor Sie mit diesem Tutorial fortfahren.

Die CrossValue-Funktion ermöglicht den Zugriff auf Indikatoren aus anderen Datensätzen. Seit BellaDati 2.9.2 ist es auch möglich, auf Attribute zuzugreifen, indem man eine Funktion wie lastValue() von firstValue() verwendet.

Es empfängt zwei Parameter:

  1. Name des Cubes
  2. Name des Indikators

Following example returns Students count from Results data set.

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

Der Zugriff auf die Querverweisfunktion aus Formeln hilft bei der Vorgabe des Cube-Namens.

Querverweis mit und ohne Drill-Down

Bei der Gegenüberstellung von Werten berücksichtigt BellaDati die angewandten Drill-Downs. Das bedeutet, dass beide Datensätze das gleiche Attribut (gleicher Code) und dieselben Elemente aufweisen müssen.

Um den Wert ohne Drill-Down anzuzeigen, verwenden Sie den Kreuzwert in Kombination mit der Funktion ohne Drill-Down. Dadurch wird für jedes Mitglied der gleiche Wert angezeigt.

 

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

Image Added

In einigen Fällen können die Mitglieder gleich sein, aber der Attributcode kann unterschiedlich sein. In diesem Fall müssen Sie BellaDati ausdrücklich mitteilen, welches Attribut aus dem referenzierten Datensatz verwendet werden soll.

Dies erreichen Sie, indem Sie memberIdentifier als zweiten Parameter von crossValue-Funktionen angeben. Du musst deinen eigenen String mit memberValue erstellen.

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

In diesem Beispiel ist L_COUNTRY_REF der Code des Attributs im referenzierten Datensatz und memberValue der Wert des aktuellen Mitglieds (Name des Landes).

Image Added

Info

Dadurch werden auch Drill-Down-Pfade automatisch verarbeitet.

Querverweis mit Filter

BellaDati berücksichtigt auch keine Filter, die über die Einstellungen der Ansicht angewendet werden. Daher müssen Sie BellaDati in der Formeldefinition explizit mitteilen, welche Filter und wie Sie sie verwenden wollen.

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

Der Filter kann auch direkt in der crossValue-Funktion definiert werden:

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

Mehrere Bedingungen können mit dem Pluszeichen kombiniert werden:

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

Bitte beachten Sie, dass der Wert des Filters String sein muss, auch wenn es sich um einen numerischen Wert handelt.

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

 

Querverweis mit Datum

Beim Filtern von Datum muss das Datumsattribut im Format'yyyyyyy-MM-dd' vorliegen.

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

gefiltertes Datum kann auch innerhalb der crossValue-Funktion definiert werden:

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

Mehr über Filter und deren Kombinationen finden Sie unter Filtern in Formelns.

Cross-Referenzierende Attribute

Seit BellaDati 2.9.2 ist es auch möglich, auf Attribute zuzugreifen, indem man Operatoren wie LASTVALUE oder FIRSTVALUE verwendet.

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

Nächste Schritte