2012-06-21 54 views
0

我有一個報告,我在iReport專業4.5.1創建,並已部署到JasperServer。我在我的報告參數用來指定排序列:JasperServer輸入控件 - 取消選中可見,獲取錯誤

名稱:profit_loss_sort
參數類:java.lang.String中
用作提示:是
缺省的表達式:「FAC_ID」

然後我還有一個參數,它需要$ P {} profit_loss_sort並用它來通過我的查詢子句創建訂單:

名稱:profit_loss_sort_function
參數類:java.lang.String中
用作提示:沒有
缺省的表達式: 「ORDER BY 」+ $ P {profit_loss_sort} +「 ASC」

當$ P {profit_loss_sort}被設置爲可見,這個工作正常的iReport和的JasperServer。我在每個列標籤上設置了一個超鏈接,當您點擊這些超鏈接時,報告會在每列上進行排序。

當我取消選中$ P {profit_loss_sort}的可見框時,第一次嘗試運行報表時,我得到一個Oracle錯誤,我缺少表達式(ORA-00936:缺少表達式)。我不明白,因爲在我的查詢中的ORDER BY子句是:

$ P {} profit_loss_sort_function

這樣的JasperServer應該採取那些兩個參數的默認值,並拿出一個ORDER BY子句。實際上,當我使用「運行JasperServer報告」選項從iReport運行報告時,它會適當地採取行動並填寫默認的ORDER BY子句。 $ P {profit_loss_sort}是強制性的,在JasperServer方面我沒有選中「總是提示」我的輸入控件。

我不希望$ P {profit_loss_sort}成爲可見的輸入控件,但我仍然希望它在首次運行報表時使用默認值。有什麼想法嗎?

回答

1

我想通了 - 我有一個主要的報告,將參數傳遞給子報表。我在子報表中爲參數$ P {profit_loss_sort}設置了一個默認值,但在主報表中沒有。

我在主報表中爲它設置了一個默認值,現在當我取消選中「可見」框時,JasperServer報表隱藏了該輸入控件,我可以使用超鏈接進行排序。