【FineReport】下拉框与复选框之间参数联动
【FineReport】下拉框与下拉复选框之间参数联动
描述
1,CLASSNO下拉框可以选择班级,STUDENTNO复选框可以选择该班级的学生,可全选或者不选。
2,当不选CLASSNO时,复选框可显示全部学生,可全选或不选。
实现
Demo 使用FineRepor自带的数据表:Stscore表
1,创建数据集,创建两个数据集:
第一个数据集查询所有字段。
SELECT * FROM STSCORE
第二个数据集控制筛选的STUDENTNO。
当CLASSNO为空时,Where 1=1,查询所有STUDENTNO。
当CLASSNO不为空时,筛选相应CLASSNO的STUDENTNO。
SELECT STUDENTNO FROM STSCORE
where 1=1
${if(len(CLASSNO) == 0,"","and CLASSNO = '" + CLASSNO + "'")}
2,创建模板参数:STUDENTNO,第二个数据集已经创建了参数CLASSNO。将两个参数添加到参数面板,CLASSNO使用下拉框控件,STUDENTNO使用下拉复选框控件。如下图:
3,对控件绑定数据,
CLASSNO直接与Stscore进行绑定
STUDENTNO与STUDENTNO数据集进行绑定
4,表样设计,单元格数据过滤
表样设计如图
对A1单元格过滤,用CLASSNO过滤。
对A4单元格的形态做修改,实际值是STUDENTNO,显示值是NAME。
对A4单元格进行过滤,使用包含于STUDENTNO。
效果
实现的方式应该不止一种,有更好的方法,可以互相分享。