#birt
#birt
Вопрос:
У меня проблема, я работаю над более старой версией birt (2.5), и в ней есть ошибка со стандартным отклонением, когда, если все введенные значения одинаковы, они вернут NaN, я полностью понимаю это, и мне потребовалось немного времени, чтобы разобраться, но я знаю, что этомоя проблема.
теперь мне нужно создать условие в ячейке, чтобы сделать его нулевым, если оно равно NaN, и с моим ограниченным опытом работы с birt я не уверен, как это сделать.
вот ячейка:
<cell id="1337">
<property name="backgroundColor">#CFAFCF</property>
<property name="textAlign">center</property>
<data id="1170">
<structure name="numberFormat">
<property name="category">Fixed</property>
<property name="pattern">#,##0.00</property>
</structure>
<list-property name="visibility">
<structure>
<property name="format">all</property>
<expression name="valueExpr" type="javascript">var points = row["CELL_POINTS"];amp;#13;
var minPoints = row["CELL_MIN_POINTS"];amp;#13;
var maxPoints = row["CELL_MAX_POINTS"];amp;#13;
points == null amp;amp;amp;amp; (minPoints == null || maxPoints == null)</expression>
</structure>
</list-property>
<property name="resultSetColumn">stddev</property>
</data>
</cell>
не спрашивайте, что означает valueExpr в этом, я понятия не имею, почему они это делают, но лучше оставить это в покое для меня 🙂
Я не могу опубликовать все это как 1, это огромно и сложно, и 2, это для работы.
вот агрегация stddev
<structure>
<property name="name">stddev</property>
<text-property name="displayName">stddev</text-property>
<property name="dataType">float</property>
<simple-property-list name="aggregateOn">
<value>grpGeneric</value>
</simple-property-list>
<property name="aggregateFunction">STDDEV</property>
<list-property name="arguments">
<structure>
<property name="name">Expression</property>
<expression name="value" type="javascript">dataSetRow["ASSIGNED_POINTS"]</expression>
</structure>
</list-property>
<expression name="filterExpr" type="javascript">dataSetRow["EVAL_COUNT"] == 1</expression>
</structure>
по сути, я хочу, чтобы, если данные ячейки возвращают значение NaN, чтобы оно равнялось 0, в противном случае сделайте его возвращаемым значением.
Спасибо.
Ответ №1:
Я уже решил это, добавив метод OnRender в ячейку
1) Перейдите на вкладку «Макет» для birt 2) Перейдите на вкладку «контур» для представления birt 3) Щелкните ячейку, для которой я хочу использовать метод OnRender 4) Перейдите на вкладку «Сценарий» 5) Выберите «OnRender» вверху 6) добавьте код, который я хочу, в моем случае:
if (this.getValue().toString().toLowerCase() == "nan"){
this.setDisplayValue(0);
} else {
this.setDisplayValue(this.getValue());
}