Marcio Jota Coelho
Marcio Jota Coelho

Reputation: 11

DynamicReports - pageBreak

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

Answers (0)

Related Questions