动态表和动态条件

编辑
  • 文档创建者:加菲喵
  • 浏览次数:37496次
  • 编辑次数:22次
  • 最近更新:Kevin-s 于 2019-05-31
  • 1. 描述

    在数据集查询中,数据表,数据列以及条件都可以是动态的,下面我们来介绍动态数据表和动态条件,动态数据列 实现方式有两种,下面有章节专门介绍。

    2. 动态表

    若数据库中存在两张表,如何实现不同的人根据需要选择不同的表进行查看,从而提高查询效率呢?

    2.1 实现思路

    在定义数据集时,通过if 函数来判断参数的值从而来实现调用不同的数据表

    如直接将 SQL 语句定义成:SELECT * FROM ${if(table='订单','订单','销量')},即若参数table='订单'时,查询的是「订单」表,若table!='订单'时,查询的是「销量」表。

    2.2 示例

    1)新建数据集

    新建数据集 ds1:SELECT * FROM ${if(table='订单','订单','销量')}

    2)模板设计

    将数据列拖入单元格中,报表样式设计如下:


    注:订单表中字段比较多,需要调整页面大小,在预览时才不会分页。具体设置可参考: 页面设置
    在 B3 单元格设置单元格属性-形态,选择数据字典,数据库为 FRDemo,数据库表为客户,实际值选择列名:客户 ID,显示值选择列名:公司名称


    在 E3 单元格设置单元格属性-形态,选择数据字典,数据库为 FRDemo,数据库表为运货商,实际值选择列名:运货商 ID,显示值选择列名:公司名称


    3)添加参数控件

    进入参数面板设置界面,在右侧的属性栏中点击全部添加:


    参数面板中会自动添加三个控件:


    点击中间的控件,选择文本控件


    4)添加条件属性

    右键 A1 单元格,选择条件属性,添加一个条件属性:行高为 0,类型选择公式,输入公式:LEN( A3 )=0,点击增加


    A2、A3 单元格设置同上,A4、A5、A6 单元格同样需要添加条件属性,需将公式改为:LEN( A6 )=0

    2.3 效果查看

    1)PC 端预览效果

    保存模板,点击分页预览,在文本控件中输入订单,点击查询即可查看到订单的数据,在文本控件中输入销量,点击查询即可查看到销量的数据:


    2)App 预览效果


    3)H5 预览效果


    3. 动态条件

    若您对表中的数据进行过滤时,查询条件是不确定的,有时候想用 A 列进行过滤,有时候想用 B 列进行过滤,此时要如何实现呢?

    3.1 实现思路

    在定义数据集时,将条件定义为两个参数,一个是数据表字段名,一个是字段值。

    如 SQL 语句定义成:SELECT * FROM 销量 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")}

    3.2 示例

    1)打开模板

    打开模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态表.cpt

    2)修改数据集

    将数据集 ds1 修改为:SELECT * FROM 销量 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")} ,如下:


    注:1=1 表示默认查询出全部信息。

    ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")}  表示定义两个参数 name 和 value,分别表示字段名和值。

    当参数框里都有值时,拼接上and条件,即 and name='value';当参数框里没有值时,拼接上空字符串。

    3)修改参数界面

    将参数界面的文本控件table的控件名改为 name,标签控件的控件值改为字段名:

    添加一个标签控件,控件值为:值:,添加一个文本控件 value,如下:


    4)修改模板

    删掉第1、2、3行,模板设置如下:


    3.3 效果查看

    1)PC 端预览效果

    保存模板点击分页预览,输入动态的查询条件如:字段名为【地区】,值为【华北】,便可以获取地区为华北的数据了,效果如下图:


     注:字段名框中输入的内容必须为数据表的字段名,否则报错!且两个框中都输入内容才可进行条件查询,否则查询全部信息。

    2)App 预览效果

    3)H5预览效果


    4. 已完成模板

    1)动态表

    在线查看模板效果请点击 动态表.cpt

    已完成模板,可参考:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态表.cpt

    点击下载模板

    2)动态参数

    在线查看模板效果请点击 动态条件.cpt

    已完成模板,可参考:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态条件.cpt

    点击下载模板


    附件列表


    主题: 参数入门
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]