Reputation: 73
I wanted to generate a report as this design:
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
I used DynamicJasper and considered 2013, 2012 and 2011 as 3 different subreports and tried to generate it. But I get 2012 and 2011 data in different rows. Can someone please help me in designing the above layout using DynamicJasper? 2013, 2012 and 2011 are three different Titles in the same row.
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;
}
}
Upvotes: 0
Views: 1002
Reputation: 328
In order to design above what you can do is :
I have attached the screenshot also.
Upvotes: 1