1 28 import java.io.File ; 29 import java.util.HashMap ; 30 import java.util.Map ; 31 32 import net.sf.jasperreports.engine.JRException; 33 import net.sf.jasperreports.engine.JRExporterParameter; 34 import net.sf.jasperreports.engine.JasperExportManager; 35 import net.sf.jasperreports.engine.JasperFillManager; 36 import net.sf.jasperreports.engine.JasperPrint; 37 import net.sf.jasperreports.engine.JasperPrintManager; 38 import net.sf.jasperreports.engine.JasperRunManager; 39 import net.sf.jasperreports.engine.data.JRBeanArrayDataSource; 40 import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; 41 import net.sf.jasperreports.engine.data.JRTableModelDataSource; 42 import net.sf.jasperreports.engine.export.JExcelApiExporter; 43 import net.sf.jasperreports.engine.export.JRCsvExporter; 44 import net.sf.jasperreports.engine.export.JRRtfExporter; 45 import net.sf.jasperreports.engine.export.JRXlsExporter; 46 import net.sf.jasperreports.engine.export.JRXlsExporterParameter; 47 import net.sf.jasperreports.engine.util.JRLoader; 48 49 50 54 public class DataSourceApp 55 { 56 57 58 61 private static final String TASK_FILL_1 = "fill1"; 62 private static final String TASK_FILL_2 = "fill2"; 63 private static final String TASK_FILL_3 = "fill3"; 64 private static final String TASK_FILL_4 = "fill4"; 65 private static final String TASK_PRINT = "print"; 66 private static final String TASK_PDF = "pdf"; 67 private static final String TASK_XML = "xml"; 68 private static final String TASK_XML_EMBED = "xmlEmbed"; 69 private static final String TASK_HTML = "html"; 70 private static final String TASK_RTF = "rtf"; 71 private static final String TASK_XLS = "xls"; 72 private static final String TASK_JXL = "jxl"; 73 private static final String TASK_CSV = "csv"; 74 private static final String TASK_RUN = "run"; 75 76 77 80 public static void main(String [] args) 81 { 82 String fileName = null; 83 String taskName = null; 84 85 if(args.length == 0) 86 { 87 usage(); 88 return; 89 } 90 91 int k = 0; 92 while ( args.length > k ) 93 { 94 if ( args[k].startsWith("-T") ) 95 taskName = args[k].substring(2); 96 if ( args[k].startsWith("-F") ) 97 fileName = args[k].substring(2); 98 99 k++; 100 } 101 102 try 103 { 104 long start = System.currentTimeMillis(); 105 if (TASK_FILL_1.equals(taskName)) 106 { 107 Map parameters = new HashMap (); 109 parameters.put("ReportTitle", "Address Report"); 110 parameters.put("DataFile", "CustomDataSource.java"); 111 112 JasperFillManager.fillReportToFile(fileName, parameters, new CustomDataSource()); 113 System.err.println("Filling time : " + (System.currentTimeMillis() - start)); 114 System.exit(0); 115 } 116 else if (TASK_FILL_2.equals(taskName)) 117 { 118 Map parameters = new HashMap (); 120 parameters.put("ReportTitle", "Address Report"); 121 parameters.put("DataFile", "CustomTableModel.java"); 122 123 JasperFillManager.fillReportToFile(fileName, parameters, new JRTableModelDataSource(new CustomTableModel())); 124 System.err.println("Filling time : " + (System.currentTimeMillis() - start)); 125 System.exit(0); 126 } 127 else if (TASK_FILL_3.equals(taskName)) 128 { 129 Map parameters = new HashMap (); 131 parameters.put("ReportTitle", "Address Report"); 132 parameters.put("DataFile", "CustomBeanFactory.java - Bean Array"); 133 134 JasperFillManager.fillReportToFile(fileName, parameters, new JRBeanArrayDataSource(CustomBeanFactory.getBeanArray())); 135 System.err.println("Filling time : " + (System.currentTimeMillis() - start)); 136 System.exit(0); 137 } 138 else if (TASK_FILL_4.equals(taskName)) 139 { 140 Map parameters = new HashMap (); 142 parameters.put("ReportTitle", "Address Report"); 143 parameters.put("DataFile", "CustomBeanFactory.java - Bean Collection"); 144 145 JasperFillManager.fillReportToFile(fileName, parameters, new JRBeanCollectionDataSource(CustomBeanFactory.getBeanCollection())); 146 System.err.println("Filling time : " + (System.currentTimeMillis() - start)); 147 System.exit(0); 148 } 149 else if (TASK_PRINT.equals(taskName)) 150 { 151 JasperPrintManager.printReport(fileName, true); 152 System.err.println("Printing time : " + (System.currentTimeMillis() - start)); 153 System.exit(0); 154 } 155 else if (TASK_PDF.equals(taskName)) 156 { 157 JasperExportManager.exportReportToPdfFile(fileName); 158 System.err.println("PDF creation time : " + (System.currentTimeMillis() - start)); 159 System.exit(0); 160 } 161 else if (TASK_XML.equals(taskName)) 162 { 163 JasperExportManager.exportReportToXmlFile(fileName, false); 164 System.err.println("XML creation time : " + (System.currentTimeMillis() - start)); 165 System.exit(0); 166 } 167 else if (TASK_XML_EMBED.equals(taskName)) 168 { 169 JasperExportManager.exportReportToXmlFile(fileName, true); 170 System.err.println("XML creation time : " + (System.currentTimeMillis() - start)); 171 System.exit(0); 172 } 173 else if (TASK_HTML.equals(taskName)) 174 { 175 JasperExportManager.exportReportToHtmlFile(fileName); 176 System.err.println("HTML creation time : " + (System.currentTimeMillis() - start)); 177 System.exit(0); 178 } 179 else if (TASK_RTF.equals(taskName)) 180 { 181 File sourceFile = new File (fileName); 182 183 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 184 185 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".rtf"); 186 187 JRRtfExporter exporter = new JRRtfExporter(); 188 189 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 190 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 191 192 exporter.exportReport(); 193 194 System.err.println("RTF creation time : " + (System.currentTimeMillis() - start)); 195 System.exit(0); 196 } 197 else if (TASK_XLS.equals(taskName)) 198 { 199 File sourceFile = new File (fileName); 200 201 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 202 203 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".xls"); 204 205 JRXlsExporter exporter = new JRXlsExporter(); 206 207 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 208 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 209 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); 210 211 exporter.exportReport(); 212 213 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start)); 214 System.exit(0); 215 } 216 else if (TASK_JXL.equals(taskName)) 217 { 218 File sourceFile = new File (fileName); 219 220 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 221 222 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".jxl.xls"); 223 224 JExcelApiExporter exporter = new JExcelApiExporter(); 225 226 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 227 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 228 exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE); 229 230 exporter.exportReport(); 231 232 System.err.println("XLS creation time : " + (System.currentTimeMillis() - start)); 233 System.exit(0); 234 } 235 else if (TASK_CSV.equals(taskName)) 236 { 237 File sourceFile = new File (fileName); 238 239 JasperPrint jasperPrint = (JasperPrint)JRLoader.loadObject(sourceFile); 240 241 File destFile = new File (sourceFile.getParent(), jasperPrint.getName() + ".csv"); 242 243 JRCsvExporter exporter = new JRCsvExporter(); 244 245 exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); 246 exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFile.toString()); 247 248 exporter.exportReport(); 249 250 System.err.println("CSV creation time : " + (System.currentTimeMillis() - start)); 251 System.exit(0); 252 } 253 else if (TASK_RUN.equals(taskName)) 254 { 255 Map parameters = new HashMap (); 257 parameters.put("ReportTitle", "Address Report"); 258 259 JasperRunManager.runReportToPdfFile(fileName, parameters, new CustomDataSource()); 260 System.err.println("PDF running time : " + (System.currentTimeMillis() - start)); 261 System.exit(0); 262 } 263 else 264 { 265 usage(); 266 System.exit(0); 267 } 268 } 269 catch (JRException e) 270 { 271 e.printStackTrace(); 272 System.exit(1); 273 } 274 catch (Exception e) 275 { 276 e.printStackTrace(); 277 System.exit(1); 278 } 279 } 280 281 282 285 private static void usage() 286 { 287 System.out.println( "DataSourceApp usage:" ); 288 System.out.println( "\tjava DataSourceApp -Ttask -Ffile" ); 289 System.out.println( "\tTasks : fill1 | fill2 | fill3 | fill4 | print | pdf | xml | xmlEmbed | html | rtf | xls | jxl | csv | run" ); 290 } 291 292 293 } 294 | Popular Tags |