帆软 FineReport 动态列如何设置
背景介绍
最近有个需求是用采购的帆软报表来动态展示数据,记录下来,方便备查。 环境准备 帆软 FineReport V9.0 以用户信息统计表为例,具体操作步骤如下。
第一步、设置查询信息集
新建信息集 Data,在编辑栏中 输入查询的SQL,查询 tb_user 表,其中 ${cols} 为变量,可以在 定义其的数值。
// ${cols} 表示列
SELECT
${cols}
FROM
tb_user
GROUP BY
${cols}
定义变量${cols} 即 tb_user 表中想动态展示的列,设置如下图所示。
第二步、设置复选框数据集
新增 复选框控件 clos ,设置 数据字典,这里选择自定义,手动添加 页面显示值与实际对应值的关系,即 tb_user 表中要动态显示的列。==注意 实际值要与上一步 ${cols} 给定的值一致。== 设置完成,切记要点击保存,在本地预览效果,复选框的值选项便添加成功了,效果如下图所示。
第三步、数据绑定
完成上面两个步骤,接下来绘制报表,拖动左侧子查询的列,到右侧的编辑区域,效果如下图所示。 报表上添加了 制表时间 添加公式,获取当前为其值,右侧编辑栏,插入元素-插入公式。 设置公式,点击 检查合法性,来验证写入的公式是否正确。 在预览页面,查看数据绑定是否成功,点击查询后,数据展示出来,但只选中 用户名 和 性别两列,但把所有的结果都查询出来了,如下图所示。
第四步、设置动态列属性
接上面的问题,==如何让选择的列显示,其他的列不显示呢?== 以第一列为例,选中 展示列,右侧 编辑栏,添加条件属性,重命名为 用户名。 选择列宽,新增一行 ==列宽为0==,类型选择 公式。 公式中运用 函数 INARRAY 来匹配是否存在。==记得要点击添加,保存到下方区域==。
INARRAY('username', $cols) = 0
在页面预览,再次查看效果,只展示出选择的 用户名和性别,如下图所示。
第五步、页面显示转换
接第四步、页面显示的性别是1和2,如何让他们显示为男或女呢? 选中 数据栏单元格,右侧编辑栏,切换到 形态页签,选择数据字典,这里还是选择自定义,手动输入对应关系,1-男 2-女,保存,如下图所示。 重新回到预览页面,查询效果,如下图所示。
动手试试,有问题的可以下面留言哦~
参考博客
【1】https://help.finereport.com/finereport9.0/doc-view-1845.html