Выражение BIRT для фильтрации данных на основе последовательных экземпляровJAVA

Программисты JAVA общаются здесь
Anonymous
Выражение BIRT для фильтрации данных на основе последовательных экземпляров

Сообщение Anonymous »

Я работаю над отчетом BIRT, и мне нужна помощь в уточнении выражения фильтрации данных.
Проблема:
У меня есть существующий шаблон BIRT (.rptdesign) и образец данных XML.
Я удалил первые два столбца из отчета.
Цель состоит в том, чтобы отображать только строки, в которых встречается определенное значение 7 или несколько раз подряд.
Изображение
Изображение
[img]https://i. sstatic.net/zOJJ7rt5.png[/img]
Изображение

Попытки:
Я создал выражение BIRT, но оно не дает желаемых результатов.
Имя вычисляемого столбца — maxConsecutiveDays, тип данных — Integer
var consecutiveDays = 0;
var maxConsecutiveDays = 0;
var lastDate = null;

for (var i = 0; i < dataSetRow["CalendarDate"].length; i++) {
var currentDate = new Date(dataSetRow["CalendarDate"]);

if (lastDate) {
var diffDays = (currentDate - lastDate) / (1000 * 60 * 60 * 24);

if (diffDays === 1) {
consecutiveDays++;
} else {
if (consecutiveDays > maxConsecutiveDays) {
maxConsecutiveDays = consecutiveDays;
}
consecutiveDays = 1;
}
} else {
consecutiveDays = 1;
}

lastDate = currentDate;
}

if (consecutiveDays > maxConsecutiveDays) {
maxConsecutiveDays = consecutiveDays;
}

maxConsecutiveDays;


Подробнее здесь: https://stackoverflow.com/questions/787 ... -instances

Вернуться в «JAVA»