FineReport学习-练习04-参数联动

题目

模板效果:
在这里插入图片描述

在这里插入图片描述

实现功能:
班级,学号实现参数联动
班级为下拉框,学号为复选框,使用sql中定义参数
实现参数为空选出全部的功能,班级为空选出全部班级,学号为空,选出班级下的所有学生
选出全部班级时数据按班级分组显示
实现页面数据居中显示
使用数据:
FRDemo中的Stscore表

解题过程

1.创建数据集ds1

select * from Stscore
where 1=1
 ${if(len(CLASSNO) == 0,"","and CLASSNO = '" + CLASSNO + "'")}
 ${if(len(STUDENTNO) == 0,"","and STUDENTNO in ('" + replace(STUDENTNO,",","','") + "')")}

由于参数控件为复选框,因此数据集中参数需用 in 语句
在这里插入图片描述

2.设计表格

设计表格样式并将对应字段拖入对应单元格
在这里插入图片描述

单元格属性设置

单元格属性设置
A1动态班级名称显示, 插入公式:=$$classno ;扩展方向:纵向;父子格:自定义跟着A2
B2课程名称显示; 扩展方向: 横向;父子格:默认
A3学生姓名显示; 扩展方向:纵向;父子格:默认
B3学生成绩显示;扩展方向:纵向;父子格:默认

3.新建参数模板

在这里插入图片描述

3.1 添加参数控件

编辑参数面板,点击右侧控件设置上方的全部添加,生成参数控件,点击classno参数,选择单选控;点击studentno参数框,选择下拉复选框控件。
在这里插入图片描述

3.2 添加参数框选项数据集

3.2.1 班级号选项 classno

新建数据集 classno,SQL语句:select distinct classno from stscore, 因为地区是第一个参数,可以任意选择,所以不需要联动过滤,此处distinct 关键字是为了去重
在这里插入图片描述

3.2.2 学号选项 studentno

新建数据集 学号选项,SQL 语句为:

select distinct studentno from stscore 
where 1=1
${if(len(classno)== 0,"","and classno = '"+classno + "'")}

因为学号需要根据班级值的不同显示相应学生姓名,所以需要设置classno作为过滤参数,如下图所示
在这里插入图片描述

3.3 设置参数控件的数据字典

1)选择 classno 单选控件 设置数据字典
在这里插入图片描述

2)选择 studentno 复选框控件 设置数据字典
在这里插入图片描述

3.4 设置页面居中在这里插入图片描述

效果预览

复选
在这里插入图片描述
单选某个班级
在这里插入图片描述
全部不选中
在这里插入图片描述

(回复一下,很多人在评论里面问 为什么没有分组,要注意检查一下学号是否设置了左上父格都用的班级号所在格子)

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值