📄 ireportcompiler.java
字号:
// Compile report.... javaFile = this.jrf.getReport().getName()+".java"; String tempDirStr = System.getProperty("jasper.reports.compile.temp"); String oldCompileTemp = tempDirStr; if (tempDirStr == null || tempDirStr.length() == 0 || mainFrame.isUsingCurrentFilesDirectoryForCompiles()) { tempDirStr = mainFrame.getTranslatedCompileDirectory(); } File tempDirFile = new File(tempDirStr); javaFile = (new File(tempDirFile,javaFile)).getPath(); status = "Compiling"; mainFrame.logOnConsole("</font><font face=\"SansSerif\" size=\"3\" color=\"#000000\">Compiling to file... " + fileName + " -> "+javaFile+"</font><br><font face=\"Courier New\" size=\"3\">",true); try { if( mainFrame.isUsingCurrentFilesDirectoryForCompiles() ) { System.setProperty("jasper.reports.compile.temp", tempDirStr); } String old_jr_classpath = Misc.nvl( System.getProperty("jasper.reports.compile.class.path"), ""); System.setProperty("jasper.reports.compile.class.path", Misc.nvl( new File(fileName).getParent(), ".") + File.pathSeparator + System.getProperty("java.class.path") + File.pathSeparator + System.getProperty("java.class.path")); JasperCompileManager.compileReportToFile(srcFileName, fileName); System.setProperty("jasper.reports.compile.class.path", old_jr_classpath); } catch (JRException jrex) { mainFrame.logOnConsole("</font><font face=\"SansSerif\" size=\"3\" color=\"#CC0000\"><b>Errors compiling "+fileName+"!</b></font><br><font face=\"Courier New\" size=\"3\">",true); //1. load the java file Vector source = new Vector(); try { java.io.BufferedReader is = new java.io.BufferedReader(new java.io.FileReader( javaFile )); while (true) { String line = is.readLine(); if (line == null) break; source.addElement(line); } is.close(); } catch (Exception ioex) { // No file readed.... } //2. write exception in a string StringWriter sw = new StringWriter(0); jrex.printStackTrace(new PrintWriter(sw)); System.out.println("\n\n\n"); myPrintStream.flush(); parseException( outputBuffer+sw.getBuffer()+"", source); } catch (Exception ex) { mainFrame.logOnConsole("</font><font face=\"SansSerif\" size=\"3\" color=\"#CC0000\"><b>Error compiling the report java source!</b></font><br><font face=\"Courier New\" size=\"3\">",true); StringWriter sw = new StringWriter(0); ex.printStackTrace(new PrintWriter(sw)); myPrintStream.flush(); parseException( outputBuffer+sw.getBuffer()+"", null); } finally { if(mainFrame.isUsingCurrentFilesDirectoryForCompiles()) { if( oldCompileTemp != null ) { System.setProperty("jasper.reports.compile.temp", oldCompileTemp); } else { System.setProperty("jasper.reports.compile.temp", ""); } }//end if using current files directory for compiles }//end finally mainFrame.logOnConsole(outputBuffer); outputBuffer=""; mainFrame.logOnConsole("</font><hr><font face=\"SansSerif\" size=\"3\" color=\"#0000CC\"><b>Compilation running time : " + (System.currentTimeMillis() - start) + "</b></font><br><hr><font face=\"Courier New\" size=\"3\">",true); } if ((command & CMD_EXPORT) != 0) { // Compile report.... JasperPrint print = null; mainFrame.logOnConsole("</font><font face=\"SansSerif\" size=\"3\" color=\"#000000\">Filling report... </font><br><font face=\"Courier New\" size=\"3\">",true); if (properties.get(USE_EMPTY_DATASOURCE) != null && properties.get(USE_EMPTY_DATASOURCE).equals("true")) { try { print = JasperFillManager.fillReport(fileName,new HashMap(),new JREmptyDataSource()); } catch (Exception ex) { mainFrame.logOnConsole("Error filling print...\n"); ex.printStackTrace(); mainFrame.logOnConsole(outputBuffer); outputBuffer =""; } } else if (properties.get(USE_CONNECTION) != null && properties.get(USE_CONNECTION).equals("true")) { try { IReportConnection connection = (IReportConnection)properties.get(CONNECTION); HashMap hm = new HashMap(); if (connection.isJDBCConnection()) { print = JasperFillManager.fillReport(fileName,hm, connection.getConnection()); } else { JRDataSource ds = (JRDataSource)connection.getJRDataSource(); print = JasperFillManager.fillReport(fileName,hm,ds); } } catch (Exception ex) { mainFrame.logOnConsole("Error filling print...\n"); ex.printStackTrace(); mainFrame.logOnConsole(outputBuffer); outputBuffer =""; } } dori.jasper.view.JRViewer jrv = null; dori.jasper.engine.JRExporter exporter=null; if (print != null) { String format = Misc.nvl(properties.get(OUTPUT_FORMAT),"pdf"); String viewer_program = ""; mainFrame.logOnConsole(properties.get(OUTPUT_FORMAT) + "Exporting\n"); try { if (format.equalsIgnoreCase("pdf")) { exporter = new dori.jasper.engine.export.JRPdfExporter(); fileName = Misc.changeFileExtension(fileName,"pdf"); mainFrame.logOnConsole("Exporting pdf to file... \""+fileName+"\"\n"); viewer_program = mainFrame.getProperties().getProperty("ExternalPDFViewer"); } else if (format.equalsIgnoreCase("csv")) { exporter = new dori.jasper.engine.export.JRCsvExporter(); fileName = Misc.changeFileExtension(fileName,"csv"); mainFrame.logOnConsole("Exporting CSV to file... "+fileName+"\n"); viewer_program = Misc.nvl( mainFrame.getProperties().getProperty("ExternalCSVViewer"), ""); } else if (format.equalsIgnoreCase("html")) { exporter = new dori.jasper.engine.export.JRHtmlExporter(); fileName = Misc.changeFileExtension(fileName,"html"); mainFrame.logOnConsole("Exporting HTML to file... "+fileName+"\n"); viewer_program = Misc.nvl( mainFrame.getProperties().getProperty("ExternalHTMLViewer"), ""); } else if (format.equalsIgnoreCase("xls")) { exporter = new dori.jasper.engine.export.JRXlsExporter(); fileName = Misc.changeFileExtension(fileName,"xls"); mainFrame.logOnConsole("Exporting xls to file... "+fileName+"\n"); viewer_program = Misc.nvl( mainFrame.getProperties().getProperty("ExternalXLSViewer"), ""); } else if (format.equalsIgnoreCase("java2D")) { exporter = new dori.jasper.engine.export.JRGraphics2DExporter(); mainFrame.logOnConsole("Exporting to Java2D \n"); viewer_program = null; } else if (format.equalsIgnoreCase("jrviewer")) { mainFrame.logOnConsole("Viewing with JasperReports Viewer\n"); exporter = null; viewer_program = null; } else if (format.equalsIgnoreCase("txt")) { exporter = new it.businesslogic.ireport.export.JRTxtExporter(); fileName = Misc.changeFileExtension(fileName,"txt"); mainFrame.logOnConsole("Exporting txt (experimental) to file... "+fileName+"\n"); viewer_program = Misc.nvl( mainFrame.getProperties().getProperty("ExternalEditor"), ""); } if (exporter != null) { exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,fileName); exporter.setParameter(JRExporterParameter.JASPER_PRINT,print); exporter.setParameter(JRExporterParameter.PROGRESS_MONITOR, this); exporter.exportReport(); } else if (format.equalsIgnoreCase("jrviewer")) { //jrv = new dori.jasper.view.JRViewer(print); JasperViewer jasperViewer = new JasperViewer(print,false); jasperViewer.setTitle("iReport JasperViewer"); // Find JRViewer... /* javax.swing.JComponent button = searchButton( (javax.swing.JComponent)jasperViewer.getRootPane() , "Print"); if (button != null) ((javax.swing.JButton)button).setText("Ciccio"); button = searchButton( (javax.swing.JComponent)jasperViewer.getRootPane() , "Reload"); if (button != null) ((javax.swing.JButton)button).setText("Ricarica"); */ jasperViewer.show(); //dori.jasper.view.JasperViewer.viewReport( print, false); } } catch (Exception ex2) { mainFrame.logOnConsole("Error exporting print...\n"); ex2.printStackTrace(); mainFrame.logOnConsole(outputBuffer); outputBuffer =""; } mainFrame.logOnConsole("Running time : " + (System.currentTimeMillis() - start)+"\n"); // Export using the rigth program.... Runtime rt = Runtime.getRuntime(); if (viewer_program == null || viewer_program.equals("")) { if (format.equalsIgnoreCase("jrviewer")) { } else mainFrame.logOnConsole("No external viewer specified for this type of print. Set it in the options frame!\n"); } else { try { String execute_string = viewer_program + " "+fileName+""; mainFrame.logOnConsole("Executing: "+ execute_string + "\n"); rt.exec( execute_string ); } catch (Exception ex) { mainFrame.logOnConsole("Error viewing report...\n"); ex.printStackTrace(); mainFrame.logOnConsole(outputBuffer+"\n"); outputBuffer =""; } mainFrame.logOnConsole("Finished...\n"); } } else { mainFrame.logOnConsole("Print not filled. Try to use an EmptyDataSource...!\n"); } } //System.setOut(out); //System.setErr(err); } /** Getter for property command. * @return Value of property command. * */ public int getCommand() { return command; } /** Setter for property command. * @param command New value of property command. * */ public void setCommand(int command)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -