Jasper reports 如何在jasper报告中动态设置isIgnorePagination?

Jasper reports 如何在jasper报告中动态设置isIgnorePagination?,jasper-reports,Jasper Reports,我有一个jasper文件,我现在导出到PDF和Excel,我只使用一个jasper,我希望PDF导出的报告应该是“isIgnorePagination=”true“,Excel报告应该是“isIgnorePagination=”false“ 如何从java代码进行设置?您需要在运行时知道是否要导出到Excel或PDF,您应该知道这一点 举个例子: public void generateReport(JasperPrint report, boolean isExcel, String save

我有一个jasper文件,我现在导出到PDF和Excel,我只使用一个jasper,我希望PDF导出的报告应该是“isIgnorePagination=”true“,Excel报告应该是“isIgnorePagination=”false“


如何从java代码进行设置?

您需要在运行时知道是否要导出到Excel或PDF,您应该知道这一点

举个例子:

public void generateReport(JasperPrint report, boolean isExcel, String saveTo){
  JRExporter exporter = null;
  if (isExcel) {
    exporter = new JRXlsExporter();
    exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
    exporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
    exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
    //we set the one page per sheet parameter here
    exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
  } else {
    exporter = new JRPdfExporter();     
  }
  exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);124
  exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, saveTo);
  export.exportReport();
}

我找到了解决办法

我的代码是:

paramaters.put("fromDate", fromDate);
paramaters.put("toDate", toDate);
if (!output.equals("pdf"))
{
    paramaters.put("IS_IGNORE_PAGINATION", true);
}
else
    paramaters.put("IS_IGNORE_PAGINATION", false);

JasperPrint jasperPrint = null;
jasperPrint = JasperFillManager.fillReport(CompiledReport,paramaters, connection);

if (output.equals("html")) {
    generateHtmlResponse(response, jasperPrint);
} else if (output.equals("pdf")) {
    generatePdfResponse(response, jasperPrint);
} else if(output.equals("excel")) {
    generateXLResponse(response, jasperPrint);
}
根据:

出于各种目的,可以使用可选的内置参数在报告填充时覆盖此标志[
isIgnorePagination
(jrxml中)

所以代码应该是这样的:

final Map fillingParameters=new HashMap();
if(exportType==exportType.XLS){
fillingParameters.put(JRParameter.IS_IGNORE_分页,Boolean.TRUE);
}
最终JasperPrint print=JasperFillManager.fillReport(jasperReport,fillingParameters,dataSource);

您可以通过JRParameter.IS_IGNORE_PAGINATION参数(如果您使用JasperFillManager.fillReport方法)传递此属性嗨,我想要的是如何为PDF设置“isIgnorePagination='true'”和“isIgnorePagination='false'”对于excel?从java代码中,您可以设置JRParameter.IS_IGNORE_分页,并按照您的意愿设置导出格式hjrxlsexporter.setParameter已被弃用,因为这个答案已经编写完毕-现在使用“Anthony O.”的解决方案-即:
fillingParameters.put(JRParameter.IS_IGNORE_分页,Boolean.TRUE)
最终JasperPrint打印=JasperFillManager.fillReport(jasperReport,fillingParameters,数据源)
您还可以使用
SimpleXlsReportConfiguration=new net.sf.jasperreports.export.SimpleXlsReportConfiguration()配置。setOnePagePerSheet(false)
导出器.setConfiguration(配置)