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 & "%'")

  • 相关阅读:
    Thinking in Java Reading Note(9.接口)
    Thinking in java Reading Note(8.多态)
    Thinking in Java Reading Note(7.复用类)
    SQL必知必会
    Thinking in Java Reading Note(5.初始化与清理)
    Thinking in Java Reading Note(2.一切都是对象)
    鸟哥的Linux私房菜笔记(1.基础)
    Thinking in Java Reading Note(1.对象导论)
    CoreJava2 Reading Note(2:I/O)
    CoreJava2 Reading Note(1:Stream)
  • 原文地址:https://www.cnblogs.com/edoo/p/13446572.html
Copyright © 2011-2022 走看看