2015-09-04 96 views
0

我正面臨着在Jasper Report中顯示或隱藏表格的問題。動態顯示或隱藏碧玉報告中的表格

當沒有數據可用時,它顯示一條水平線。

我想隱藏來自報告的靜態文本字段和表格,當查詢檢索不到數據時。

誰能幫助我?

這裏我附上了我的輸出。

enter image description here

回答

0

你可以嘗試設置打印當靜態文本,也爲表中的每一列表達式。

下面是它如何看一個例子:

// 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); 
+0

對不起,我開始對碧玉報告,你能告訴我如何迭代表數據?給我一些示例代碼。 – Thirunavukkarasu

+0

嗯。如果你問這個問題,那麼我猜你在創建Jasper Design對象後會讀取數據。那麼遍歷數據的每一列將是一個不必要的複雜因素。 (要知道,沒有看到任何代碼,找到正確的建議有點困難。)現在,我認爲它應該足以檢查是否在創建表時獲取任何數據_before_,並且如果數據是空的。我無法提供任何示例代碼,因爲我不知道如何獲取數據。 – Takatam

+0

在我的碧玉報告中,我設計了表格對象並填充查詢表格。在我的情況下,是否可以隱藏表格。 – Thirunavukkarasu

0

您可以創建一個報表,內容將是要顯示或隱藏的代碼。 之後,在任何檢索字段上使用Print When表達式。

0

您可以使用無數據部分。這是爲了在查詢沒有返回數據的情況下處理佈局。你可以找到沒有數據作爲最後一個部分 - 上面的背景和下面總結