将组合框参数添加到iReport的报告中

时间:2012-12-13 14:56:12

标签: parameters jasper-reports ireport jasperserver

iReport 4.8.0 中,我想让用户从Combobox / list / Dropdown / collection(无论你选择什么)中选择一个参数值,并插入他选择的值进入查询。

我已经创建了一个字符串参数,在我预览报表并将字符串插入查询时会提示。它工作得很好,但现在我需要定义一个组合框。

我需要提供城市名称,所以我的查询是:

SELECT
  COUNT(leads.`status`) AS Number_Of_Status,
  leads.`status` AS leads_status,
  leads.`primary_address_city` AS leads_primary_address_city,
  leads.id AS lead_id
FROM
      `leads` leads
 WHERE
      leads.`primary_address_city` = $P{city_combobox}
 GROUP BY
      leads.`status`

我尝试将city_combobox参数设为java.util.List但我收到Parameter type not supported错误,而且我也不知道将字符串加载到其中的位置。

我对 JasperReports Server 一无所知,我没有安装它,只安装了 iReport ,最多知道我用它做了一切。

所以我只想在 iReport 中找到一种方法,而不需要 JR Server 的输入控件。对于我来说,只需在报告框中提供手动插入的值就足够了,它甚至不必是查询。例如,将“NY”,“Miami”,“Washington”插入到列表参数中,但是我该如何以及在何处执行此操作?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。事实证明,zuckerreport基于jasperreport服务器,因此也可以添加输入控件。

解决方法是将“city_combobox”参数创建为字符串参数,并保持查询不变,就像上面给出的示例一样。这就是IReport。

在zuckerreport中,添加一个名为city_combobox的“默认参数名称”参数。

对于下拉参数选择“用户定义查询”类型的参数,并使用查询填充“参数设置”和“用户定义查询”字段,该查询将使用值列表填充下拉列表,例如:

SELECT DISTINCT leads.primary_address_city AS leads_primary_address_city 从 领导

如果您看不到“参数设置”和“用户自定义查询”字段(在zuckerreport的新版本中它们被隐藏),那么

需要在zuckerreport的editview代码中手动添加此代码。 在modules / zr2_ReportParameter / metadata / editviewdefs.php中添加此代码:

5 =>         阵列(             0 => 'range_options',   ),

现在重建,然后你会看到隐藏的字段。

使用菜单上的“jasperReports Template”创建一个新模板,模板实际上是报告:

一个。选择模板的名称,然后选择报告的jrxml文件。 湾选择PDF,Excel和HTML。 C。保存

在报告和参数之间创建一个新的参数绑定: 一个。按“创建” 湾参数名称必须是IReport中的确切参数名称。 C。选择报告和参数,无需选择“绑定到模块”

将报告的.jasper文件复制到SugarCRM中的custom / zuckerreports2 / resources中。 转到“按需报告”,选择报告并显示参数。

你去吧! :)