如何使用Ireport传递多个可选参数

时间:2013-02-12 15:15:27

标签: mysql parameters ireport optional

我正在尝试将可选参数添加到我的查询的where子句中。每个都已经过测试并单独工作但是如何将它们合并到查询中,因此无论用户填写哪一个都无关紧要,报告仍然会运行。

参数是:

 $P!{qparam_TickerValue} , $P!{qparam_CusipValue}, $P!{qparam_DescValue};

这是他们的默认值表达式(TickerValue):

$P{qparam_Ticker}=="" ? "" : "and p.Ticker='"+$P{qparam_Ticker}+ "'"

这是我想要完成的查询块。

    where f.ParentID=$P{qparam_PlanParent}
    and cpp.PeriodBeginDate>=$P{qparam_BeginDateString}
    and cpp.PeriodEndDate<=$P{qparam_EndDateString}
    $P!{qparam_CusipValue}
    $P!{qparam_TickerValue} ;

解决!

在Java专家的帮助下,我们提出了这个问题。

(($P{qparam_Ticker}==null) || $P{qparam_Ticker}.isEmpty())
? (
(($P{qparam_Cusip}==null) || $P{qparam_Cusip}.isEmpty())
? (
(($P{qparam_Desc}==null) || $P{qparam_Desc}.isEmpty())
? ""
: " and p.Description='" + $P{qparam_Desc} + "'"
)
: " and cpp.SecurityId='" + $P{qparam_Cusip} + "'"
)
: " and p.Ticker='" + $P{qparam_Ticker} + "'"

检查要填充的条件,然后将相应的语句分配给查询块。

0 个答案:

没有答案
相关问题