Reputation: 11
I am trying to use DynamicReport to make pdfs reports from database. But, I need help to make page breaks when size of columns over than pagesize.
On this example, I get error "columnHeader components reaches outside available width, available width = 575, components width = 800"
package com.consistem.report.service;
import static net.sf.dynamicreports.report.builder.DynamicReports.*;
import java.math.BigDecimal;
import java.util.Date;
import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;
import net.sf.dynamicreports.report.builder.column.TextColumnBuilder;
import net.sf.dynamicreports.report.datasource.DRDataSource;
import net.sf.dynamicreports.report.exception.DRException;
import net.sf.jasperreports.engine.JRDataSource;
public class ColumnDataTypesReport {
public ColumnDataTypesReport() {
build();
}
private void build() {
try {
int width = 100;
JasperReportBuilder objReport = report()
.setTemplate(Templates.reportTemplate)
.pageFooter(Templates.footerComponent)
.setDataSource(createDataSource());
//Page-01
TextColumnBuilder<?> item = col.column("Item", "item", type.stringType()).setFixedWidth(width);
TextColumnBuilder<?> quantity = col.column("Quantity", "quantity", type.integerType()).setFixedWidth(width);
TextColumnBuilder<?> unit = col.column("Unit price", "unitprice", type.bigDecimalType()).setFixedWidth(width);
TextColumnBuilder<?> date = col.column("Order date", "orderdate", type.dateType()).setFixedWidth(width);
//Page-02
TextColumnBuilder<?> date1 = col.column("Order date", "orderdate", type.dateYearToFractionType()).setFixedWidth(width);
TextColumnBuilder<?> date2 = col.column("Order year", "orderdate", type.dateYearType()).setFixedWidth(width);
TextColumnBuilder<?> date3 = col.column("Order month", "orderdate", type.dateMonthType()).setFixedWidth(width);
TextColumnBuilder<?> date4 = col.column("Order day", "orderdate", type.dateDayType()).setFixedWidth(width);
objReport.addColumn(item, quantity, unit, date,date1,date2,date3,date4);
objReport.show();
} catch (DRException e) {
e.printStackTrace();
}
}
private JRDataSource createDataSource() {
DRDataSource dataSource = new DRDataSource("item", "orderdate", "quantity", "unitprice");
dataSource.add("Notebook", new Date(), 1, new BigDecimal(500));
return dataSource;
}
public static void main(String[] args) {
new ColumnDataTypesReport();
}
}
How to make columns (item, quantity, unit, date) in page-01 and column (date1,date2,date3,date4) page-02?
Upvotes: 1
Views: 124