FineReport 11.0学习笔记3:数据查询与过滤基础
数据查询与过滤练习:
1)下载附件文件任务DAY3.cpt,并在设计器内打开
下载链接:https://bbs.fanruan.com/ueditor/php/upload/file/20221114/1668401045477947.cpt
设计器关闭原有项目,打开该cpt文件:
2)为模板设置参数,参数命名为“货主地区”
点击 菜单中的模板-》模板参数:
在弹出的页面中点 +,在下面输入 货主地区,点击确定:
3)参数面板处添加下拉复选框控件并绑定参数
点击下图中 参数面板中 箭头的编辑图标:
在右边会弹出以下页面:
点击全部添加:
在参数面板中会出现 上图三个箭头区域,适当调整三个部分的位置。
4)设置下拉框控件的数据字典为FRDemo中的数据列“货主地区”
点击第二个控件,在弹出的图标列表中选择第三个图标 下拉框控件:
点击右边的数据字典 设置中的 ...
在弹出的菜单中依次按如下方式选择,并点击刷新按钮。等待刷新成功后,再选择 实际值和显示值为 货主地区:
点击确定。
5)设置筛选过滤,根据下拉框控件选择的内容能获取符合条件的数据
数据筛选过滤有三种方式:
(1)直接修改数据集为满足条件的数据
(2)通过数据列编辑过滤条件
(3)通过查询框过滤:先在数据集定义中通过SQL增加自定义参数,再在参数面板中增加参数空间进行过滤。
我们这里试一下第2种方法:
双击A2 订单ID 单元格,在弹出的数据列 菜单中,点击过滤sheet,并选择可选列为 货主地区,操作符为 等于,然后点击右边的 小按钮,会弹出以下页面:
选择参数,系统会弹出 参数,这里只有一个参数:货主地区(前面带了个$表示这是参数)。
点击+将其增加了过滤列表,点击确定。
点击保存,然后点击分页预览按钮:
这里会提示你把模板文件保存在当前运行环境目录,点击确定:
点击保存。
系统会出现以下预览页面:
选择货主地区为华北,点击查询:
切换到 华东,点击查询:
可见可以显示不同地区的内容。
6)设置参数为空时选择全部
参数为空时选择全部,指的是 如果不填参数,直接点查询,应该查询所有数据,所以一般的SQL语法是:
select * from 订单表 where 货主地区 = $货主地区
但是遇到参数为空时,SQL语法应该变为:
select * from 订单表
参数为空全部查询的实现方法有几种,这里我们对照上一步的实现方式,选择 模板参数 的方式实现。
这里就需要引入一个IF函数处理,并且提供一个nofilter,表示此时不需要过滤。
原来计算过滤的公式为 $货主地区
现在改为:if(len($货主地区)==0,nofilter,$货主地区)
我们前面在 如下的弹出页面中选择的是参数,现在改为公式:
并在公式设置页面中写入以下内容:
点击检查合法性:
确认公式没有问题后,点击确定。
在返回的过滤页面中,点击 增加,看到过滤列表有了刚才设置的过滤条件后,点击确定:
7)在本任务界面上传每个关键步骤截图以及最终预览效果截图,将完成后的 任务DAY3.cpt 文件上传提交任务
保存报表,并点击 页面预览:
这时候我们会发现,当选择华北时,显示如下:
当不选择时,显示如下:
这就完成了本次的练习。
(全文完,谢谢阅读)