我可以验证空数据源/空白pdf吗?

时间:2014-10-27 09:57:37

标签: java javascript jsp jasper-reports

我是 JasperReports 的新手。所以,我已经成功创建了我想要的报告功能,我有3个参数,包括日期和2个字符串。到目前为止,当查询结果(非空)时,它会很顺利。但是如果查询为空,则创建的pdf将为纯白色空白。

所以,我想做的是,我想验证它,每当它生成一个普通的白色pdf时,我不想显示空白的pdf,而是我想显示一些错误信息。这可能吗?

这是我的代码,在JSP中使用javascript。

<%
    Connection conn = null;
    try{
        Class.forName("oracle.jdbc.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@333.0.0.1:3333:sample", "asd", "asd");
    } catch (Exception e){
        e.printStackTrace();
    }

    String method_param = request.getParameter("method");
    if(method_param.equals("default")){
        method_param = "%";
    }

    String date_param = request.getParameter("date");
    if(date_param == ""){
        date_param = "%";
    }

    String status_param = request.getParameter("status");
    if(status_param.equals("default")){
        status_param = "%";
    }


    Map parameters = new HashMap();
    parameters.put("method_param", method_param);
    parameters.put("date_param", date_param);
    parameters.put("status_param", status_param);

    JasperPrint jasperPrint = JasperFillManager.fillReport("C:/myaddress/lalala/WEB-INF/reports/Reports.jasper", parameters, conn);
    OutputStream outputStream = response.getOutputStream();
    JRExporter exporter = new JRPdfExporter();
    response.setContentType("application/pdf");
    response.setHeader("Content-Disposition", "inline; filename=\"report.pdf\"");
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
    exporter.exportReport(); 

      if (outputStream != null)
        {
          try
          {
            outputStream.close();
          }
          catch (IOException ex){
            ex.printStackTrace();
          }
        }


%>

效果很好,但我只想避免使用空白pdf。

1 个答案:

答案 0 :(得分:2)

jasper报告提供了一个名为REPORT_COUNT的预定义变量。它包含报告中存在的记录总数。

您可以使用此变量来显示相应的消息,例如“找不到记录”。

由于