public class Main {
private static Style totalHeaderStyle;
private static Style colAndRowHeaderStyle;
private static Style mainHeaderStyle;
private static Style totalStyle;
private static Style measureStyle;
private static Style measureStyle2;
private Style titleStyle;
private void initStyles() {
titleStyle = new StyleBuilder(false)
.setFont(Font.ARIAL_BIG_BOLD)
.setHorizontalAlign(HorizontalAlign.LEFT)
.setVerticalAlign(VerticalAlign.MIDDLE)
.setTransparency(Transparency.OPAQUE)
.setBorderBottom(Border.PEN_2_POINT)
.build();
totalHeaderStyle = new StyleBuilder(false)
.setHorizontalAlign(HorizontalAlign.CENTER)
.setVerticalAlign(VerticalAlign.MIDDLE)
.setFont(Font.ARIAL_MEDIUM_BOLD)
.setTextColor(Color.BLUE)
.build();
colAndRowHeaderStyle = new StyleBuilder(false)
.setHorizontalAlign(HorizontalAlign.LEFT)
.setVerticalAlign(VerticalAlign.TOP)
.setFont(Font.ARIAL_MEDIUM_BOLD)
.build();
mainHeaderStyle = new StyleBuilder(false)
.setHorizontalAlign(HorizontalAlign.CENTER)
.setVerticalAlign(VerticalAlign.MIDDLE)
.setFont(Font.ARIAL_BIG_BOLD)
.setTextColor(Color.BLACK)
.build();
totalStyle = new StyleBuilder(false).setPattern("#,###.##")
.setHorizontalAlign(HorizontalAlign.RIGHT)
.setFont(Font.ARIAL_MEDIUM_BOLD)
.build();
measureStyle = new StyleBuilder(false).setPattern("#,###.##")
.setHorizontalAlign(HorizontalAlign.RIGHT)
.setFont(Font.ARIAL_MEDIUM)
.build();
measureStyle2 = new StyleBuilder(false).setPattern("#,###.##")
.setHorizontalAlign(HorizontalAlign.RIGHT)
.setFont(new Font(Font.MEDIUM,Font._FONT_ARIAL,false,true,false))
.setTextColor(Color.RED)
.build();
}
public static void main(String[] args) throws Exception{
FastReportBuilder drb = new FastReportBuilder();
DJCrosstab djcross = new CrosstabBuilder()
.setHeight(200)
.setWidth(500)
.setHeaderStyle(mainHeaderStyle)
.setUseFullWidth(true)
.setColorScheme(DJConstants.COLOR_SCHEMA_GRAY)
.setAutomaticTitle(true)
.setCellBorder(Border.PEN_1_POINT)
.addRow("Product Line", "productLine", String.class.getName(),false)
.addColumn("State","state",String.class.getName(),false)
.addColumn("Branch","branch",String.class.getName(),true)
.addColumn("Item", "item", String.class.getName(),true)
.addMeasure("id",Long.class.getName(), DJCalculation.SUM , "Id", measureStyle)
.addMeasure("amount",Float.class.getName(), DJCalculation.SUM , "Amount", measureStyle2)
.setRowStyles(colAndRowHeaderStyle, totalStyle, totalHeaderStyle)
.setColumnStyles(colAndRowHeaderStyle, totalStyle, totalHeaderStyle)
.setCellDimension(34, 60)
.setColumnHeaderHeight(30)
.setRowHeaderWidth(80)
.build();
drb.addHeaderCrosstab(djcross); //add the crosstab in the header band of the report
DynamicReport dr = drb.build();
JRDataSource ds = new JRBeanCollectionDataSource(TestRepositoryProducts.getDummyCollection());
// JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ListLayoutManager(), ds);
JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), ds);
JasperViewer.viewReport(jp); //finally display the report report
}
}
o erro que está dando é o seguinte:
17/10/2010 02:19:47 ar.com.fdvs.dj.core.DynamicJasperHelper generateJasperPrint
INFO: generating JasperPrint
17/10/2010 02:19:47 ar.com.fdvs.dj.core.DynamicJasperHelper generateJasperReport
INFO: generating JasperReport
17/10/2010 02:19:47 ar.com.fdvs.dj.core.DJJRDesignHelper getNewDesign
INFO: obtaining DynamicJasperDesign instance
Exception in thread "main" ar.com.fdvs.dj.core.layout.LayoutException
at ar.com.fdvs.dj.core.layout.AbstractLayoutManager.applyLayout(AbstractLayoutManager.java:150)
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:521)
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperPrint(DynamicJasperHelper.java:283)
at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperPrint(DynamicJasperHelper.java:236)
at Main.main(Main.java:142)
Caused by: java.lang.NullPointerException
at ar.com.fdvs.dj.core.layout.Dj2JrCrosstabBuilder.registerDataSet(Dj2JrCrosstabBuilder.java:273)
at ar.com.fdvs.dj.core.layout.Dj2JrCrosstabBuilder.createCrosstab(Dj2JrCrosstabBuilder.java:169)
at ar.com.fdvs.dj.core.layout.ClassicLayoutManager.layoutGroupCrosstabs(ClassicLayoutManager.java:601)
at ar.com.fdvs.dj.core.layout.ClassicLayoutManager.layoutGroups(ClassicLayoutManager.java:525)
at ar.com.fdvs.dj.core.layout.ClassicLayoutManager.startLayout(ClassicLayoutManager.java:124)
at ar.com.fdvs.dj.core.layout.AbstractLayoutManager.applyLayout(AbstractLayoutManager.java:143)
... 4 more
Estou tentando usar a collection que está no tutorial deles mesmo...
Por favor alguém me ajude =/
Obrigado mais uma vez pela atenção!