FineReport 11.0学习笔记3:数据查询与过滤基础

楼主
我是社区第1285179位番薯,欢迎点我头像关注我哦~

数据查询与过滤练习:

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 文件上传提交任务

保存报表,并点击 页面预览:

这时候我们会发现,当选择华北时,显示如下:

当不选择时,显示如下:

这就完成了本次的练习。

(全文完,谢谢阅读)

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 5024浏览人数
最后回复于:2022-11-20 21:44

返回顶部 返回列表