Style footerStyleTotalSumValue = new Style();
footerStyleTotalSumValue.setFont(Font.VERDANA_MEDIUM_BOLD);
footerStyleTotalSumValue.setHorizontalAlign(HorizontalAlign.RIGHT);
footerStyleTotalSumValue.setBorderTop(Border.PEN_1_POINT);
DynamicReportBuilder drb = new DynamicReportBuilder();
DynamicReport dr;
// Sets the Report Columns, header, Title, Groups, Etc Formats
// DynamicJasper documentation
drb.setTitle(this.zksample2title);
// drb.setSubtitle("DynamicJasper Sample");
drb.setSubtitleStyle(subtitleStyle);
drb.setHeaderHeight(20);
drb.setDetailHeight(15);
drb.setFooterVariablesHeight(10);
drb.setMargins(20, 20, 30, 15);
drb.setDefaultStyles(titleStyle, subtitleStyle, columnHeaderStyleText, columnDetailStyleText);
drb.setPrintBackgroundOnOddRows(true);
/**
* Adding many autotexts in the same position (header/footer and
* aligment) makes them to be one on top of the other
*/
Style atStyle = new StyleBuilder(true).setFont(Font.COMIC_SANS_SMALL).setTextColor(Color.red).build();
AutoText created = new AutoText(Labels.getLabel("common.Created") + ": " + ZksampleDateFormat.getDateTimeFormater().format(new Date()), AutoText.POSITION_HEADER, HorizontalBandAlignment.RIGHT);
created.setWidth(new Integer(120));
created.setStyle(atStyle);
drb.addAutoText(created);
AutoText autoText = new AutoText(AutoText.AUTOTEXT_PAGE_X_SLASH_Y, AutoText.POSITION_HEADER, HorizontalBandAlignment.RIGHT);
autoText.setWidth(new Integer(20));
autoText.setStyle(atStyle);
drb.addAutoText(autoText);
AutoText atCustomerHeader = new AutoText(Labels.getLabel("orderDialogWindow.title") + " : " + getOrder().getAufBezeichnung(), AutoText.POSITION_HEADER, HorizontalBandAlignment.LEFT);
atCustomerHeader.setPrintWhenExpression(ExpressionHelper.printInFirstPage());
atCustomerHeader.setStyle(subtitleStyleUL);
AutoText name1 = new AutoText(getCustomer().getKunName1(), AutoText.POSITION_HEADER, HorizontalBandAlignment.LEFT);
name1.setPrintWhenExpression(ExpressionHelper.printInFirstPage());
AutoText name2 = new AutoText(getCustomer().getKunName2(), AutoText.POSITION_HEADER, HorizontalBandAlignment.LEFT);
name2.setPrintWhenExpression(ExpressionHelper.printInFirstPage());
AutoText city = new AutoText(getCustomer().getKunOrt(), AutoText.POSITION_HEADER, HorizontalBandAlignment.LEFT);
city.setPrintWhenExpression(ExpressionHelper.printInFirstPage());
AutoText emptyLine = new AutoText("", AutoText.POSITION_HEADER, HorizontalBandAlignment.LEFT);
emptyLine.setPrintWhenExpression(ExpressionHelper.printInFirstPage());
drb.addAutoText(atCustomerHeader).addAutoText(emptyLine).addAutoText(name1).addAutoText(name2).addAutoText(city).addAutoText(emptyLine);
// Footer
AutoText footerText = new AutoText("Help to prevent the global warming by writing cool software.", AutoText.POSITION_FOOTER, HorizontalBandAlignment.CENTER);
footerText.setStyle(footerStyle);
drb.addAutoText(footerText);
/**
* Columns Definitions. A new ColumnBuilder instance for each column.
*/
// Quantity
AbstractColumn colQuantity = ColumnBuilder.getNew().setColumnProperty("aupMenge", BigDecimal.class.getName()).build();
colQuantity.setTitle(quantity);
colQuantity.setWidth(40);
colQuantity.setPattern("#,##0.00");
colQuantity.setHeaderStyle(columnHeaderStyleNumber);
colQuantity.setStyle(columnDetailStyleNumbers);
// Article Text
AbstractColumn colArticleText = ColumnBuilder.getNew().setColumnProperty("article.artKurzbezeichnung", String.class.getName()).build();
colArticleText.setTitle(articleText);
colArticleText.setWidth(100);
colArticleText.setHeaderStyle(columnHeaderStyleText);
colArticleText.setStyle(columnDetailStyleText);
// Single Price
AbstractColumn colSinglePrice = ColumnBuilder.getNew().setColumnProperty("aupEinzelwert", BigDecimal.class.getName()).build();
colSinglePrice.setTitle(singlePrice);
colSinglePrice.setWidth(40);
colSinglePrice.setPattern("#,##0.00");
colSinglePrice.setHeaderStyle(columnHeaderStyleNumber);
colSinglePrice.setStyle(columnDetailStyleNumbers);
// Line Sum
AbstractColumn colLineSum = ColumnBuilder.getNew().setColumnProperty("aupGesamtwert", BigDecimal.class.getName()).build();
colLineSum.setTitle(lineSum);
colLineSum.setWidth(40);
// #,##0. €00
colLineSum.setPattern("#,##0.00");
colLineSum.setHeaderStyle(columnHeaderStyleNumber);
colLineSum.setStyle(columnDetailStyleNumbers);
// Add the columns to the report in the whished order
drb.addColumn(colQuantity);
drb.addColumn(colArticleText);
drb.addColumn(colSinglePrice);
drb.addColumn(colLineSum);
/**
* Add a global total sum for the lineSum field.
*/
drb.addGlobalFooterVariable(colLineSum, DJCalculation.SUM, footerStyleTotalSumValue);
drb.setGlobalFooterVariableHeight(new Integer(20));
drb.setGrandTotalLegend(Labels.getLabel("common.Sum"));
// ADD ALL USED FIELDS to the report.
// drb.addField("rigType", Integer.class.getName());
drb.setUseFullPageWidth(true); // use full width of the page
dr = drb.build(); // build the report
// Get information from database
OrderService sv = (OrderService) SpringUtil.getBean("orderService");
List<Orderposition> resultList = sv.getOrderpositionsByOrder(getOrder());