如何从 java 代码中检索报表变量,以检查报表是否没有页面?
How to retrive a report variable from java code, to check if report has no pages?
谁能解释一下如何从我的 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 页)。 (参见 whenNoDataType 属性)
并在 java.
//jasperPrint is the JasperPrint object retrieved after fill
List<JRPrintPage> pages = jasperPrint.getPages();
if (pages.size() == 0) {
// No pages
}
谁能解释一下如何从我的 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 页)。 (参见 whenNoDataType 属性)
并在 java.
//jasperPrint is the JasperPrint object retrieved after fill
List<JRPrintPage> pages = jasperPrint.getPages();
if (pages.size() == 0) {
// No pages
}