在报表展示过程中,参数联动通常依赖用户手动选择来触发。然而,当参数之间存在一一对应关系时,用户期望只需在参数面板中选择一次,后续数据即可自动关联显示,无需重复操作,类似填报界面的自动匹配效果。那么,如何实现这种自动联动?此外,还希望在首次打开模板时,隐藏后续联动数据前的标签内容,仅在条件满足时才动态显现。这一需求可通过合理的参数设置与控件属性配置达成。下面将以FineReport为例,介绍具体的实现步骤与配置方法,帮助提升报表交互体验与界面整洁度。
1、 选择客户名称后,在参数面板上显示对应信息。查询前仅展示客户名称下拉框,其余内容隐藏;点击查询后,报表呈现该客户的所有订单详情,所示。
2、 创建新模板
3、 创建模板数据集即执行数据库查询,使用SQL语句SELECT * FROM 表名来获取全部数据。
4、 在模板参数中定义id:进入模板,添加新的模板参数id。
5、 参数面板布局
6、 控件参数设置
7、 添加参数id生成下拉框控件,将id标签重命名为客户名称,并配置对应的数据字典内容。
8、 联动控件配置方法
9、 在参数面板上通过标签控件展示客户详细信息。
10、 新增两个标签,其中一个是固定标签,将其控件名称设为name,控件值设定为联系人姓名;另一个为动态标签,其控件值通过公式实现:sql(FRDemo, select 联系人姓名 from 客户 where 客户ID= + \$id +, 1, 1),用于根据客户ID动态查询并返回对应的联系人姓名,确保数据实时准确。
11、 同样地,配置联系人职务、地址及电话等标签后,参数面板将显示如下内容。
12、 隐藏标签设定
13、 为实现打开模板时仅显示下拉框而隐藏其他标签,需将所有固定标签的可见属性取消勾选,使其不可见。当下拉框编辑完成后,需重新显示参数面板中的标签。可通过在下拉框控件中添加编辑后事件,并编写相应代码,使标签在操作后恢复显示,从而达到动态控制界面元素展示的效果。
14、 代码中的name为固定标签控件名称,需控制多个标签时,须重复编写相应代码,仅控件名依次对应,最终参数面板设置所示。
15、 报表结构设计
16、 见下图所示
17、 在A2单元格设定模板参数筛选条件。
18、 预览中已保存
19、 保存模板后,点击分页预览即可查看效果。
