это будет делать что-то вроде этого, и это не проверяется или что-то еще:
GroupBuilder gb1 = new GroupBuilder("column_name");
gb1.addFooterVariable(frb.getColumn("column_name_with_amounts"),CALCULATION.EMPTY,style_lala,getBigDecimalFormatter());
getBigDecimalFormatter:
private DJValueFormatter getBigDecimalFormatter(f) {
return new DJValueFormatter(){
public Object evaluate(Object value, Map fields, Map variables, Map parameters) {
return "here is excel code for calculating like sum=SUM(A1:A15)";
}
public String getClassName() {
return String.class.getName();
}};
}
вот и все, но будьте осторожны: вы должны иметьполный контроль над данными, из которых вы создаете отчет.Например, на getBigDecimalFormatter
вы должны знать, какие строки в столбце вы вычисляете.Как правило, у меня есть 2d массив объектов для данных, и я могу по полям карты определить все, что мне нужно.
По моему мнению, довольно много работы, но я не очень знаком с dynamicJasper, используя его некоторое времясейчас ... Может быть, для формата xls вам даже не нужно getBigDecimalFormatter
, просто b1.addFooterVariable()
.
Но с другой стороны, если вы просто создаете простую таблицу данных, а затем пользователь в Excel с помощью одной кнопки создает суммы, в любом случае это не так уж много работы:)
Берегите себя, Nb