Задача
Необходимо определить число строк в некотором DataSet'е, чтобы затем использовать это значение в скрипте.
Решение
Как вариант - создаем JS-переменную, равную 0, и в обработчике onFetch нужно датасэта выполняем ее инкремент.
reportContext.setGlobalVariable("GROUP_ROW_CNT", 0);Т.е. мы устанавливаем глобальную переменную GROUP_ROW_CNT в 0. Эта переменная будет счетчиком строк в рамках группы.
var curGroupRowCnt = reportContext.getGlobalVariable("GROUP_ROW_CNT");Т.е. мы инкрементируем счетчик строк в группе, и далее, если строка первая - устанавливаем для нее значение rowSpan, заведомо большее, чем возможное число строк в группе, а если строка не первая - то скрываем ее.
curGroupRowCnt++;
reportContext.setGlobalVariable("GROUP_ROW_CNT", curGroupRowCnt);
if(curGroupRowCnt != 1) {
this.getStyle().display = "none";
} else {
this.rowSpan = 1000; // заведомо большое число, т.к. мы на данном этапе не знаем, сколько строк в группе
}
апр 05, 2016 9:34:32 PM org.eclipse.birt.report.engine.api.impl.EngineTask handleFatalExceptions
SEVERE: An error happened while running the report. Cause:
org.eclipse.birt.report.engine.api.EngineException: Failed to initialize emitter.
at org.eclipse.birt.report.engine.emitter.EmitterUtil.getOuputStream(EmitterUtil.java:82)
...
Caused by: java.io.FileNotFoundException: \Myreport.rptdesign.html (Access is denied)
at java.io.FileOutputStream.open0(Native Method)
...
<context-param>Логи пишутся в папку log корня развертывания веб-приложения.
<param-name>BIRT_VIEWER_LOG_LEVEL</param-name>
<param-value>FINEST</param-value>
</context-param>
<plugin>
<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
<artifactId>maven-java-formatter-plugin</artifactId>
<version>0.3.1</version>
<configuration>
<configFile>Q:/my_formatter_config.xml</configFile>
</configuration>
</plugin>
<plugin>
<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
<artifactId>maven-java-formatter-plugin</artifactId>
<version>0.3.1</version>
<configuration>
<configFile>Q:/my_formatter_config.xml</configFile>
<includes>
<include>**/Test*.java</include>
</includes>
</configuration>
</plugin>