View Javadoc

1   /*
2    * DynamicJasper: A library for creating reports dynamically by specifying
3    * columns, groups, styles, etc. at runtime. It also saves a lot of development
4    * time in many cases! (http://sourceforge.net/projects/dynamicjasper)
5    *
6    * Copyright (C) 2008  FDV Solutions (http://www.fdvsolutions.com)
7    *
8    * This library is free software; you can redistribute it and/or
9    * modify it under the terms of the GNU Lesser General Public
10   *
11   * License as published by the Free Software Foundation; either
12   *
13   * version 2.1 of the License, or (at your option) any later version.
14   *
15   * This library is distributed in the hope that it will be useful,
16   * but WITHOUT ANY WARRANTY; without even the implied warranty of
17   *
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19   *
20   * Lesser General Public License for more details.
21   *
22   * You should have received a copy of the GNU Lesser General Public
23   * License along with this library; if not, write to the Free Software
24   *
25   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
26   *
27   *
28   */
29  
30  package ar.com.fdvs.dj.test;
31  
32  
33  import java.awt.Color;
34  import java.util.Date;
35  
36  import net.sf.jasperreports.view.JasperViewer;
37  import ar.com.fdvs.dj.domain.DynamicReport;
38  import ar.com.fdvs.dj.domain.Style;
39  import ar.com.fdvs.dj.domain.builders.FastReportBuilder;
40  import ar.com.fdvs.dj.domain.builders.StyleBuilder;
41  import ar.com.fdvs.dj.domain.constants.Border;
42  import ar.com.fdvs.dj.domain.constants.HorizontalAlign;
43  import ar.com.fdvs.dj.domain.constants.ImageScaleMode;
44  import ar.com.fdvs.dj.domain.constants.Stretching;
45  
46  public class ImageColumnReportTest extends BaseDjReportTest {
47  
48  	public DynamicReport buildReport() throws Exception {
49  
50  
51  		Style style = new StyleBuilder(false).setHorizontalAlign(HorizontalAlign.CENTER)
52  		.setStretching(Stretching.RELATIVE_TO_TALLEST_OBJECT)
53  		.setBorderColor(Color.BLACK).setBorder(Border.THIN()).build();
54  		/**
55  		 * Creates the DynamicReportBuilder and sets the basic options for
56  		 * the report
57  		 */
58  		FastReportBuilder drb = new FastReportBuilder();
59  		drb.addColumn("State", "state", String.class.getName(),30)
60  			.addColumn("Branch", "branch", String.class.getName(),30)
61  			.addColumn("Product Line", "productLine", String.class.getName(),50)
62  			.addImageColumn("IMG", "image", 50, true,ImageScaleMode.FILL ,style)
63  			.addColumn("Item", "item", String.class.getName(),20)
64  			.addColumn("Item Code", "id", Long.class.getName(),30,true)
65  			.addColumn("Quantity", "quantity", Long.class.getName(),60,true)
66  			.addColumn("Amount", "amount", Float.class.getName(),70,true)
67  			.addGroups(2)
68  			.setDetailHeight(17)
69  			.setTitle("November " + getYear() +" sales report")
70  			.setSubtitle("This report was generated at " + new Date())
71  			.setUseFullPageWidth(true);
72  
73  
74  		DynamicReport dr = drb.build();
75  
76  		return dr;
77  	}
78  
79  	public static void main(String[] args) throws Exception {
80  		ImageColumnReportTest test = new ImageColumnReportTest();
81  		test.testReport();
82  		JasperViewer.viewReport(test.jp);	//finally display the report report
83  	}
84  
85  }