数据库中有3个级别的数据,分别是地区,城市,以及客户名称,如果想实现同时选择查询出华东地区下所有公司以及北京的某个公司的数据,这个该怎么实现呢?下面通过excel报表FineReport来简单介绍一下。
前期准备工作(包括相关工具或所使用的原料等)
excel报表FineReport7.1.1大小:148.2M 适用平台:windows/linux详细的操作方法或具体步骤
数据准备
新建3个数据查询ds1,ds2,ds3
ds1:SELECT * FROM [客户]。
ds2:SELECT * FROM [客户] where 地区='${layer1}'。
ds3:SELECT * FROM [客户] where 城市='${layer2}',实际值为客户ID。
报表主体设计
报表主体设计如下图:

新建模板参数
切换到参数界面,点击菜单栏中的模板>模板参数,点击添加按钮,新建模板参数tree。
构建树
点击右侧下方的的按钮,然后将tree控件的类型选择为下拉树。
数据
选中下拉树控件,在控件属性面板中点击数据,开始构建树。
构建方式选择分层构建。
层次1:选择ds1,实际值和显示值都为地区。
层次2:选择ds2,实际值和显示值都为城市。
层次3:选择ds3,实际值为客户ID,显示值为客户名称。

属性设置
在高级里面勾选多选,即使用多选下拉树,如果不勾选,则为单选下拉树,其他属性默认。
结果返回完整层次路径
如果勾选该选项,那么,下拉树返回的值为完整的层次路径,在使用时需要通过treelayer函数进行获取最底层的值,如果不勾选,则可以直接使用,这里先勾选上。
过滤设置
参数界面和报表主体都设计好了之后,由于我们使用的是模板参数,需要通过参数将参数界面和报表主体联系起来,
双击A2单元格,在过滤属性中设置,客户ID包含于treelayer($tree),如下图:
注:公式treelayer($tree)的意思是返回参数tree中的值的最后一层数据。

如果在参数面板设置下拉树属性时没有勾选结果返回完整层次路径,那么其过滤设置如下图:

保存和预览
点击分页预览,则在BS端看到下图的效果

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
