zoukankan      html  css  js  c++  java
  • 多选参数可为空报表的实现方法

    如下图,


    需要实现通过在Wyn Enterprise可选参数为多值的时候,不选择参数值,默认查询全部数据,即允许多选参数为空。

    核心点:
    1.动态SQL:
    ="select * from 销售明细 where 1=1" & IIF(IsNothing(Parameters!p1.Value) OR JOIN(Parameters!p1.Value,"") = " ",""," and 销售大区 in ('" & JOIN(Parameters!p1.Value,"','") &"')"
    2.参数下拉项增加空字符串
    SQL:select ' ' 销售大区 union select distinct 销售大区 from Demo_销售明细 order by 1
    参考报表文件见本帖附件

    实现步骤:
    1.创建报表,添加报表参数;

    2.设置参数的可选值和默认值;
        添加数据集,作为地区参数的可选值数据来源:
        SQL:select ' ' 销售大区 union select distinct 销售大区 from Demo_销售明细 order by 1
        解释:由于多值参数为必选参数,因此在数据表distinct销售大区基础上添加一行空文本,变相实现可不选。

        参数下拉效果:
        

    3.在报表中添加动态SQL:
    ="select * from 销售明细 where 1=1" & IIF(IsNothing(Parameters!p1.Value) OR JOIN(Parameters!p1.Value,"") = " ",""," and 销售大区 in ('" & JOIN(Parameters!p1.Value,"','") &"')"
    解释:用IIF函数来判断参数是否为空或者空字符串,如果为真,则sql为select * from 销售明细 where 1=1,否者执行含参数值的完整SQL,
    例如:[size=13.3333px]select * from 销售明细 where 1=1 and 销售大区 in ('东北','华北','华东')
    [size=13.3333px]

    [size=13.3333px]    在报表中添加文本框,文本框中表达式和数据集中的动态SQL一致,目的是查看完整SQL的输出结果,排查sql的错误。
    [size=13.3333px]    参考动态SQL排错:https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=60214&extra=page%3D2

    4.添加表格,绑定数据,设计报表;


    5.预览效果

  • 相关阅读:
    javascript学习笔记
    c++输入文件流ifstream用法详解
    如何退出while(cin >> s)
    【赵渝强老师】利用Python完成数据分布特征的分析
    PG 的 AWR pg_profile
    java构建树形结构
    docker安装mongodb 数据备份和还原
    通过经纬度计算不同模型图瓦片坐标
    linux常用命令
    docker 常用命令
  • 原文地址:https://www.cnblogs.com/edoo/p/13919439.html
Copyright © 2011-2022 走看看