KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > CsvDataSourceApp


1 /*
2  * ============================================================================
3  * GNU Lesser General Public License
4  * ============================================================================
5  *
6  * JasperReports - Free Java report-generating library.
7  * Copyright (C) 2001-2006 JasperSoft Corporation http://www.jaspersoft.com
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22  *
23  * JasperSoft Corporation
24  * 303 Second Street, Suite 450 North
25  * San Francisco, CA 94107
26  * http://www.jaspersoft.com
27  */

28 import java.io.File JavaDoc;
29 import java.io.FileNotFoundException JavaDoc;
30 import java.io.IOException JavaDoc;
31 import java.util.HashMap JavaDoc;
32 import java.util.HashSet JavaDoc;
33 import java.util.Map JavaDoc;
34 import java.util.Set JavaDoc;
35 import java.util.Vector JavaDoc;
36
37 import net.sf.jasperreports.engine.JRException;
38 import net.sf.jasperreports.engine.JRExporterParameter;
39 import net.sf.jasperreports.engine.JasperExportManager;
40 import net.sf.jasperreports.engine.JasperFillManager;
41 import net.sf.jasperreports.engine.JasperPrint;
42 import net.sf.jasperreports.engine.JasperPrintManager;
43 import net.sf.jasperreports.engine.JasperRunManager;
44 import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;
45 import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
46 import net.sf.jasperreports.engine.data.JRTableModelDataSource;
47 import net.sf.jasperreports.engine.data.JRCsvDataSource;
48 import net.sf.jasperreports.engine.export.JExcelApiExporter;
49 import net.sf.jasperreports.engine.export.JRCsvExporter;
50 import net.sf.jasperreports.engine.export.JRRtfExporter;
51 import net.sf.jasperreports.engine.export.JRXlsExporter;
52 import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
53 import net.sf.jasperreports.engine.util.JRLoader;
54
55
56 /**
57  * @author Teodor Danciu (teodord@users.sourceforge.net)
58  * @version $Id: CsvDataSourceApp.java 1321 2006-07-03 18:38:02 +0300 (Mon, 03 Jul 2006) lucianc $
59  */

60 public class CsvDataSourceApp
61 {
62
63
64     /**
65      *
66      */

67     private static final String JavaDoc TASK_FILL = "fill";
68     private static final String JavaDoc TASK_PRINT = "print";
69     private static final String JavaDoc TASK_PDF = "pdf";
70     private static final String JavaDoc TASK_XML = "xml";
71     private static final String JavaDoc TASK_XML_EMBED = "xmlEmbed";
72     private static final String JavaDoc TASK_HTML = "html";
73     private static final String JavaDoc TASK_RTF = "rtf";
74     private static final String JavaDoc TASK_XLS = "xls";
75     private static final String JavaDoc TASK_JXL = "jxl";
76     private static final String JavaDoc TASK_CSV = "csv";
77     private static final String JavaDoc TASK_RUN = "run";
78     
79     
80     /**
81      *
82      */

83     public static void main(String JavaDoc[] args)
84     {
85         String JavaDoc fileName = null;
86         String JavaDoc taskName = null;
87
88         if(args.length == 0)
89         {
90             usage();
91             return;
92         }
93                 
94         int k = 0;
95         while ( args.length > k )
96         {
97             if ( args[k].startsWith("-T") )
98                 taskName = args[k].substring(2);
99             if ( args[k].startsWith("-F") )
100                 fileName = args[k].substring(2);
101             
102             k++;
103         }
104
105         try
106         {
107             long start = System.currentTimeMillis();
108             if (TASK_FILL.equals(taskName))
109             {
110                 //Preparing parameters
111
Map JavaDoc parameters = new HashMap JavaDoc();
112                 parameters.put("ReportTitle", "Address Report");
113                 parameters.put("DataFile", "CsvDataSource.txt - CSV data source");
114                 Set JavaDoc states = new HashSet JavaDoc();
115                 states.add("Active");
116                 states.add("Trial");
117                 parameters.put("IncludedStates", states);
118
119                 JasperFillManager.fillReportToFile(fileName, parameters, getDataSource());
120                 System.err.println("Filling time : " + (System.currentTimeMillis() - start));
121                 System.exit(0);
122             }
123             else if (TASK_PRINT.equals(taskName))
124             {
125                 JasperPrintManager.printReport(fileName, true);
126                 System.err.println("Printing time : " + (System.currentTimeMillis() - start));
127                 System.exit(0);
128             }
129             else if (TASK_PDF.equals(taskName))
130             {
131                 JasperExportManager.exportReportToPdfFile(fileName);
132                 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start));
133                 System.exit(0);
134             }
135             else if (TASK_XML.equals(taskName))
136             {
137                 JasperExportManager.exportReportToXmlFile(fileName, false);
138                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
139                 System.exit(0);
140             }
141             else if (TASK_XML_EMBED.equals(taskName))
142             {
143                 JasperExportManager.exportReportToXmlFile(fileName, true);
144                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
145                 System.exit(0);
146             }
147             else if (TASK_HTML.equals(taskName))
148             {
149                 JasperExportManager.exportReportToHtmlFile(fileName);
150                 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start));
151                 System.exit(0);
152             }
153             else if (TASK_RTF.equals(taskName))
154             {
155                 File JavaDoc sourceFile = new File JavaDoc(fileName);
156         
157                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
158         
159                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".rtf");
160                 
161                 JRRtfExporter exporter = new JRRtfExporter();
162                 
163                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
164                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
165                 
166                 exporter.exportReport();
167
168                 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start));
169                 System.exit(0);
170             }
171             else if (TASK_XLS.equals(taskName))
172             {
173                 File JavaDoc sourceFile = new File JavaDoc(fileName);
174         
175                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
176         
177                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".xls");
178                 
179                 JRXlsExporter exporter = new JRXlsExporter();
180                 
181                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
182                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
183                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
184                 
185                 exporter.exportReport();
186
187                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
188                 System.exit(0);
189             }
190             else if (TASK_JXL.equals(taskName))
191             {
192                 File JavaDoc sourceFile = new File JavaDoc(fileName);
193
194                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
195
196                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls");
197
198                 JExcelApiExporter exporter = new JExcelApiExporter();
199
200                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
201                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
202                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
203
204                 exporter.exportReport();
205
206                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
207                 System.exit(0);
208             }
209             else if (TASK_CSV.equals(taskName))
210             {
211                 File JavaDoc sourceFile = new File JavaDoc(fileName);
212         
213                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
214         
215                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".csv");
216                 
217                 JRCsvExporter exporter = new JRCsvExporter();
218                 
219                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
220                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
221                 
222                 exporter.exportReport();
223
224                 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start));
225                 System.exit(0);
226             }
227             else if (TASK_RUN.equals(taskName))
228             {
229                 //Preparing parameters
230
Map JavaDoc parameters = new HashMap JavaDoc();
231                 parameters.put("ReportTitle", "Address Report");
232                 Set JavaDoc states = new HashSet JavaDoc();
233                 states.add("Active");
234                 states.add("Trial");
235                 parameters.put("IncludedStates", states);
236                 
237                 JasperRunManager.runReportToPdfFile(fileName, parameters, getDataSource());
238                 System.err.println("PDF running time : " + (System.currentTimeMillis() - start));
239                 System.exit(0);
240             }
241             else
242             {
243                 usage();
244                 System.exit(0);
245             }
246         }
247         catch (JRException e)
248         {
249             e.printStackTrace();
250             System.exit(1);
251         }
252         catch (Exception JavaDoc e)
253         {
254             e.printStackTrace();
255             System.exit(1);
256         }
257     }
258
259
260     /**
261      *
262      */

263     private static JRCsvDataSource getDataSource() throws IOException JavaDoc
264     {
265         String JavaDoc[] columnNames = new String JavaDoc[]{"city", "id", "name", "address", "state"};
266         JRCsvDataSource ds = new JRCsvDataSource(new File JavaDoc("CsvDataSource.txt"));
267         ds.setRecordDelimiter("\r\n");
268 // ds.setUseFirstRowAsHeader(true);
269
ds.setColumnNames(columnNames);
270         return ds;
271     }
272
273
274     /**
275      *
276      */

277     private static void usage()
278     {
279         System.out.println( "CsvDataSourceApp usage:" );
280         System.out.println( "\tjava CsvDataSourceApp -Ttask -Ffile" );
281         System.out.println( "\tTasks : fill | print | pdf | xml | xmlEmbed | html | rtf | xls | jxl | csv | run" );
282     }
283
284
285 }
286
Popular Tags