gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:40:18 26 4
gpt4 key购买 nike

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

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com