2011-03-09 2 views

답변

0

소스 트리의 일부 패키지에 추가하기 만하면됩니다. 빌드 프로세스 또는 IDE는 클래스와 함께 classes 디렉토리 나 생성 된 jar 파일에 복사해야합니다. 보고서에 Class.getResource() 또는 Class.getResourceAsStream()이로드 될 수 있습니다.

0

다음은 두 개의 콤보 상자에서 두 개의 값을 가져와 HashMap에 추가하고 iReport에 전달하는 데 필요한 코드입니다. 이 예제에서 "storeName"및 "actionCode"과 같은 매개 변수는 iReport 내부에 저장된 쿼리 값을 지정하는 데 사용됩니다. 보고서 재 스퍼 파일은 "../ireps/AccessCounter.jrxml"입니다. 뷰어는 JDialog입니다. 보고서에 전달할 매개 변수가 없다면 map.put을 건너 뛰십시오. con은 데이터베이스에 대한 연결입니다.

경로에 필요한 jar 파일을 포함했는지 확인하십시오.

try { 
    String shopName = jComboBox1.getSelectedItem().toString(); 
    String actionCode = jComboBox2.getSelectedItem().toString(); 
    HashMap<String, Object> map = new HashMap<String, Object>(); 
    map.put("storeName", shopName); 
    map.put("actionCode", actionCode); 

    URL reportFileURL = getClass().getResource("../ireps/AccessCounter.jrxml"); 
    File reportFile = new File(reportFileURL.toURI()); 
    JasperDesign jasperDesign = JRXmlLoader.load(reportFile); 
    JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); 
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, map, con); 
    JasperViewer jv = new JasperViewer(jasperPrint); 
    JDialog viewer = new JDialog(this, "Batch Report", true); 
    viewer.setBounds(jv.getBounds()); 
    viewer.getContentPane().add(jv.getContentPane()); 
    viewer.setResizable(true); 
    viewer.setIconImage(jv.getIconImage()); 
    viewer.setVisible(true); 
} catch (JRException exc) { 
    System.out.println(exc.getMessage()); 
} catch (URISyntaxException exs) { 
    System.out.println(exs.getMessage()); 
} 
관련 문제