KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > EjbqlApp


1 /*
2  * ============================================================================
3  * GNU Lesser General Public License
4  * ============================================================================
5  *
6  * JasperReports - Free Java report-generating library.
7  * Copyright (C) 2001-2005 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.sql.Date JavaDoc;
30 import java.util.Calendar JavaDoc;
31 import java.util.HashMap JavaDoc;
32 import java.util.List JavaDoc;
33 import java.util.Map JavaDoc;
34
35 import javax.persistence.EntityManager;
36 import javax.persistence.EntityManagerFactory;
37 import javax.persistence.Persistence;
38 import javax.persistence.Query;
39
40 import net.sf.jasperreports.engine.JRException;
41 import net.sf.jasperreports.engine.JRExporterParameter;
42 import net.sf.jasperreports.engine.JasperExportManager;
43 import net.sf.jasperreports.engine.JasperFillManager;
44 import net.sf.jasperreports.engine.JasperPrint;
45 import net.sf.jasperreports.engine.JasperPrintManager;
46 import net.sf.jasperreports.engine.JasperRunManager;
47 import net.sf.jasperreports.engine.export.JExcelApiExporter;
48 import net.sf.jasperreports.engine.export.JRCsvExporter;
49 import net.sf.jasperreports.engine.export.JRRtfExporter;
50 import net.sf.jasperreports.engine.export.JRXlsExporter;
51 import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
52 import net.sf.jasperreports.engine.query.JRJpaQueryExecuterFactory;
53 import net.sf.jasperreports.engine.util.JRLoader;
54
55
56 /**
57  * @author Marcel Overdijk (marceloverdijk@hotmail.com)
58  * @version $Id: EjbqlApp.java 1251 2006-05-08 14:15:01 +0300 (Mon, 08 May 2006) lucianc $
59  */

60 public class EjbqlApp {
61
62     private static final String JavaDoc TASK_FILL = "fill";
63     private static final String JavaDoc TASK_PRINT = "print";
64     private static final String JavaDoc TASK_PDF = "pdf";
65     private static final String JavaDoc TASK_XML = "xml";
66     private static final String JavaDoc TASK_XML_EMBED = "xmlEmbed";
67     private static final String JavaDoc TASK_HTML = "html";
68     private static final String JavaDoc TASK_RTF = "rtf";
69     private static final String JavaDoc TASK_XLS = "xls";
70     private static final String JavaDoc TASK_JXL = "jxl";
71     private static final String JavaDoc TASK_CSV = "csv";
72     private static final String JavaDoc TASK_RUN = "run";
73     
74     public static void main(String JavaDoc[] args) {
75         String JavaDoc fileName = null;
76         String JavaDoc taskName = null;
77
78         if(args.length == 0) {
79             usage();
80             return;
81         }
82         
83         int k = 0;
84         while ( args.length > k ) {
85             if ( args[k].startsWith("-T") )
86                 taskName = args[k].substring(2);
87             if ( args[k].startsWith("-F") )
88                 fileName = args[k].substring(2);
89             
90             k++;
91         }
92
93         try {
94             long start = System.currentTimeMillis();
95             if (TASK_FILL.equals(taskName)) {
96                 // create entity manager factory for connection with database
97
EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu1", new HashMap JavaDoc());
98                 EntityManager em = emf.createEntityManager();
99
100                 try
101                 {
102                     Map JavaDoc parameters = getParameters(em);
103                     
104                     JasperFillManager.fillReportToFile(fileName, parameters);
105
106                     em.close();
107                     
108                     System.err.println("Filling time : " + (System.currentTimeMillis() - start));
109                 }
110                 finally
111                 {
112                     if (em.isOpen())
113                         em.close();
114                     if (emf.isOpen())
115                         emf.close();
116                 }
117                 System.exit(0);
118             }
119             else if (TASK_PRINT.equals(taskName)) {
120                 JasperPrintManager.printReport(fileName, true);
121                 System.err.println("Printing time : " + (System.currentTimeMillis() - start));
122                 System.exit(0);
123             }
124             else if (TASK_PDF.equals(taskName)) {
125                 JasperExportManager.exportReportToPdfFile(fileName);
126                 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start));
127                 System.exit(0);
128             }
129             else if (TASK_XML.equals(taskName)) {
130                 JasperExportManager.exportReportToXmlFile(fileName, false);
131                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
132                 System.exit(0);
133             }
134             else if (TASK_XML_EMBED.equals(taskName)) {
135                 JasperExportManager.exportReportToXmlFile(fileName, true);
136                 System.err.println("XML creation time : " + (System.currentTimeMillis() - start));
137                 System.exit(0);
138             }
139             else if (TASK_HTML.equals(taskName)) {
140                 JasperExportManager.exportReportToHtmlFile(fileName);
141                 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start));
142                 System.exit(0);
143             }
144             else if (TASK_RTF.equals(taskName)) {
145                 File JavaDoc sourceFile = new File JavaDoc(fileName);
146         
147                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
148         
149                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".rtf");
150                 
151                 JRRtfExporter exporter = new JRRtfExporter();
152                 
153                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
154                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
155                 
156                 exporter.exportReport();
157
158                 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start));
159                 System.exit(0);
160             }
161             else if (TASK_XLS.equals(taskName)) {
162                 File JavaDoc sourceFile = new File JavaDoc(fileName);
163         
164                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
165         
166                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".xls");
167                 
168                 JRXlsExporter exporter = new JRXlsExporter();
169                 
170                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
171                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
172                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
173                 
174                 exporter.exportReport();
175
176                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
177                 System.exit(0);
178             }
179             else if (TASK_JXL.equals(taskName))
180             {
181                 File JavaDoc sourceFile = new File JavaDoc(fileName);
182
183                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
184
185                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls");
186
187                 JExcelApiExporter exporter = new JExcelApiExporter();
188
189                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
190                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
191                 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
192
193                 exporter.exportReport();
194
195                 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start));
196                 System.exit(0);
197             }
198             else if (TASK_CSV.equals(taskName)) {
199                 File JavaDoc sourceFile = new File JavaDoc(fileName);
200         
201                 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile);
202         
203                 File JavaDoc destFile = new File JavaDoc(sourceFile.getParent(), jasperPrint.getName() + ".csv");
204                 
205                 JRCsvExporter exporter = new JRCsvExporter();
206                 
207                 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
208                 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString());
209                 
210                 exporter.exportReport();
211
212                 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start));
213                 System.exit(0);
214             }
215             else if (TASK_RUN.equals(taskName)) {
216                 // create entity manager factory for connection with database
217
EntityManagerFactory emf = Persistence.createEntityManagerFactory("pu1", new HashMap JavaDoc());
218                 EntityManager em = emf.createEntityManager();
219                 
220                 try
221                 {
222                     Map JavaDoc parameters = getParameters(em);
223                     
224                     JasperRunManager.runReportToPdfFile(fileName, parameters);
225                     
226                     em.close();
227                     
228                     System.err.println("PDF running time : " + (System.currentTimeMillis() - start));
229                 }
230                 finally
231                 {
232                     if (em.isOpen())
233                         em.close();
234                     if (emf.isOpen())
235                         emf.close();
236                 }
237                 System.exit(0);
238             }
239             else {
240                 usage();
241                 System.exit(0);
242             }
243         }
244         catch (JRException e) {
245             e.printStackTrace();
246             System.exit(1);
247         }
248         catch (Exception JavaDoc e) {
249             e.printStackTrace();
250             System.exit(1);
251         }
252     }
253
254     private static Map JavaDoc getParameters(EntityManager em) {
255         Map JavaDoc parameters = new HashMap JavaDoc();
256         parameters.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, em);
257         parameters.put("ReportTitle", "JRMDb - The JasperReports Movie Database");
258         Calendar JavaDoc calendar = Calendar.getInstance();
259         calendar.set(1990, 1, 1);
260         parameters.put("DateFrom", new Date JavaDoc(calendar.getTimeInMillis()));
261         parameters.put("DateTo", new Date JavaDoc(System.currentTimeMillis()));
262         parameters.put("OrderClause", "m.genre, m.title");
263         
264         return parameters;
265     }
266
267     private static void usage() {
268         System.out.println( "EjbqlApp usage:" );
269         System.out.println( "\tjava EjbqlApp -Ttask -Ffile" );
270         System.out.println( "\tTasks : fill | print | pdf | xml | xmlEmbed | html | rtf | xls | csv | run" );
271     }
272 }
273
Popular Tags