在iReport 4.01中将多个值传递给参数

时间:2014-05-05 11:54:12

标签: jasper-reports

正在处理 iReport 4.0.1

我可以将多个值传递给参数,如:

select name,id from temp where name in (xxx,zzz,yyy)

我可以使用 iReport 4.0.1 实现。我甚至尝试使用$X{In, column name, parameter name}这种语法但是不成功。

任何人都可以帮助我如何实现它

3 个答案:

答案 0 :(得分:0)

我解决了同样的问题如下:

select name,id from temp where name in ($P!{parameter_name})

答案 1 :(得分:0)

使用参数类<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" > <TextView android:id="@+id/option" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="15sp" /> </LinearLayout> 创建参数。让我们假设参数名称是 tmpNames 。 (https://demo.docusign.net/Member/StartInSession.aspx?StartConsole=1&t=<GUID>&DocuEnvelope=<ENVELOPEID>&send=1) 并将您的参数放入查询中,如下所示:

java.util.Collection

不要忘记将一组名称传递给$P{tmpNames}参数。

select name,id from temp where $X{IN,name,tmpNames};

答案 2 :(得分:0)

请按照以下步骤操作:

  1. 在Jasper报告中创建一个String参数,例如new List<Button>(){button1,button2,button3}.ForEach(item=>item.hide());

  2. 在Jasper Designer中准备查询,例如将传递参数设置为customers,在$ P之后输入$P!{customers}

    !
  3. 最后,像下面这样传递来自Java代码的字符串:

    SELECT
         *
    FROM
         tblInvoice
    WHERE
         date BETWEEN $P{startDate} AND $P{endDate}
    AND
         cust_name IN ($P!{customers})