zoukankan      html  css  js  c++  java
  • 报表中常见模糊查询实现

    用户在使用报表查看数据时,除过使用完整的值作为参数值的场景,也有不少需要通过模糊条件实现数据过滤查询的场景。
    例如,在查询订单信息时,查询所有联系人姓刘的客户的订单,此时,就需要通过模糊匹配查询。
    通常的场景有以下几种:
    1.数据集中添加模糊过滤参数;
    2.表格条件过滤;
    3.模糊查询,输入参数值之后,根据参数显示查询结果;
    4.模糊查询不输入参数显示全部;


    一.共享数据集添加模糊过滤参数
    1.在数据集中添加过滤参数,参数类型为用户输入参数;


    2.将参数添加到结果集的过滤器上;

    3.通过该数据集创建报表,报表中出现 "姓氏"参数,设计完报表后预览,即可实现模糊查询效果。




    二、表格和矩表的模糊条件过滤
    1.设计表格,绑定数据。
    2.选中表格,在属性面板中数据选项下添加数据过滤条件;



    过滤条件字段为:客户姓名
    【数据】为:羊*,即姓羊的客户。
    模糊条件在中间位置:*羊*;
    模糊条件在最后:*羊;
    原理和SQL中like语法一致。
    在矩表中也是相同的做法。

    除过以上方式外,可以通过内嵌数据集,使用sql语句来实现更多的模糊查询场景。

    三.模糊查询,输入参数值之后,根据参数显示查询结果
    1.定义参数,并添加内嵌数据集;

     


    以 姓氏开头:select * from 订单表 where 联系人 like + @姓氏 + '%'
    包含某个字符串为:select * from 订单表 where 联系人 like + '%' + '羊' + '%'
    2.将字段绑定到对应组件上,即可实现模糊查询。

    四.模糊查询不输入参数显示全部
    1.不输入参数时显示全部,输入参数后,模糊查询。
    操作步骤和上个情况类似,动态SQL的写法:
    ="select * from 销售明细 where 1=1" & IIF(Parameters!姓氏.Value="",""," and 客户姓名 like '") & Parameters!name.Value & "%'"
    含义:默认未输入参数时,执行select * from 销售明细 where 1=1语句,显示全部结果。
    输入参数值时,执行含参的完整语句。

    2.多条件动态模糊匹配:模糊查询的条件有多个,默认显示全部。
    多个模糊条件通过IIF表达式来判断返回值,根据是否有参数值生成对应的SQL语句。
    ="select * from 销售明细 where 1=1" & IIF(Parameters!area.Value="",""," and 货主地区 like '%" & Parameters!area.Value & "%'") & IIF(Parameters!city.Value="",""," and 货主城市 like '%" & Parameters!city.Value & "%'")

  • 相关阅读:
    Python 模块chardet安装 setup.py
    Windows下Python安装lxml
    intellij idea 如何更改比编辑器文本字体和大小
    [转]C#设计模式(8)-Builder Pattern
    [转]C#设计模式(4)-Simple Factory Pattern
    [转]C#委托的异步调用
    [转]浅谈C#中常见的委托
    C# 线程池
    [转]C#中的委托和事件(续)
    C#(.net)中的DllImport
  • 原文地址:https://www.cnblogs.com/edoo/p/13446572.html
Copyright © 2011-2022 走看看