2012-08-29 2 views
0

JR start_date 및 end_date를 매개 변수로 사용하는 보고서를 작성하려고합니다.재 스퍼 보고서에 매개 변수로 날짜를 전달하는 방법

쿼리 :

SELECT * FROM emp WHERE joining_date BETWEEN $P{frm_date} AND $P{to_date} 

코드 :

Date from_date = dt_from_date.getDate(); 
Date to_date = dt_to_date.getDate(); 
java.sql.Date frm_dte = new java.sql.Date(from_date.getTime()); 
java.sql.Date to_dte = new java.sql.Date(to_date.getTime()); 
try { 
    HashMap map = new HashMap(); 
    map.put("$P{frm_date}", frm_dte); 
    map.put("$P{to_date}", to_dte); 
    JasperPrint jp = JasperFillManager.fillReport(is, map, con); 
    JRViewer jv = new JRViewer(jp); 
    JFrame jf = new JFrame(); 
    jf.getContentPane().add(jv); 
    jf.validate(); 
    jf.setVisible(true); 
    jf.setSize(new Dimension(800, 600)); 
    jf.setLocation(300, 100); 
    jf.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 
} catch (JRException ex) { 
    ex.printStackTrace(); 
} 

우리가 테이블에 같은 열 두 개의 매개 변수를 전달할 수 있습니다? 예 :

map.put("joining_date", frm_dte); 
map.put("joining_date", to_dte); 
+0

오류가 있습니까? – Ami

+0

어떤 레코드도 얻지 못하고 있습니다. –

+0

두 열의 날짜를 같은 열에 전달하면 날짜가 나란히 표시됩니다. 그러나 당신이 직면 한 정확한 문제는 무엇입니까? –

답변

1

코드는 잘못된 것입니다.

아래로 매개 변수를 전달해야합니다

Map<String, Object> map = new HashMap<String, Object>(); 
map.put("frm_date", frm_dte); 
map.put("to_date", to_dte); 

당신은 매개 변수의 이름을 P${}를 추가 할 필요가 없습니다.


JasperReports를 배포 패키지의 샘플이 많이 있습니다.

자세한 내용은 this sample을 참조하십시오.

2

당신은 다음과 같은 문자열 형식 형식으로 날짜를 전달할 수

if(from_date!=null) 
{ 
     formattedEndDate=new SimpleDateFormat("yyyy-MM-dd").format(from_date); 
} 

if(getStartDate()!=null) 
{ 
    formattedStartDate=new SimpleDateFormat("yyyy-MM-dd").format(to_date); 
} 
0
private JasperPrint generateReport() { 
    Connection conn = null; 
    JasperPrint myJPrint = null; 
    try { 

     conn =yourconnectionName; 

     // parameters to be passed to the report 
     Map<String, Object> params = new HashMap(); 

     // Loading my jasper file 
     JasperDesign jasperDesign = null; 
     JasperReport jasperReport = null; 

     params.put("REPORT_DIR",yourClassName.class.getClassLoader() 
         .getResource("yourJasperFileName.jrxml").toString().replace("yourJasperFileName.jrxml", "")); 
     jasperDesign = JasperManager.loadXmlDesign(yourClassName.class 
       .getClassLoader().getResourceAsStream("yourJasperFileName.jrxml")); 
     params.put("joining_date", frm_dte); 
     params.put("leaving_date", frm_dte); 
     jasperReport = JasperCompileManager.compileReport(jasperDesign); 

     /* 
     * Filling the report with data from the database based on the 
     * parameters passed. 
     */ 
     myJPrint = JasperFillManager.fillReport(jasperReport, params, conn); 
     params.clear(); 

    } catch (JRException ex) { 
     ex.printStackTrace(); 
    } 

    return myJPrint; 

} 
+0

@niraj 매개 변수 이름이 귀하가 정의한 올바른지 확인하십시오. params.put ("joining_date", frm_dte); params.put ("leave_date", frm_dte); –

관련 문제