当前位置: 首页 > 知识库问答 >
问题:

DynamicJasper:一页中的3个报告部分

裴俊雅
2023-03-14

我想生成一个报告作为此设计:

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个答案

薛望
2023-03-14

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

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

我还附上了截图。

 类似资料:
  • 我正在使用DynamicJasper API开发pdf报告。 根据要求,我必须在页眉和页脚显示一个徽标。我可以使用DynamicReportBuilder在标题处显示徽标。addImageBanner方法。但我没有找到在页脚添加图像的方法。 我在动态jasper论坛上看到了一些关于这个问题的帖子,其中提到的一个解决方法是使用pageFooter band创建一个jrxml模板。 我尝试了这个,但没

  • 我的应用程序中有几个类似的报告,因此我创建了一个基本结构,在标题中有一个子报告,在页脚中有另一个子报告。 我不知道为什么我找不到解决这个问题的方法,如果有人能帮我...谢谢!

  • 空白处空间如何化解?

  • 我是Jasper报告的新手。我有一个包含2组的报告。根据查询,正在打印多页。 第一组高度 - 95分,第二组高度 - 144分 我希望这些多页打印在一页中(我希望一页中包含5页)。每页高度为239点。(即使页面内容小于239分,我希望将剩余部分保留为空白,并在239分后开始下一页)。我尝试创建一个报告,并将上述报告作为子报告,并设置主报告的高度为1195(239*5)点。尽管如此,这些都被打印在不

  • 我使用xunitmerge将所有pytest junit xml输出合并到一个junit xml中。用于运行pytest和merge的命令如下: 在这里,所有xml都合并到一个xml文件中。 是否有任何工具可以转换多个py。将html文件测试为一个html报告文件? 注意:当我运行py时。测试而不指定测试它会自动触发以测试开始的所有文件。但是由于我使用了排序插件,所以在多个文件中排序,我无法使用这

  • 我有一个运行垂直报告的要求,其中列名称将显示在一行中,具有相邻的值,如键值对。 我正在尝试使用属性printorder,但不确定我可以在哪里实现相同的。 我也尝试过使用交叉应用SQL查询以键值对的形式获取列名和值,但很难区分报表中的两个不同记录。 以下是我正在运行的代码: 使用动态报告,我得到的值如下: 预期结果: