Сначала создайте переменную $ V {Diff}, которая вычисляет разницу между $ F {Datetime} для всех строк. Это дает вам значения, которые вы хотите (и кучу, которая вам не нужна).
Во-вторых, отображать $ V {Diff} можно только тогда, когда $ F {Type} равен 2.
Но детали делают его веселым. Эта переменная не совсем очевидна в JasperReports. На самом деле вам нужны две переменные, и они должны быть определены в правильном порядке.
$V{Diff} Expression: $F{adate}.getTime() - $V{LastType1Date}
$V{LastType1Date} Expresion: ($F{type}.intValue() == 1) ? $F{adate}.getTime() : $V{LastType1Date}
Затем распечатайте, когда выражение легко: $F{type}.intValue() == 2
И вы получите то, что вам нужно:
Я проигнорировал форматирование интервалов, но я думаю, что это решает ключевые проблемы для вас. Вам просто нужно преобразовать миллисекунды в нужный вам формат.