皕杰技术社区

 找回密码
 立即加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2130|回复: 1

[分享] 皕杰报表动态传参数据集的两种方式

[复制链接]
发表于 2018-9-11 18:00:10 | 显示全部楼层 |阅读模式
1、用拼字符串的方式来拼接sql,可以实现你的需求例如:
参数:@diqu、@city
原数据集sql
  1. select * from 订单 where   货主城市=?  and 货主地区= ?
复制代码
你就可以改成拼接的方式来实现
数据集修改sql
  1. ="select * from 订单 where 1=1 "+if(@city=null,""," and 货主城市='"+@city+"'")
  2.   +if(@diqu=null,""," and 货主地区='"+@diqu+"'")
复制代码
然后数据集编辑-数据集参数,引用的参数删除掉。
表达式中 if函数 是我们皕杰报表自带的函数,在帮助文档-使用手册-函数介绍-内置函数-单元格函数 这个位置有介绍。
if(@city=null,""," and 货主城市='"+@city+"'")这个表达式的意思是:如果city参数值为null 就不拼接这个where条件;如果不为空,就拼接这个where条件。

 楼主| 发表于 2018-9-11 18:03:04 | 显示全部楼层
2、sql中 wherer条件 “or判断”  可以实现你的需求例如:
参数:@diqu、@city
原数据集sql
  1. select * from 订单 where   货主城市=?  and 货主地区= ?
复制代码
你就可以改成拼接的方式来实现
数据集修改sql
  1. select * from 订单 where   (货主城市=?  or  ?=null)  and (货主地区=?  or  ?=null)
复制代码
然后数据集编辑-数据集参数,引用的?号对应的参数。


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|皕杰软件 ( 京ICP备14050931号 )

GMT+8, 2024-4-27 13:24 , Processed in 1.117039 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表