Versions Compared

Key

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

...

Sv translation
languageja

特別な関数

 

関数

説明

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
 DatefirstValue('L_DATE')
Project11/1/20151/1/2015
Project15/1/20151/1/2015
Project23/1/20153/1/2015
Project28/1/20153/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
ProjectDatelastValue('L_DATE')
Project11/1/20155/1/2015
Project15/1/20155/1/2015
Project23/1/20157/1/2015
Project27/1/20157/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
languagejava
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
languagegroovy
withoutFilter() {
	rank('L_CITY', 'Aberdeen', 'M_VISITS')
rankInner() { expression }

表で使用されているすべてのドリルダウン内の式に適用されているインジケータの番号順(ランク-昇順)を返します。例:

Section
Column

 

 

ドリルダウン売上rankInner()
コーヒー750001
カフェラテ250003
カフェモカ350002
ディカフェエスプレッソ150001
紅茶1000002
レモン1000001
rankInner(true) { expression }

表で使用されているすべてのドリルダウン内の式に適用されているインジケータの数値順(ランク-降順)を返します。例:

Section
Column
ドリルダウン売上rankInner(true)
コーヒー750002
カフェラテ250002
カフェモカ350001
ディカフェエスプレッソ150003
紅茶1000001
レモン1000001
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以降で使用可能)。
withoutViewFilter() { expression }
レポートフィルターとインジケータフィルターのみが適用されます(BellaDati 2.9.4以降で使用可能)。
loadData('L_DRILLDOWN', 'M_INDICATOR')

指定された属性のすべてのメンバーのインジケータの値をロードできます。数式のパフォーマンスを大幅に改善できます。関数は、メンバーとその値のマップを返します。このマップには、getMapValue()関数を使用してアクセスできます。

 

Code Block
languagegroovy
data = loadData('L_DRILLDOWN', 'M_INDICATOR')
getMapValue(data, '[memberId]')

memberIdの形式は以下である必要があります: [memberId] = [L_ATTRIBUTE={Value}]。通常、この関数はwithoutDrillDown()とともに使用されます。

Code Block
languagegroovy
withoutDrillDown() { 
data = loadData('L_COUNTRY', 'M_NUMBERS_BUILT')
getMapValue(data, '[L_COUNTRY={Germany}]')
  }

MAX、MINなどのランクや集計を使用することもできます:

Code Block
languagegroovy
data = loadData('L_DRILLDOWN', 'M_INDICATOR_rank()')
getMapValue(data, '[memberId]') //will return M_INDICATOR_rank() 
Code Block
languagegroovy
data = loadData('L_DRILLDOWN', 'M_INDICATOR@MAX')
getMapValue(data, '[memberId]') //will return the highest value of indicator

 

インジケータの代わりに、ユーザーは属性の最後から最初の値を取得することもできます。

Code Block
languagegroovy
data = loadData('L_DRILLDOWN', 'L_ATTRIBUTE_LASTVALUE')
Code Block
languagegroovy
data = loadData('L_DRILLDOWN', 'L_ATTRIBUTE_FIRSTVALUE')


時間式にパラメーターを渡す

数式で時間入力を定義することができます。次の関数は、これらの種類の数式にのみ適用できます。

関数

説明

void set(String name, Object value)

パラメーター値を設定します。

Object get(String name)

パラメーター値をロードします。

Object indicator()

現在の表の行のコンテキストからインジケータを返します。この関数は、式で定義されたインジケータ(レポートで定義)の値も返します。例:

Code Block
value(actualYear(),'actualMonth - 1m - 1d',indicator())

次の例を検討してください - コード M_NAME_1M_NAME_2, M_NAME_3といくつかのインジケーターがあります。これらのインジケータは、式1といくつかのインジケータがあります。これらのインジケータは、式1-3で使用されます。時間領域は、時間式1-5によって定義されます。

 

時間式 1:
M_NAME_1

時間式 2:
M_NAME_2

時間式 3:
M_NAME_3

時間式 4:
s = get('suffix');
return value('M_NAME' + s);

時間式 5:
value(actualYear(),
'now-1m',indicator())

数式 1:
set('suffix', '_1');
return M_NAME_1;

1000

2000

3000

1000

1000

数式 2:
set('suffix', '_2');
return M_NAME_2;

1000

2000

3000

2000

2000

数式 3:
set('suffix', '_3');
return M_NAME_3;

1000

2000

3000

3000

3000

M_NAME_1

1000

2000

3000

N/A

1000

M_NAME_2

1000

2000

3000

N/A

2000

M_NAME_3

1000

2000

3000

N/A

3000

ユーザー情報の取得

レポートのニーズに応じて、ログインユーザーの情報を取得することができます。

関数説明
String getSignedUserName()現在サインインしているユーザーの名前を返します。
String getSignedUserSurname()現在サインインしているユーザーの名字を返します。
String getSignedUserEmail()現在サインインしているユーザーのメールアドレスを返します。
String getSignedUser()現在サインインしているユーザーのユーザー名を返します。


リストと配列の使用

BellaDati
https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html のすべての配列
https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/ArrayUtils.html ArrayUtils
に対応しています。

構文: 最初にパッケージの名前を定義してから、目的の方法を使用します。

例:

def int[] a = [1,2,3]
a = ArrayUtils.add(a, 0)
Arrays.sort(a)
return a[3]

次に

...