java - 动态贾斯珀 : 3 report sections in one page

标签 java jasper-reports dynamic-jasper

我想生成一个这样设计的报告:

2013                                           2012                       2011
                      NewCol1    NewCol2                  
Dept       Item      col1 col2 col3 col4       col1 col2 col3           col1 col2 col3

Area1
1          A         1    2     4     5         1    2    3              1    2    3 

1          A         1    2     4     5         1    2    3              1    2    3 

1          A         1    2     4     5         1    2    3              1    2    3   


Area2

1          A         1    2     4     5         1    2    3              1    2    3 

1          A         1    2     4     5         1    2    3              1    2    3 

1          A         1    2     4     5         1    2    3              1    2    3   

我使用 DynamicJasper 并将 2013 年、2012 年和 2011 年视为 3 个不同的子报告,并尝试 生成它。但我在不同的行中获取 2012 年和 2011 年的数据。有人可以帮我使用 DynamicJasper 设计上述布局吗? 2013、2012 和 2011 是同一行中的三个不同标题。

public class LayoutDesigner
{
    public DynamicReport buildReportLayout(List<Mylist> list)
               /* List is the Java bean which contains all the data to be exported.*/

            throws ColumnBuilderException, ClassNotFoundException
    {
        int colIndex = 1;
        int colSpanSize;
        FastReportBuilder drb = new FastReportBuilder();

        AbstractColumn columnArea = ColumnBuilder.getNew()        
                            .setColumnProperty(ReportDetails.COLUMN_PROPERTY[0], String.class.getName()) /* ReportDetails conatins header and properties to be mapped.. */
                            .setFixedWidth(true)
                            .setTitle(ReportsDetails.COLUMN_PROPERTY[0]).setWidth(new Integer(100))
                            .build(); 
        AbstractColumn column1 = ColumnBuilder.getNew()        
                            .setColumnProperty(ReportDetails.COLUMN_PROPERTY[1], String.class.getName())
                            .setFixedWidth(true)
                            .setTitle(ReportsDetails.COLUMN_PROPERTY[1]).setWidth(new Integer(100))
                            .build();
                            ........../*  Defining other Abstrct Columns */

        GroupBuilder gb = new GroupBuilder();
        DJGroup djb = gb.setCriteriaColumn((PropertyColumn) columnArea)        

                        .addFooterVariable(column1,DJCalculation.SUM)
                        ........./*   added all essential variables */
                        .setGroupLayout(GroupLayout.VALUE_IN_HEADER)                       
                        .build(); 


        drb.addColumn(columnArea); 
        drb.addColumn(column1); 
        ...

        drb.addGroup(djb);

        /*  I grouped and now doing column span for clubbing col1 col2  under NewCol1. Also col1 col2 under NewCol2. This is also working.
         Problem here is I want one more layer of span to club NewCol1 and NewCol2 under 2013, but this is not working and I am not sure how to do.
         So I thought of 2 reports one containing 3 diferent columns (2013,2012 and 2011)  and another remaining data. But just with 3 different columns I cant show it, since without a column property, I cant define COlumns in a report..*/

        for (int i = 0; i < LAYOUT.length; i++)
        {
            if(ReportDetails.LAYOUT[i].equalsIgnoreCase(ReportDetails.LAYOUT[3]))
            {
                colSpanSize=2;
            }
            else
            {
                colSpanSize=1;
            }
            drb.setColspan(colIndex, colSpanSize,String.valueOf(ReportDetails.LAYOUT[i]));
            colIndex = colIndex + colSpanSize;
        }
        DynamicReport dr = drb.build();
        return  dr;
    }
}

最佳答案

为了进行上述设计,您可以做的是:

  1. 根据区域创建报告组
  2. 将区域标题放入区域组标题中
  3. 将所有其他标题放入列标题中
  4. 在详细信息区域中并排放置“部门”、“项目”和 3 个子报表

我还附上了屏幕截图。

Design for the above requirement

关于java - 动态贾斯珀 : 3 report sections in one page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20868388/

相关文章:

java - 初始化SolrRepository时出错:通过字段表示的不满意依赖性

java - "Required MultipartFile parameter ' 使用 Angular 和 Spring 上传文件 ' is not present"

java - 编译一个包含所有更改的 Java 类的包

java - 如何检查文件是否正在被读取

JavaFX 8 - 向右侧的 TitledPane 添加图形

excel - 贾斯珀报告 : Unmerge columns in new excel sheet

jasper-reports - 如何创建列表控件,jr :list in two columns?

java - DynamicJasper 可以将列标题放在详细信息部分吗?

java - 如何将属性从数据库发送到 dJ 来制作报告

java - 使用 DynamicReport 对象加载 jrxml 文件时出现 NullPointer