KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openbravo > erpCommon > utility > ReportDesignBO


1 /*
2  *************************************************************************
3  * The contents of this file are subject to the Openbravo Public License
4  * Version 1.0 (the "License"), being the Mozilla Public License
5  * Version 1.1 with a permitted attribution clause; you may not use this
6  * file except in compliance with the License. You may obtain a copy of
7  * the License at http://www.openbravo.com/legal/license.html
8  * Software distributed under the License is distributed on an "AS IS"
9  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
10  * License for the specific language governing rights and limitations
11  * under the License.
12  * The Original Code is Openbravo ERP.
13  * The Initial Developer of the Original Code is Openbravo SL
14  * All portions are Copyright (C) 2007 Openbravo SL
15  * All Rights Reserved.
16  * Contributor(s): ______________________________________.
17  ************************************************************************
18 */

19 package org.openbravo.erpCommon.utility;
20
21 import java.util.Iterator JavaDoc;
22
23 import net.sf.jasperreports.engine.JRException;
24 import net.sf.jasperreports.engine.design.JRDesignBand;
25 import net.sf.jasperreports.engine.design.JRDesignExpression;
26 import net.sf.jasperreports.engine.design.JRDesignExpressionChunk;
27 import net.sf.jasperreports.engine.design.JRDesignField;
28 import net.sf.jasperreports.engine.design.JRDesignStaticText;
29 import net.sf.jasperreports.engine.design.JRDesignTextField;
30 import net.sf.jasperreports.engine.design.JasperDesign;
31
32 public class ReportDesignBO {
33   private int px = 0;
34
35   private int pageWidth = 0;
36
37   private JasperDesign jasperDesign;
38
39   private GridReportVO gridReportVO;
40
41   public ReportDesignBO(JasperDesign jasperDesign, GridReportVO gridReportVO) {
42     super();
43     this.jasperDesign = jasperDesign;
44     this.gridReportVO = gridReportVO;
45     this.pageWidth = jasperDesign.getPageWidth()
46         - jasperDesign.getLeftMargin() - jasperDesign.getRightMargin();
47   }
48
49   private void addField(GridColumnVO columnVO) throws JRException {
50     addFieldHeader(columnVO);
51     addFieldValue(columnVO);
52     px += calcPorc(columnVO.getWidth());
53   }
54
55   private void addFieldHeader(GridColumnVO columnVO) {
56     JRDesignBand bHeader = (JRDesignBand) jasperDesign.getColumnHeader();
57     JRDesignStaticText text = new JRDesignStaticText();
58     text.setText(columnVO.getTitle());
59     text.setWidth(calcPorc(columnVO.getWidth()));
60     text.setHeight(bHeader.getHeight());
61     text.setX(px);
62     // Set syle
63
text.setFontName(gridReportVO.getHeaderBandStyle().getFontName());
64     text.setFontSize(gridReportVO.getHeaderBandStyle().getFontSize());
65     text.setForecolor(gridReportVO.getHeaderBandStyle().getForeColor());
66     text.setBold(gridReportVO.getHeaderBandStyle().isBold());
67     text.setItalic(gridReportVO.getHeaderBandStyle().isItalic());
68     text.setUnderline(gridReportVO.getHeaderBandStyle().isUnderline());
69     bHeader.addElement(text);
70   }
71
72   private void addFieldValue(GridColumnVO columnVO) throws JRException {
73     JRDesignBand bDetalle = (JRDesignBand) jasperDesign.getDetail();
74
75     JRDesignField f = new JRDesignField();
76     f.setName(columnVO.getDbName());
77     f.setValueClass(columnVO.getFieldClass());
78     jasperDesign.addField(f);
79
80     JRDesignExpressionChunk chunk = new JRDesignExpressionChunk();
81     chunk.setText(columnVO.getDbName());
82     chunk.setType(JRDesignExpressionChunk.TYPE_FIELD);
83     JRDesignExpression expression = new JRDesignExpression();
84     expression.addChunk(chunk);
85     expression.setValueClass(columnVO.getFieldClass());
86     JRDesignTextField textField = new JRDesignTextField();
87     textField.setWidth(calcPorc(columnVO.getWidth()));
88     textField.setHeight(bDetalle.getHeight());
89     textField.setX(px);
90     textField.setExpression(expression);
91     textField.setBlankWhenNull(true);
92     textField.setFontName(gridReportVO.getDetailBandStyle().getFontName());
93     textField.setFontSize(gridReportVO.getDetailBandStyle().getFontSize());
94     textField.setForecolor(gridReportVO.getDetailBandStyle().getForeColor());
95     textField.setBold(gridReportVO.getDetailBandStyle().isBold());
96     textField.setItalic(gridReportVO.getDetailBandStyle().isItalic());
97     textField.setUnderline(gridReportVO.getDetailBandStyle().isUnderline());
98
99     bDetalle.addElement(textField);
100   }
101
102   private int calcPorc(int width) {
103     if (gridReportVO.getPagination()){
104       return width;
105     } else {
106       return width * pageWidth / gridReportVO.getTotalWidth();
107     }
108   }
109
110   public void define() throws JRException {
111     defineTitle(gridReportVO.getTitle());
112     Iterator JavaDoc it = gridReportVO.getColumns().iterator();
113     //jasperDesign.getTitle().setPrintWhenExpression(false);
114
while (it.hasNext()) {
115       addField((GridColumnVO) it.next());
116     }
117   }
118
119   private void defineTitle(String JavaDoc title) throws JRException {
120     JRDesignBand bTitulo = (JRDesignBand) jasperDesign.getTitle();
121     JRDesignStaticText text = (JRDesignStaticText) bTitulo
122         .getElementByKey("staticTitle");
123     text.setText(title);
124   }
125
126 }
127
Popular Tags