Function | Beschreibung |
---|
String[] comments() | Gibt ein Array von Text innerhalb von Kommentaren zurück. Code Block |
---|
ArrayUtils.toString(comments()) |
|
String[] commentsDetails() | Liefert ein Array von Kommentaren im Format datetime + text, z.B.: 216-08-12T15:24:22.486;text. Code Block |
---|
ArrayUtils.toString(commentsDetails()) |
|
void filter(String filterExpression, { expression } )
| Bewertet den übergebenen Ausdruck mit dem angegebenen Filter. Zum Beispiel: Code Block |
---|
filter('M_MEASURE > 100') { L_ID_COUNT }
|
|
Double aggregatePrevLevel(int countOfPrevlevels, { expression } )
| Liefert den aggregierten Wert des eingebetteten Ausdrucks. Die Aggregation wird für die angegebene obere Ebene berechnet. Zum Beispiel: 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() | Liefert den niedrigsten Wert der ausgewählten Ebene (Messung). Zum Beispiel: 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') | Berechnet den Ausdruck auf Datensatzzeilebene und berechnet die Summe aus bestimmten Ergebnissen. Das folgende Beispiel zeigt den Unterschied der Verwendung von Multiplikation innerhalb der forEachRow()-Methode und außerhalb: 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') | Berechnet den Ausdruck auf Datensatzebene und berechnet die Aggregation basierend auf dem zweiten Parameter aus bestimmten Ergebnissen. Die Aggregation kann Summen, MIN, MAX, AVG, COUNT, DCOUNT beinhalten. |
Double formatNumber(number value) | Formatiert den Wert entsprechend dem Format des Indikators aus den Einstellungen. |
Double formatNumber(number value, 'String pattern') | Formatiert den Wert entsprechend dem Format des Indikators aus den Einstellungen. Mit dem Zeichenkettenmuster können Sie steuern, wie das angegebene Format aussieht. |
Double lastValue() | Liefert den niedrigsten Wert der ausgewählten Ebene (Messwert). Zum Beispiel: 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 } | Berechnet den Ausdruck für bestimmte Attributwerte, die durch den Attributparameter definiert sind. 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 | Value | | 5 | 30 | 80 | 150 | | Value1 | 3 | 20 | 60 | 60 | | Value2 | 2 | 10 | 20 | 20 |
|
|
Lesen Sie die besten besten Praktiken der Formel für die korrekte Verwendung.
|
Double members(String path, { expression } )
| Berechnet den Ausdruck für die gewünschten Drill-Down-Memberwerte. Beispiel: Code Block |
---|
return members('[L_LEVEL_1=VAL][L_LEVEL_2="VAL1,VAL2"]', {
M_NAME_1 * M_NAME_2
})
|
Dieses Beispiel gibt den Wert des Kennzeichens M_NAME_1 zurück, das für bestimmte Mitglieder aggregiert wurde. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersSum({ expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder und berechnet die Summe aus bestimmten Ergebnissen. Das folgende Beispiel zeigt den Unterschied der Verwendung von Multiplikation innerhalb der membersSum()-Methode und außerhalb: 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 |
|
|
Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersSum(String levelCode, { expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder des definierten LevelCodes und berechnet die Summe aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersAvg({ expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder und berechnet den Durchschnittswert aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersAvg(String levelCode, { expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder des definierten LevelCodes und berechnet den Durchschnittswert aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersMin({ expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder und berechnet den Minimalwert aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersMin(String levelCode, { expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder des definierten LevelCodes und berechnet den Minimalwert aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersMax({ expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder und berechnet den Maximalwert aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double membersMax(String levelCode, { expression } )
| Berechnet den Ausdruck für bestimmte Mitglieder des definierten levelCode und berechnet den Maximalwert aus bestimmten Ergebnissen. Lesen Sie die besten Praktiken der Formel für die korrekte Verwendung. |
Double dateAttribute(String levelCode){ expression }
| Berechnet den Ausdruck für bestimmte Mitglieder des definierten levelCode an definierten Daten. Code Block |
---|
dateAttribute('L_DATE') {dateInterval('2014-01-01','2014-12-01') { 'M_NAME_1' + 'M_NAME_2' } }
|
|
Double timeAttribute(String levelCode){ expression } | Berechnet den Ausdruck für bestimmte Mitglieder des definierten levelCode zur definierten Zeit. Code Block |
---|
timeAttribute('L_TIME') {timeInterval('10:00:00','12:00:00') { 'M_NAME_1' + 'M_NAME_2' } }
|
|
String attributeCode()
| Returns the attribute code of current member. Example: Section |
---|
Column |
---|
| Population | attributeCode() | Prague | 1200000 | L_CITY | Berlin | 3000000 | L_CITY | London | 7825200 | L_CITY |
|
|
|
String localize(String attributeCode, String valueToLocalize) | |
String localize(String dataSetCode, String attributeCode, String valueToLocalize); | Verfahren zum Laden von Übersetzungen aus einem referenzierten Datensatz. Code Block |
---|
| localize('TRANSLATIONS', 'L_ORIG', firstValue('L_STATE')); |
|
String memberIdentifier()
| Liefert den Attributcode und den Wert des aktuellen Elements in der folgenden Form[L_CODE={VALUE}]. Beispiel: Section |
---|
Column |
---|
| Population | memberIdentifier() | Prague | 1200000 | [L_CITY= {Prague}] | Berlin | 3000000 | [L_CITY= {Berlin}] | London | 7825200 | [L_CITY= {London}] |
|
|
|
String memberValue()
| Liefert den Wert des aktuellen Elements. Beispiel: Section |
---|
Column |
---|
| Population | memberValue() | Prague | 1200000 | Prague | Berlin | 3000000 | Berlin | London | 7825200 | London |
|
|
|
printComments() | Liefert formatierten Text von Kommentaren. Es ist nicht nötig, darüber zu iterieren. |
rank() { expression } | Liefert die numerische Reihenfolge (Rang) des Indikators, der auf den Ausdruck innerhalb der verwendeten Auflistung angewendet wird. Beispiel: Section |
---|
Column |
---|
User | Score | rank() | Peter | 90.3 | 2 | John | 92.7 | 1 | Anna | 89.7 | 3 |
|
|
|
rank('L_DRILLDOWN', 'M_INDICATOR') | Der Rang wird über einen bestimmten Drill-Down berechnet. |
rank('L_DRILLDOWN', 'MEMBER', 'M_INDICATOR') | The rank is calculated over a certain drill-down. Code Block |
---|
| withoutFilter() {
rank('L_CITY', 'Aberdeen', 'M_VISITS')
} |
|
rankInner() { expression } | Liefert die numerische Reihenfolge (Rang - aufsteigend) des im Ausdruck verwendeten Indikators innerhalb aller verwendeten Aufrisse in der Tabelle. Beispiel: Section |
---|
Column |
---|
Drill-down | Sales | rankInner() |
---|
Coffee | 75000 | 1 | - Caffe Latte | 25000 | 3 | - Caffe Mocca | 35000 | 2 | - Decaf Espresso | 15000 | 1 | Tea | 100000 | 2 | - Lemon | 100000 | 1 |
|
|
|
rankInner(true) { expression } | Liefert die numerische Reihenfolge (Rang - absteigend) des im Ausdruck verwendeten Indikators innerhalb aller verwendeten Aufrisse in der Tabelle. Beispiel: Section |
---|
Column |
---|
Drill-down | Sales | rankInner(true) |
---|
Coffee | 75000 | 2 | - Caffe Latte | 25000 | 2 | - Caffe Mocca | 35000 | 1 | - Decaf Espresso | 15000 | 3 | Tea | 100000 | 1 | - Lemon | 100000 | 1 |
|
|
|
setDebugOn(true) | Aktiviert den Debug-Modus. Ifformulacontains Fehler, Tabellenzelle enthält detaillierte Stapelverfolgung über Fehler, Diagramm und KPI-Label werden nicht dargestellt und Fehlerdetails werden ausgedruckt. Wir empfehlen, diese Funktion nur während des Debuggens zu verwenden. Wenn nicht debuggend, löschen oder als Kommentar markieren: //setDebugOn(true) |
withoutDateTime() { expression } | Deaktivieren Sie die geltenden Datums- und Zeitintervalle. Beispiel: Section |
---|
Column |
---|
Date | M_INDICATOR | withoutDateTime() { M_INDICATOR } | 1/12 - 12/12 | 1000 | 3000 | 1/1/2013 - 1/31/2013 | 100 | 3000 |
|
|
|
withoutDrillDown() { expression } | Opt-out von den angewandten Drill-Downs. Beispiel: Section |
---|
Column |
---|
Country | M_INDICATOR | withoutDrillDown() { M_INDICATOR } | +UK | 3000 | 3000 | --London | 1000 | 3000 | --Manchester | 1000 | 3000 | --Oxford | 1000 | 3000 |
|
|
In Fällen, in denen eine mehrfache Drill-Down-Anwendung nicht möglich ist, können einige der Drill-Downs von der Funktion withoutDrillDownFunction ausgeschlossen werden (die Aggregation für die obere Ebene wird angezeigt). Section |
---|
Column |
---|
Country | City | M_INDICATOR | withoutDrillDown('L_CITY') { M_INDICATOR } | UK | Manchester | 3000 | 4000 | UK | London | 1000 | 4000 | France | Paris | 1000 | 2000 | France | Nice | 1000 | 2000 |
|
|
|
withoutFilter() { expression } | Opt-out from applied filters. Example: (Filter is set to SEGMENT=SMB) Section |
---|
Column |
---|
City | M_INDICATOR | withoutFilter() { M_INDICATOR } | Paris | 1000 | 3000 | London | 900 | 3000 | Berlin | 1100 | 3000 |
|
|
|
withoutReportFilter() { expression } | Es werden nur Ansichtsfilter und Indikatorfilter angewendet (verfügbar seit BellaDati 2.9.4). |
withoutViewFilter() { expression } | Es werden nur Berichtsfilter und Indikatorfilter angewendet (verfügbar seit BellaDati 2.9.4). |
loadData('L_DRILLDOWN', 'M_INDICATOR') | Ermöglicht das Laden von Werten eines Indikators für alle Mitglieder des angegebenen Attributs. Es kann die Leistung von Formeln erheblich verbessern. Die Funktion gibt die Karte der Mitglieder und ihrer Werte zurück. Auf diese Karte kann mit der Funktion getMapValue() zugegriffen werden. Code Block |
---|
| data = loadData('L_DRILLDOWN', 'M_INDICATOR')
getMapValue(data, '[memberId]') |
Die memberId muss folgendes Format haben: [memberId] = [L_ATTRIBUTE={Value}]. Normalerweise wird die Funktion zusammen mit withoutDrillDown() verwendet. Code Block |
---|
| withoutDrillDown() {
data = loadData('L_COUNTRY', 'M_NUMBERS_BUILT')
getMapValue(data, '[L_COUNTRY={Germany}]')
} |
Es ist auch möglich, Rang oder Aggregation wie MAX, MIN usw. zu verwenden: 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 |
Anstelle des Kennzeichens kann der Benutzer auch den ersten bis letzten Wert eines Attributs abrufen. Code Block |
---|
| data = loadData('L_DRILLDOWN', 'L_ATTRIBUTE_LASTVALUE') |
Code Block |
---|
| data = loadData('L_DRILLDOWN', 'L_ATTRIBUTE_FIRSTVALUE') |
|