Jasper reports 将值从一个JasperReports服务器输入控件传递到另一个输入控件

Jasper reports 将值从一个JasperReports服务器输入控件传递到另一个输入控件,jasper-reports,jasperserver,Jasper Reports,Jasperserver,我需要以某种方式在输入控件中实现层次结构。例如,用户需要选择某个组织,每个组织都有一些子组织,如果他在下拉列表中选择了组织,我需要显示所选组织的所有子组织,并且我必须在选择一个组织时保留选择所有子组织或仅选择一个子组织的可能性。同样,选择所有父组织的可能性必须存在。如何实现这一点,我已经探索了几乎所有的选项,我认为我的最佳选择是使用参数创建自己的JSP页面,有没有其他方法可以通过JasperReports服务器中已合并的输入控件实现这一点 我现在正在使用Jaspersoft Studio 5.6

我需要以某种方式在输入控件中实现层次结构。例如,用户需要选择某个组织,每个组织都有一些子组织,如果他在下拉列表中选择了组织,我需要显示所选组织的所有子组织,并且我必须在选择一个组织时保留选择所有子组织或仅选择一个子组织的可能性。同样,选择所有父组织的可能性必须存在。如何实现这一点,我已经探索了几乎所有的选项,我认为我的最佳选择是使用参数创建自己的JSP页面,有没有其他方法可以通过JasperReports服务器中已合并的输入控件实现这一点

我现在正在使用Jaspersoft Studio 5.6和JasperReports服务器


另外,父组织及其ID的列表是通过查询填写的,它不是硬编码的。

实际上很容易完成

假设您已经有了名为
Organization
的多选查询输入,它允许用户选择
组织名称
返回公司的“ID”号。让我们假设它看起来像这样:

 select 
 ORGANIZATION_NAME
 ,ID 
 from organization
 select 
 SUB_ORGANIZATION_NAME
 ,SUB_ORGANIZATION_ID
 ,ORGANIZATION_ID 
 from sub_organization
 where $X{IN,sub_organization.organization_id,Organization}
现在,您必须在
子组织
多选查询SQL中添加指向
组织
输入控件的where条件。您可以这样做:

 select 
 ORGANIZATION_NAME
 ,ID 
 from organization
 select 
 SUB_ORGANIZATION_NAME
 ,SUB_ORGANIZATION_ID
 ,ORGANIZATION_ID 
 from sub_organization
 where $X{IN,sub_organization.organization_id,Organization}
顺便说一句,在
where
子句中,我引用的是jasperserver输入控制参数的名称,witch返回所需的参数


希望这对您有所帮助;)

你试过这个方法吗?我不能让它工作,我一直在寻找一些sql异常,我已经做了你建议我做的事情。这就是我的JasperServer上输入参数的工作方式。。您是否在最高级别的输入参数中正确设置了值和可见列?现在没事了:)我已经放弃用{}来代替这个()谢谢你的帮助,别在里面提了。我真的很高兴,我帮了忙!