在jasper报告中动态显示或隐藏表

时间:2015-09-04 13:42:05

标签: jasper-reports

我在Jasper Report中显示或隐藏表格时遇到问题。

当没有数据可用时,它会显示一条水平线。

我想在查询没有检索到任何数据时隐藏报表中的静态文本字段和表。

任何人都可以帮助我吗?

这里我附上了我的输出。

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以尝试为静态文本以及表格的每一列设置Print When表达式。

以下是它的外观示例:

// determine somewhere whether the received table data is empty or not.
// save the result as a boolean and add it to report parameters
boolean ifTableEmpty = false;  // for example
parameters.put("ifTableEmpty", ifTableEmpty);

// create a Print When expression
JRDesignExpression whenToPrintTheTable = new JRDesignExpression();
whenToPrintTheTable.setText("$P{ifTableEmpty}");    

// add the expression to your static text and similarly for each column
staticText.setPrintWhenExpression(whenToPrintTheTable);

答案 1 :(得分:0)

您可以创建子报表,内容将是您要显示或隐藏的代码。 之后,在任何检索字段上使用Print When表达式。

答案 2 :(得分:0)

您可以使用“无数据”部分。它旨在处理布局,以防查询返回任何数据。你可以找到No Data作为最后一个但只有一个部分 - 背景之上和摘要