⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ireportcompiler.java

📁 iReport-0.4.1-src是iReport的源代码,iReport是一个开源的报表项目,可以生成PDF等格式报表
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
         {
            tempDirStr = mainFrame.getTranslatedCompileDirectory();
         }
         File tempDirFile = new File(tempDirStr);
         javaFile = (new File(tempDirFile,javaFile)).getPath();
                  
         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"));
            String old_defaul_compiler = Misc.nvl( System.getProperty("jasper.reports.compiler.class"), "");
            String compiler_name  = "JasperReports default compiler";
            String compiler_code = mainFrame.getProperties().getProperty("DefaultCompiler");
            if (compiler_code !=  null && !compiler_code.equals("0") && !compiler_code.equals(""))
            {
                if (compiler_code.equals("1"))
                {
                    System.setProperty("jasper.reports.compiler.class","net.sf.jasperreports.engine.design.JRJdk13Compiler"  );
                    compiler_name = "Java Compiler";
                }
                else if (compiler_code.equals("2"))
                {
                    System.setProperty("jasper.reports.compiler.class","net.sf.jasperreports.engine.design.JRJdtCompiler"  );
                    compiler_name = "JDT Compiler";
                }
                else if (compiler_code.equals("3"))
                {
                    System.setProperty("jasper.reports.compiler.class","net.sf.jasperreports.engine.design.JRBshCompiler"  );
                    compiler_name = "BeanShell Compiler";
                }
                else if (compiler_code.equals("4"))
                {
                    System.setProperty("jasper.reports.compiler.class","net.sf.jasperreports.engine.design.JRJikesCompiler"  );
                    compiler_name = "Jikes Compiler";
                }
            }
            else
            {
                System.setProperty("jasper.reports.compiler.class","" );
            }
            
            
           // mainFrame.logOnConsole("</font><font face=\"SansSerif\"  size=\"3\" color=\"#000000\"><b>Using compiler "+ compiler_name  + " (" + System.getProperty("jasper.reports.compiler.class","" ) +")</b></font><br><font face=\"Courier New\" size=\"3\">",true);
            
            JasperCompileManager.compileReportToFile(srcFileName, fileName);
               
            System.setProperty("jasper.reports.compile.class.path", old_jr_classpath);
            System.setProperty("jasper.reports.compiler.class", old_defaul_compiler);
         } catch (JRException jrex)
         {
             compilation_ok = false;
            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);
            compilation_ok = false;
         }
         catch (Throwable ext)
         {
            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);
            ext.printStackTrace(new PrintWriter(sw));
            myPrintStream.flush();
            parseException( outputBuffer+sw.getBuffer()+"", null);
            compilation_ok = false;
         }
         finally
         {
            if(mainFrame.isUsingCurrentFilesDirectoryForCompiles())
            {
               if( oldCompileTemp != null )
               {
                  System.setProperty("jasper.reports.compile.temp", oldCompileTemp);
               }
               else
               {
                  System.setProperty("jasper.reports.compile.temp", "");
               }
               
               File javaSrcFile = new File(javaFile);
               if (  javaSrcFile.exists() )
               if (mainFrame.getProperties().getProperty("KeepJavaFile","true").equals("false") )
               {
                    javaSrcFile.delete();
               }
            }//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 (!compilation_ok) {
          
          removeThread();
          return;
      }
            
      if  ((command & CMD_EXPORT) != 0)
      {
         
         status  ="generating report";
         updateThreadList();
          
         // 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);
         
         statusLevel = 5;
         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 ="";
            }
            catch (Throwable ext)
            {
               mainFrame.logOnConsole("Error filling print...\n");
               ext.printStackTrace();
               mainFrame.logOnConsole(outputBuffer);
               outputBuffer ="";
            }
         }
         net.sf.jasperreports.view.JRViewer jrv = null;
         net.sf.jasperreports.engine.JRExporter exporter=null;
         if (print != null)
         {
             status  ="exporting report";
            updateThreadList();
             
            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  net.sf.jasperreports.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  net.sf.jasperreports.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  net.sf.jasperreports.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  net.sf.jasperreports.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  net.sf.jasperreports.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 net.sf.jasperreports.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();
                  
                  //net.sf.jasperreports.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");
         }
      }
      
      removeThread();
      System.gc();
      //System.setOut(out);
      //System.setErr(err);
   }
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -