-
Notifications
You must be signed in to change notification settings - Fork 127
/
StylesReportTest4.java
114 lines (97 loc) · 3.78 KB
/
StylesReportTest4.java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/*
* DynamicJasper: A library for creating reports dynamically by specifying
* columns, groups, styles, etc. at runtime. It also saves a lot of development
* time in many cases! (http://sourceforge.net/projects/dynamicjasper)
*
* Copyright (C) 2008 FDV Solutions (http://www.fdvsolutions.com)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
*
* License as published by the Free Software Foundation; either
*
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
*
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*
*/
package ar.com.fdvs.dj.test;
import java.awt.Color;
import net.sf.jasperreports.view.JasperViewer;
import ar.com.fdvs.dj.domain.DynamicReport;
import ar.com.fdvs.dj.domain.Style;
import ar.com.fdvs.dj.domain.builders.ColumnBuilder;
import ar.com.fdvs.dj.domain.builders.DynamicReportBuilder;
import ar.com.fdvs.dj.domain.builders.GroupBuilder;
import ar.com.fdvs.dj.domain.constants.Font;
import ar.com.fdvs.dj.domain.constants.GroupLayout;
import ar.com.fdvs.dj.domain.constants.HorizontalAlign;
import ar.com.fdvs.dj.domain.entities.DJGroup;
import ar.com.fdvs.dj.domain.entities.columns.AbstractColumn;
import ar.com.fdvs.dj.domain.entities.columns.PropertyColumn;
/**
* This test aims to generate a report with almost no styles, ensuring that there are no errors
* as result of the lack of style or fonts.
*
* See bug 2817859 at SF
*
* @author mamana
*
*/
public class StylesReportTest4 extends BaseDjReportTest {
public DynamicReport buildReport() throws Exception {
DynamicReportBuilder drb = new DynamicReportBuilder();
Integer margin = 20;
drb.setTitle("November " + getYear() +" sales report") //defines the title of the report
.setSubtitle("The items in this report correspond "
+"to the main products: DVDs, Books, Foods and Magazines")
.setTitleHeight(30)
.setSubtitleHeight(20)
.setDetailHeight(15)
.setLeftMargin(margin)
.setRightMargin(margin)
.setTopMargin(margin)
.setBottomMargin(margin)
.setColumnsPerPage(1)
.setColumnSpace(5);
Style style1 = new Style("style1");
style1.setFont(Font.ARIAL_MEDIUM_BOLD);
style1.setHorizontalAlign(HorizontalAlign.CENTER);
drb.addStyle(style1);
Style style2 = Style.createBlankStyle("style2", "style1");
style2.setTextColor(Color.BLUE);
drb.addStyle(style2);
AbstractColumn columnState = ColumnBuilder.getNew().setColumnProperty("state", String.class.getName())
.setTitle("State").setWidth(new Integer(85))
.setStyle(style1).build();
AbstractColumn columnBranch = ColumnBuilder.getNew().setColumnProperty("branch", String.class.getName())
.setTitle("Branch").setWidth(new Integer(85))
.setStyle(style2).build();
drb.addColumn(columnBranch);
drb.addColumn(columnState);
DJGroup g1 = new GroupBuilder()
.setCriteriaColumn((PropertyColumn) columnBranch)
.setGroupLayout(GroupLayout.VALUE_IN_HEADER_WITH_HEADERS_AND_COLUMN_NAME)
.build();
drb.addGroup(g1);
drb.setUseFullPageWidth(true);
DynamicReport dr = drb.build();
return dr;
}
public static void main(String[] args) throws Exception {
StylesReportTest4 test = new StylesReportTest4();
test.testReport();
JasperViewer.viewReport(test.jp);
}
}