1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package ar.com.fdvs.dj.test.subreport;
31
32 import java.util.Date;
33
34 import net.sf.jasperreports.view.JasperViewer;
35 import ar.com.fdvs.dj.core.DJConstants;
36 import ar.com.fdvs.dj.core.layout.ClassicLayoutManager;
37 import ar.com.fdvs.dj.domain.DynamicReport;
38 import ar.com.fdvs.dj.domain.builders.FastReportBuilder;
39 import ar.com.fdvs.dj.domain.builders.SubReportBuilder;
40 import ar.com.fdvs.dj.domain.entities.Subreport;
41 import ar.com.fdvs.dj.test.BaseDjReportTest;
42 import ar.com.fdvs.dj.test.domain.Product;
43
44 public class SubReportBuilderTest extends BaseDjReportTest {
45
46 public DynamicReport buildReport() throws Exception {
47
48 FastReportBuilder drb = new FastReportBuilder();
49 drb.addColumn("State", "state", String.class.getName(),30)
50 .addColumn("Branch", "branch", String.class.getName(),30)
51 .addColumn("Product Line", "productLine", String.class.getName(),50)
52 .addColumn("Item", "item", String.class.getName(),50)
53 .addColumn("Item Code", "id", Long.class.getName(),30,true)
54 .addColumn("Quantity", "quantity", Long.class.getName(),60,true)
55 .addColumn("Amount", "amount", Float.class.getName(),70,true)
56 .addGroups(2)
57 .setTitle("November " + getYear() +" sales report")
58 .setSubtitle("This report was generated at " + new Date())
59 .setUseFullPageWidth(true);
60
61
62
63
64
65 Subreport subreport = new SubReportBuilder()
66 .setDataSource( DJConstants.DATA_SOURCE_ORIGIN_PARAMETER,
67 DJConstants.DATA_SOURCE_TYPE_COLLECTION,
68 "statistics")
69 .setDynamicReport(createFooterSubreport(), new ClassicLayoutManager())
70 .build();
71
72 drb.addSubreportInGroupFooter(1, subreport);
73
74
75
76
77
78 params.put("statistics", Product.statistics_ );
79
80
81
82
83 drb.setUseFullPageWidth(true);
84
85 DynamicReport dr = drb.build();
86
87 return dr;
88 }
89
90
91
92
93
94
95 private DynamicReport createFooterSubreport() throws Exception {
96 FastReportBuilder rb = new FastReportBuilder();
97 DynamicReport dr = rb
98 .addColumn("Area", "name", String.class.getName(), 100)
99 .addColumn("Average", "average", Float.class.getName(), 50)
100 .addColumn("%", "percentage", Float.class.getName(), 50)
101 .addColumn("Amount", "amount", Float.class.getName(), 50)
102 .addGroups(1)
103 .setMargins(5, 5, 20, 20)
104 .setUseFullPageWidth(true)
105 .setTitle("Subreport for this group")
106 .build();
107 return dr;
108 }
109
110
111 public static void main(String[] args) throws Exception {
112 SubReportBuilderTest test = new SubReportBuilderTest();
113 test.testReport();
114 JasperViewer.viewReport(test.jp);
115 }
116
117 }