如何从java代码中检索报表变量,以检查报表是否没有页面



谁能解释一下如何从我的java代码中检索报告的REPORT_COUNT变量值?

我需要该值,因为我想在报表没有页面时显示自己的消息,并且在这种情况下我不想显示空查看器。

你问如何获取报告变量,这就是方法:

//Create a base filler
JRBaseFiller filler = JRFiller.createFiller(DefaultJasperReportsContext.getInstance(),report);
//Fill the report
JasperPrint jasperPrint = filler.fill(map, connection);
//Get the variables / parameter from the filler
Object rc = filler.getVariableValue("REPORT_COUNT");
int count = 0;
if (rc instanceof Number){
  count = ((Number)rc).intValue();
}

但是,检查是否有页面的最简单方法是:

jrxml中设置jasperReport标签上的属性whenNoDataType="NoPages"。此属性将确保在数据源为空时返回空报表(0 页(。(请参阅何时无数据类型属性(

和爪哇。

//jasperPrint is the JasperPrint object retrieved after fill
List<JRPrintPage> pages = jasperPrint.getPages();
if (pages.size() == 0) {
    // No pages
}

最新更新