2014-10-06 4 views
-1

hi friends пытается передать пару параметров через hashmap в отчет о яшме, я получаю исключение из файла, но мой файл находится под папкой проекта netbeans, ниже мой Java кодjasper report file not found exception need help please

try{ HashMap hmp = new HashMap(); 
     hmp.put("mytin", m_t_n); 
     hmp.put("cname", c_n_m); 
     hmp.put("invno", c_in); 
     hmp.put("ctin", c_t); 
     hmp.put("date", c_d); 
     hmp.put("time", c_m); 
     hmp.put("gtot", gt); 
     hmp.put("dis", dcn); 
     hmp.put("adj", amtn); 
     hmp.put("fin", fn_am); 

     JasperReport jrpt = null; 
     String srcd="report1.jrxml"; 
     JasperPrint jp; 
     //jrpt = JasperCompileManager.compileReport(getClass().getResource(srcd)); 
jrpt = (JasperReport)JRLoader.loadObject(new File(srcd)); 
     jp=JasperFillManager.fillReport(jrpt,hmp, DriverManager.getConnection("jdbc:mysql://localhost:3306/billing", "root", "")); 
      JasperViewer jv = new JasperViewer(jp,false); 
      jv.setFitWidthZoomRatio(); 
      jv.setVisible(true); 
} 
catch(Exception er){ 
} 

ошибка я получаю

run: 
    java.io.FileNotFoundException: report1.jrxml 
    net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: report1.jrxml 

любезно помочь мне решить эту ошибку заранее спасибо

+0

Куда хранится файл (в зависимости от источника)? 'jrxml' должен быть скомпилирован до того, как его можно будет заполнить – MadProgrammer

+0

yeas jrxml хранится внутри папки проекта netbeans –

+0

Где находится в папке проекта? В папке 'src'? В какой структуре каталогов? – MadProgrammer

ответ

0

Попробуйте этот код -

try { 
      String reportSource = "resources/report1.jrxml"; 
      Map<String, Object> params = new HashMap<String, Object>(); 
      JasperReport jasperReport = JasperCompileManager.compileReport(reportSource); 
      JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource()); 
      JasperViewer.viewReport(jasperPrint, false); 
     } catch (Exception e) { 
      System.out.println(e.getMessage()); 
     } 
+0

ресурсов должно быть моим именем папки, где хранится файл jrxmll am i right –

+0

Да .. В вашем случае это может быть просто 'String reportSource =" report1.jrxml " ; ' –

+0

ok в моем случае у меня есть файл jrxml в той же папке, где мой проект состоит из, поэтому я думаю, что не нужно указывать имя моей папки, вместо этого я могу просто дать прямое имя файла, это нормально –

1

Давайте предположим, что ваш файл класс и report1.jrxml хранятся в одном пакете в вашем проекте ...

src/some/package/name/Report.java 
src/some/package/name/report1.jrxml 

Затем, вы должны быть в состоянии использовать getClass().getResource("report1.jrxml") для получения URL ссылки на ресурс

Если это действительно так, вам нужно попробовать что-то вроде getClass().getResource("/some/package/name/report1.jrxml"). Если это не удается, значит, что-то не так с файлом. Либо это не там, где вы думаете, или он поврежден каким-то образом ...

jrxml файла только XML файла, используемый JasperReports, он должен быть составлен первым, прежде чем он может быть использован ...

try{ 
    HashMap hmp = new HashMap(); 
    hmp.put("mytin", m_t_n); 
    hmp.put("cname", c_n_m); 
    hmp.put("invno", c_in); 
    hmp.put("ctin", c_t); 
    hmp.put("date", c_d); 
    hmp.put("time", c_m); 
    hmp.put("gtot", gt); 
    hmp.put("dis", dcn); 
    hmp.put("adj", amtn); 
    hmp.put("fin", fn_am); 

    JasperReport jrpt = null; 
    String srcd="report1.jrxml"; 
    JasperPrint jp; 
    jrpt = JasperCompileManager.compileReport(getClass().getResource(srcd)); 
    //jrpt = (JasperReport)JRLoader.loadObject(new File(srcd)); 
    jp=JasperFillManager.fillReport(jrpt,hmp, DriverManager.getConnection("jdbc:mysql://localhost:3306/billing", "root", "")); 
    JasperViewer jv = new JasperViewer(jp,false); 
    jv.setFitWidthZoomRatio(); 
    jv.setVisible(true); 
} catch(Exception er){ 
    er.printStackTrace(); 
} 
Смежные вопросы