Я использую библиотеку DynamicJasper для создания отчетов в веб-приложении JavaEE, так как мне надоел Jaspersoft, и, похоже, нет другого инструмента для создания отчетов на основе Java, который был бы открытым и хорошим.Пожалуйста, просветите меня, если кто-нибудь из вас знает лучше.
В настоящее время у меня есть две проблемы, я не могу складывать блоки автотекста в нижний колонтитул (в верхнем колонтитуле в порядке), только один или два будут отображаться в зависимости от ....... эм..... у меня нет ответа на это.Кто-нибудь знает, возможно ли что-то подобное?
.addAutoText(footerText)
.addAutoText(boxedText)
.addAutoText(xyText)
Я не могу получить итоговое значение для всей колонки как группы, и я проверил почти все, что смог найти, чтобы попытаться разобраться в этом.но я все еще не могу это сделать.
Как вы можете видеть здесь, у меня есть сумма каждой строки под суммой для каждой строки(да!), но я мог бы действительно использовать весь столбец для суммирования.Кто-нибудь знает, почему это может быть?
AbstractColumn costCol = ColumnBuilder.getNew()
.setColumnProperty("cost", Double.class.getName())
.setTitle("Cost")
.setWidth(30)
.setStyle(DynamicJasperStyle.columnStyle(DjValues.INVOICE_COLUMN_SIZE, DjValues.CENTRE, "£0.00"))
.setHeaderStyle(DynamicJasperStyle.columnHeaderStyle(DjValues.INVOICE_COLUMN_SIZE, DjValues.CENTRE))
.build();
GroupBuilder gBuilder = new GroupBuilder();
DJGroup sumGroup = gBuilder.setCriteriaColumn((PropertyColumn) costCol)
.addFooterVariable(costCol,DJCalculation.SUM)
.build();
dr = frb.setGrandTotalLegend("total")
.addColumn(descCol)
.addColumn(qtyCol)
.addColumn(costCol)
.addGroup(sumGroup)
.build();
drb.addConcatenatedReport(dr, new ClassicLayoutManager(), "FakeInvoiceItem", DJConstants.DATA_SOURCE_ORIGIN_PARAMETER, DJConstants.DATA_SOURCE_TYPE_COLLECTION, false);
Где drb = DynamicReportBuilder, dr = DynamicReport и frb = FastReportBuilder.
Мои методы стиля выглядят так:
static public Style columnStyle(int font_weight, String orientation, String pattern)
{
Style columnStyle = new Style();
columnStyle.setHorizontalAlign(HorizontalAlign.CENTER);
columnStyle.setPaddingTop(8);
columnStyle.setPaddingBottom(8);
columnStyle.setFont(new Font(font_weight,"DejaVu Serif",false));
if (orientation.equals(DjValues.CENTRE))
{
columnStyle.setHorizontalAlign(HorizontalAlign.CENTER);
}
else if (orientation.equals(DjValues.LEFT))
{
columnStyle.setHorizontalAlign(HorizontalAlign.LEFT);
}
else if(orientation.equals(DjValues.RIGHT))
{
columnStyle.setHorizontalAlign(HorizontalAlign.RIGHT);
}
if (!StringUtils.isNullOrEmpty(pattern))
{
columnStyle.setPattern(pattern);
}
return columnStyle;
}