このチュートリアルを進める前に、memberSum関数とそのバリエーションを十分参照することをお勧めします。

数式の評価に関して、BellaDatiは以下の方法で進めます:

  1. 特定のインジケータメンバー集計関数を適用します(SUM, MIN, MAX, AVG, COUNT)
  2. インジケータ間でユーザー定義の演算子を計算を実行します(+,-,*,/)

ただし、この動作が要求されない場合があります。

次の状況を想像してみてください。価格数量のインジケータがあり、総売上を表示したいとします。標準的な動作では、BellaDatiはすべての価格と数量を合計し、最終的にそれを乗算します。それでも、正しい手順は、すべての行で価格数量を乗算し、その後結果を統合して総売上を表示することです。

総売上の計算

memberSum関数を活用して、BellaDatiに特定のレベルで定義された操作を実行させることができます。すべての行で価格数量の乗算が必要なので、一意のキー属性をmemberSumパラメーターとして使用します。

この例は、ドリルダウンパスが適用されていないインジケータには十分です。目的のディメンジョンにこのコードを拡張する方法を見つけるには、さらに進んでください。

int sales = 0
membersSum('L_ID'){
	int revenue = (M_QUANTITY * M_PRICE)
  sales = sales + revenue
}

return sales

特定のドリルダウンのための総売上の計算

memberSum関数の適用中にドリルダウンパスを考慮する場合は、開発した式で明示的に定義する必要があります。次の例に示すように、一意のキー定義の前に目的の属性コードを配置します。これにより、データが正しく乗算され、その後集計されます。

memberSum関数のパラメーターの順序は重要であることに注意してください。また、ドリルダウンパス定義で特定の属性を選択する必要があります。

int sales = 0
membersSum('[L_DEPARTMENT][L_ID]'){
	int revenue = (M_QUANTITY * M_PRICE)
  sales = sales  +  revenue
}

return sales 

数式にパラメーターを追加することにより、次元を拡張できます。

以下の表で、適用された数式結果を確認できます。同様の設定が、文字データの視覚化にも適用されます。

次に