1

iReport 4.8.0中,我想让用户从组合框/列表/下拉列表/集合中选择一个参数值(无论您选择什么),他选择的值将被插入到查询中。

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

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

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参数 ajava.util.List但我得到Parameter type not supported错误,我也不知道在哪里将字符串加载到其中。

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

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

4

1 回答 1

0

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

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

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

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

选择 DISTINCT 线索.primary_address_city AS 线索_primary_address_city FROM 线索

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

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

5 => 数组 ( 0 => 'range_options', ),

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

使用菜单上的“jasperReports Template”新建一个模板,模板其实就是报表:

一种。为模板选择一个名称并选择报告的 jrxml 文件。湾。选择 PDF、Excel 和 HTML。C。节省

在报表和参数之间创建一个新的参数绑定: a. 按“创建” b. 参数名称必须是 IReport 中的确切参数名称。C。选择报表和参数,无需选择“绑定到模块”</p>

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

给你!:)

于 2012-12-17T16:04:03.277 回答