有沒有辦法在iReport中有條件地添加參數?如何在iReport中有條件地傳遞參數?
在我的一個報告中,我想根據它的值傳遞參數。以下是報告的查詢:
選擇名稱,DESI,從學生 類,其中類= $ P {CALSS} 和joinYear = $ P {joinYear}
我想補充joinYear條件只有joinYear如果joinYear的值爲空,則只應用一個條件。
有沒有辦法檢查iReport中的報表查詢條件?
有沒有辦法在iReport中有條件地添加參數?如何在iReport中有條件地傳遞參數?
在我的一個報告中,我想根據它的值傳遞參數。以下是報告的查詢:
選擇名稱,DESI,從學生 類,其中類= $ P {CALSS} 和joinYear = $ P {joinYear}
我想補充joinYear條件只有joinYear如果joinYear的值爲空,則只應用一個條件。
有沒有辦法檢查iReport中的報表查詢條件?
你可以試試這個: -
SELECT name,
desi,
class
FROM student
WHERE (class=$P{calss} or $P{calss} is null)
AND (joinYear=$P{joinYear} or $P{joinYear} is null)
在這種情況下,任何參數,你會通過只參數值將在查詢中傳遞。
你可以嘗試一個子報表。創建一個虛擬的主要報告,將您的報告稱爲子報告,虛擬查詢如
select 1 as dummy
並添加一個變量即。 $V{joinYearCond}
與表達
($P{joinYear} == "" || $P{joinYear} == null) ? "" : "and joinYear = " + $P{joinYear}
還可以修改報告中的查詢(今子報表)
select name,desi,class from student where class=$P{calss} $P!{joinYearCond}
對於參數$P{joinYearCond}
合格$V{joinYearCond}
值。它看起來不漂亮,但它會工作。
創建一個新的參數joinYear_query並設置爲默認值表達
$P{joinYear}==null ? " true": " joinYear=".concat($P{joinYear}.toString())
然後
select name,desi,class from student where class=$!P{calss} AND $P!{joinYear_query}
你可以看到更多的細節: Accepting null values as parameters in jasper report
的【如何給條件
可能重複在Ireport多選參數的空值?](http://stackoverflow.com/questions/9782107/how-to-give-condition-for-null-values-of-mult i-select-parameter-in-ireport)&[帶參數的請求報告](http://stackoverflow.com/q/17663860/876298)&[JasperReports中的條件Where子句](http://stackoverflow.com/q/12324706/876298)&[可選where子句jasper報告](http://stackoverflow.com/q/19401825/876298) –