関数 | 説明 |
---|
String[] comments() | コメント内のテキストの配列を返します。 Code Block |
---|
ArrayUtils.toString(comments()) |
|
String[] commentsDetails() | 日付時刻+テキスト形式のコメントの配列を返します。例: 216-08-12T15:24:22.486;text. Code Block |
---|
ArrayUtils.toString(commentsDetails()) |
|
void filter(String filterExpression, { expression } )
| 指定されたフィルターでパスされた式を評価します。例: Code Block |
---|
filter('M_MEASURE > 100') { L_ID_COUNT }
|
|
Double aggregatePrevLevel(int countOfPrevlevels, { expression } )
| 埋め込み式の集計値を返します。指定された上位レベルの集計が計算されます。例: Code Block |
---|
total = aggregatePrevLevel(1, {
cumulateFromTime(actualYear(), {
'M_NAME_1' + 'M_NAME_2'
});
});
current = cumulateFromTime(actualYear(), {
'M_NAME_1' + 'M_NAME_2'
});
return current / total;
|
|
Double firstValue() | 選択したレベル(方法)の最低値を返します。例: Section |
---|
Column |
---|
| Date | firstValue('L_DATE') |
---|
Project1 | 1/1/2015 | 1/1/2015 | Project1 | 5/1/2015 | 1/1/2015 | Project2 | 3/1/2015 | 3/1/2015 | Project2 | 8/1/2015 | 3/1/2015 |
|
|
|
Double forEachRow('expression') | データセットの行レベルで式を計算し、特定の結果から合計を計算します。以下の例は、forEachRow() メソッド内と外部とで掛け算をすることの違いを表しています: Section |
---|
Column |
---|
|
| Ind1 | Ind2 | forEachRow('M_IND_1 * M_IND_2') | M_IND_1 * M_IND_2 | Member |
| 5 | 30 | 80 | 150 |
| DrillDownMember1 | 3 | 20 | 60 | 60 |
| DrillDownMember2 | 2 | 10 | 20 | 20 |
|
|
|
Double forEachRow('expression','aggregation') | データセットの行レベルで式を計算し、特定の結果の2番目のパラメーターに基づいて集計を計算します。集計には、SUM、MIN、MAX、AVG、COUNT、DCOUNTを含めることができます。 |
Double formatNumber(number value) | 設定からインジケータのフォーマットに従って値をフォーマットします。 |
Double formatNumber(number value, 'String pattern') | 設定からインジケータのフォーマットに従って値をフォーマットします。文字列パターンを使用すると、形式の指定方法を制御できます。
|
Double lastValue() | 選択したレベル(方法)の最大値を返します。例: Section |
---|
Column |
---|
Project | Date | lastValue('L_DATE') |
---|
Project1 | 1/1/2015 | 5/1/2015 | Project1 | 5/1/2015 | 5/1/2015 | Project2 | 3/1/2015 | 7/1/2015 | Project2 | 7/1/2015 | 7/1/2015 |
|
|
|
void eachMember(String attribute) { expression } | 属性パラメーターによって定義された特定の属性値の式を計算します。 Section |
---|
Column |
---|
L_ATTRIBUTE_1 | L_ATTRIBUTE_2 | Ind1 | Ind2 | def result = 0 eachMember('L_ATTRIBUTE_2') { result = M_IND_1 * M_IND_2 } return result | M_IND_1 * M_IND_2 | 値 |
| 5 | 30 | 80 | 150 |
| Value1 | 3 | 20 | 60 | 60 |
| Value2 | 2 | 10 | 20 | 20 |
|
|
正しい使用法については、Formula best practicesを参照して下さい。 |
Double members(String path, { expression } )
| 目的のドリルダウンメンバー値の式を計算します。例: Code Block |
---|
return members('[L_LEVEL_1=VAL][L_LEVEL_2="VAL1,VAL2"]', {
M_NAME_1 * M_NAME_2
})
|
この例では、指定されたメンバーについて集計されたインジケータM_NAME_1 の値を返します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersSum({ expression } )
| 特定のメンバーの式を計算し、特定の結果から合計を計算します。以下の例は、membersSum() メソッド内と外部とで掛け算をすることの違いを表しています: Section |
---|
Column |
---|
|
| Ind1 | Ind2 | membersSum( { M_IND_1 * M_IND_2 } ) | M_IND_1 * M_IND_2 | Member |
| 5 | 30 | 80 | 150 |
| DrillDownMember1 | 3 | 20 | 60 | 60 |
| DrillDownMember2 | 2 | 10 | 20 | 20 |
|
|
正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersSum(String levelCode, { expression } )
| 定義されたlevelCode の特定のメンバーの式を計算し、特定の結果から合計を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersAvg({ expression } )
| 特定のメンバーの式を計算し、特定の結果から平均値を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersAvg(String levelCode, { expression } )
| 定義されたlevelCode の特定のメンバーの式を計算し、特定の結果から平均値を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersMin({ expression } )
| 特定のメンバーの式を計算し、特定の結果から最小値を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersMin(String levelCode, { expression } )
| 定義されたlevelCode の特定のメンバーの式を計算し、特定の結果から最小値を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersMax({ expression } )
| 特定のメンバーの式を計算し、特定の結果から最大値を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double membersMax(String levelCode, { expression } )
| 定義されたlevelCode の特定のメンバーの式を計算し、特定の結果から最大値を計算します。 正しい使用法については、Formula best practicesを参照して下さい。 |
Double dateAttribute(String levelCode){ expression }
| 定義された日付に、定義されたlevelCode の特定のメンバーの式を計算します。 Code Block |
---|
dateAttribute('L_DATE') {dateInterval('2014-01-01','2014-12-01') { 'M_NAME_1' + 'M_NAME_2' } }
|
|
Double timeAttribute(String levelCode){ expression } | 定義された時間に、定義されたlevelCode の特定のメンバーの式を計算します。 Code Block |
---|
timeAttribute('L_TIME') {timeInterval('10:00:00','12:00:00') { 'M_NAME_1' + 'M_NAME_2' } }
|
|
String attributeCode()
| 現在のメンバーの属性コードを返します。例: Section |
---|
Column |
---|
| 人口 | attributeCode() | プラハ | 1200000 | L_CITY | ベルリン | 3000000 | L_CITY | ロンドン | 7825200 | L_CITY |
|
|
|
String localize(String attributeCode, String valueToLocalize) |
|
String localize(String dataSetCode, String attributeCode, String valueToLocalize); | 参照データセットから翻訳をロードする方法。 Code Block |
---|
| localize('TRANSLATIONS', 'L_ORIG', firstValue('L_STATE')); |
|
String memberIdentifier()
| [L_CODE = {VALUE}]の形式で現在のメンバーの属性コードと値を返します。例: Section |
---|
Column |
---|
| 人口 | memberIdentifier() | プラハ | 1200000 | [L_CITY= {プラハ}] | ベルリン | 3000000 | [L_CITY= {ベルリン}] | ロンドン | 7825200 | [L_CITY= {ロンドン}] |
|
|
|
String memberValue()
| 現在のメンバーの値を返します。例: Section |
---|
Column |
---|
| 人口 | memberValue() | プラハ | 1200000 | プラハ | ベルリン | 3000000 | ベルリン | ロンドン | 7825200 | ロンドン |
|
|
|
printComments() | コメントの書式付きテキストを返します。それを繰り返す必要はありません。 |
rank() { expression } | 使用されたドリルダウン内の式に適用されるインジケータの番号順(ランク)を返します。例: Section |
---|
Column |
---|
ユーザー | スコア | rank() | ピーター | 90.3 | 2 | ジョン | 92.7 | 1 | アンナ | 89.7 | 3 |
|
|
|
rank('L_DRILLDOWN', 'M_INDICATOR') | ランクは特定のドリルダウンで計算されます。 |
rank('L_DRILLDOWN', 'MEMBER', 'M_INDICATOR') | ランクは特定のドリルダウンとメンバーについて計算します。 Code Block |
---|
| withoutFilter() {
rank('L_CITY', 'Aberdeen', 'M_VISITS') |
|
rankInner() { expression } | 表で使用されているすべてのドリルダウン内の式に適用されているインジケータの番号順(ランク-昇順)を返します。例: Section |
---|
Column |
---|
ドリルダウン | 売上 | rankInner() |
---|
コーヒー | 75000 | 1 | カフェラテ | 25000 | 3 | カフェモカ | 35000 | 2 | ディカフェエスプレッソ | 15000 | 1 | 紅茶 | 100000 | 2 | レモン | 100000 | 1 |
|
|
|
rankInner(true) { expression } | 表で使用されているすべてのドリルダウン内の式に適用されているインジケータの数値順(ランク-降順)を返します。例: Section |
---|
Column |
---|
ドリルダウン | 売上 | rankInner(true) |
---|
コーヒー | 75000 | 2 | カフェラテ | 25000 | 2 | カフェモカ | 35000 | 1 | ディカフェエスプレッソ | 15000 | 3 | 紅茶 | 100000 | 1 | レモン | 100000 | 1 |
|
|
|
setDebugOn(true) | デバッグモードを有効にします。式にエラーが含まれる場合、表セルにはエラーに関する詳細なスタックトレースが含まれ、チャートとKPIラベルはレンダリングされず、エラーの詳細が出力されます。 この関数は、デバッグ中にのみ使用することをお勧めします。デバッグしていない場合は、削除するかコメントとしてマークします: //setDebugOn(true) |
withoutDateTime() { expression } | 適用された日付と時間間隔から脱退します。例: Section |
---|
Column |
---|
日付 | M_INDICATOR | withoutDateTime() { M_INDICATOR } | 1/12 - 12/12 | 1000 | 3000 | 1/1/2013 - 1/31/2013 | 100 | 3000 |
|
|
|
withoutDrillDown() { expression } | 適用されたドリルダウンから脱退します。例: Section |
---|
Column |
---|
国 | M_INDICATOR | withoutDrillDown() { M_INDICATOR } | +イギリス | 3000 | 3000 | --ロンドン | 1000 | 3000 | --マンチェスター | 1000 | 3000 | --オックスフォード | 1000 | 3000 |
|
|
場合によっては、複数のドリルダウンが適用可能な場合、一部のドリルダウンをwithoutDrillDownFunction関数から除外できます(上位レベルの集計が表示されます)。 Section |
---|
Column |
---|
国 | 都市 | M_INDICATOR | withoutDrillDown('L_CITY') { M_INDICATOR } | イギリス | マンチェスター | 3000 | 4000 | イギリス | ロンドン | 1000 | 4000 | フランス | パリ | 1000 | 2000 | フランス | ニース | 1000 | 2000 |
|
|
|
withoutFilter() { expression }
| 適用されたフィルターから脱退します。例: (フィルターはSEGMENT=SMBに設定) Section |
---|
Column |
---|
都市 | M_INDICATOR | withoutFilter() { M_INDICATOR } | パリ | 1000 | 3000 | ロンドン | 900 | 3000 | ベルリン | 1100 | 3000 |
|
|
|
withoutReportFilter() { expression } | ビューフィルターとインジケータフィルターのみが適用されます(BellaDati 2.9.4以降で使用可能)。 BellaDati 2.9.17以降、どのフィルターをコードで無視するかを指定できます。 Code Block |
---|
withoutReportFilter('code1','code2')
|
|
withoutViewFilter() { expression } | レポートフィルターとインジケータフィルターのみが適用されます(BellaDati 2.9.4以降で使用可能)。 BellaDati 2.9.17以降、どのフィルターをコードで無視するかを指定できます。 Code Block |
---|
withoutViewFilter('code1','code2')
|
|
loadData('L_DRILLDOWN', 'M_INDICATOR') | 指定された属性のすべてのメンバーのインジケータの値をロードできます。数式のパフォーマンスを大幅に改善できます。関数は、メンバーとその値のマップを返します。このマップには、getMapValue()関数を使用してアクセスできます。
Code Block |
---|
| data = loadData('L_DRILLDOWN', 'M_INDICATOR')
getMapValue(data, '[memberId]') |
memberIdの形式は以下である必要があります: [memberId] = [L_ATTRIBUTE={Value}]。通常、この関数はwithoutDrillDown()とともに使用されます。 Code Block |
---|
| withoutDrillDown() {
data = loadData('L_COUNTRY', 'M_NUMBERS_BUILT')
getMapValue(data, '[L_COUNTRY={Germany}]')
} |
MAX、MINなどのランクや集計を使用することもできます: Code Block |
---|
| data = loadData('L_DRILLDOWN', 'M_INDICATOR_rank()')
getMapValue(data, '[memberId]') //will return M_INDICATOR_rank() |
Code Block |
---|
| data = loadData('L_DRILLDOWN', 'M_INDICATOR@MAX')
getMapValue(data, '[memberId]') //will return the highest value of indicator |
インジケータの代わりに、ユーザーは属性の最後から最初の値を取得することもできます。 Code Block |
---|
| data = loadData('L_DRILLDOWN', 'L_ATTRIBUTE_LASTVALUE') |
Code Block |
---|
| data = loadData('L_DRILLDOWN', 'L_ATTRIBUTE_FIRSTVALUE') |
|