001: /* ============================================================================
002: * GNU Lesser General Public License
003: * ============================================================================
004: *
005: * Copyright (C) 2001-2007 JasperSoft Corporation http://www.jaspersoft.com
006: *
007: * This class is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation; either
010: * version 2.1 of the License, or (at your option) any later version.
011: *
012: * This class is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * You should have received a copy of the GNU Lesser General Public
018: * License along with this class; if not, write to the Free Software
019: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
020: *
021: * JasperSoft Corporation
022: * 303 Second Street, Suite 450 North
023: * San Francisco, CA 94107
024: * http://www.jaspersoft.com
025: *
026: *
027: *
028: * IReportScriptlet.java
029: *
030: * Created on 26 settembre 2004, 16.25
031: *
032: */
033:
034: package it.businesslogic.ireport;
035:
036: import net.sf.jasperreports.engine.JRException;
037: import net.sf.jasperreports.engine.JRScriptletException;
038:
039: import java.util.*;
040:
041: /**
042: *
043: * @author Administrator
044: */
045: public class IReportScriptlet extends
046: net.sf.jasperreports.engine.JRAbstractScriptlet {
047: // Vector of things to collect...
048: HashMap series = new java.util.HashMap();
049: HashMap groupStarted = new java.util.HashMap();
050:
051: /**
052: *
053: */
054: public void beforeReportInit() throws JRScriptletException {
055: }
056:
057: /**
058: *
059: */
060: public void afterReportInit() throws JRScriptletException {
061:
062: }
063:
064: /**
065: *
066: */
067: public void beforePageInit() throws JRScriptletException {
068:
069: }
070:
071: /**
072: *
073: */
074: public void afterPageInit() throws JRScriptletException {
075: }
076:
077: /**
078: *
079: */
080: public void beforeColumnInit() throws JRScriptletException {
081: }
082:
083: /**
084: *
085: */
086: public void afterColumnInit() throws JRScriptletException {
087: }
088:
089: /**
090: *
091: */
092: public void beforeGroupInit(String groupName)
093: throws JRScriptletException {
094:
095: }
096:
097: /**
098: *
099: */
100: public void afterGroupInit(String groupName)
101: throws JRScriptletException {
102: resetSeries(groupName);
103: }
104:
105: /**
106: *
107: */
108: public void beforeDetailEval() throws JRScriptletException {
109: }
110:
111: /**
112: *
113: */
114: public void afterDetailEval() throws JRScriptletException {
115: processSeries();
116: }
117:
118: protected void processSeries() {
119: // Looking for serie_to_calc in variables...
120: Set vars = variablesMap.keySet();
121: Iterator iter = vars.iterator();
122: while (iter.hasNext()) {
123: String key = (String) iter.next();
124: if (key.startsWith("SERIE_")) {
125: Vector serie = (Vector) series.get(key);
126: if (serie == null) {
127: serie = new Vector();
128: series.put(key, serie);
129: }
130: try {
131: serie.add(getVariableValue(key));
132: } catch (Exception ex) {
133: }
134: }
135: }
136: }
137:
138: protected void resetSeries(String group) {
139: // Looking for serie_to_calc in variables...
140: Set vars = variablesMap.keySet();
141: Iterator iter = vars.iterator();
142: while (iter.hasNext()) {
143: String key = (String) iter.next();
144: if (key.startsWith("SERIE_")
145: && key.indexOf("G_" + group) > 0) {
146: series.remove(key);
147: }
148: }
149: }
150:
151: public String getSerieAsString(String name) {
152: Vector v = (Vector) series.get(name);
153: Enumeration enum_v = v.elements();
154: String tot = "";
155: while (enum_v.hasMoreElements()) {
156: String s = "" + enum_v.nextElement();
157: tot += s + "\n";
158: }
159:
160: return tot;
161: }
162:
163: public Vector getSerie(String serieName) {
164:
165: Vector v = (Vector) series.get(serieName);
166: if (v == null) {
167: v = new Vector();
168: series.put(serieName, v);
169:
170: }
171:
172: return v;
173: }
174:
175: public Boolean addValueToSerie(String serieName, Object value) {
176: Vector v = getSerie(serieName);
177: v.add(value);
178: return new Boolean(false);
179: }
180:
181: public Boolean resetSerie(String serieName) {
182: series.remove(serieName);
183: return new Boolean(false);
184: }
185: }
|