找回密码
 立即注册

QQ登录

只需一步,快速开始

工作狂:

注册会员

9

主题

42

帖子

179

积分

注册会员

积分
179
最新发帖
工作狂:
注册会员   /  发表于:2024-2-28 08:28  /   查看:2463  /  回复:5
怎样在矩表\数据集或sql过滤没有默认值的日期范围

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2024-2-29 11:55:31
来自 6#
本帖最后由 Eden.Sun 于 2024-4-30 15:28 编辑
工作狂: 发表于 2024-2-29 09:14
"SELECTmo.`创建时间`
FROM
`生产单主表` AS mo
************************************************最佳答案********************************************
您好,可以参考下面的写法,下面的写法我用的是AR16:

  1. 桌面设计器:
  2. ="select * from 销售明细 where 1=1 " & IIF(IsNothing(Parameters!开始日期.Value) or IsNothing(Parameters!结束日期.Value), "", " and 订购日期 between  '" & Format(Parameters!开始日期.Value, "yyyy-MM-dd") & "' and '" & Format(Parameters!结束日期.Value, "yyyy-MM-dd") & "'")

  3. web设计器:
  4. select * from 销售明细 where 1=1 {IIF(IsNothing(@开始日期) or IsNothing(@结束日期), "", " and 订购日期 between  '" & Format(@开始日期, "yyyy-MM-dd") & "' and '" & Format(@结束日期, "yyyy-MM-dd") & "'")}

复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1满意度 +5 收起 理由
工作狂: + 5

查看全部评分

回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-2-28 09:17:34
沙发
问题描述:报表参数过滤,默认值查询。


问题解决:
您好,这个做不到的。您也说了要根据范围过滤。那么参数没有值的话,这个过滤范围是无法确定的
如果您不想给参数设置默认值的话那就需要在设置矩表过滤条件的时候进行设置,给参数一个默认值:
比如下面这个:{IIF(@p1="", "vl", @p1)}    当参数 p1 的值是空串时,我给一个默认值v1



如果您使用的是sql的话,这个可以使用动态sql来处理,
您可以参考这篇帖子:https://gcdn.grapecity.com.cn/showtopic-84469-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
工作狂:
注册会员   /  发表于:2024-2-28 11:13:04
板凳
本帖最后由 工作狂: 于 2024-2-28 11:14 编辑
Eden.Sun 发表于 2024-2-28 09:17
问题描述:报表参数过滤,默认值查询。

时间范围没有选择的时候,有数据.但是选择了日期范围就没有数据了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2024-2-28 11:42:27
地板
工作狂: 发表于 2024-2-28 11:13
时间范围没有选择的时候,有数据.但是选择了日期范围就没有数据了

您好,可以用文本框绑定报表参数看看,预览先看看报表参数的值是否和您实际数据一样,目前怀疑是参数数据不对影响的,可以从这个角度去排查一下。如果确认是这个原因,可以使用format函数设置一下报表参数的格式和实际数据一样吗,然后再做过滤。
回复 使用道具 举报
工作狂:
注册会员   /  发表于:2024-2-29 09:14:11
5#
Eden.Sun 发表于 2024-2-28 09:17
问题描述:报表参数过滤,默认值查询。

"SELECTmo.`创建时间`
FROM
`生产单主表` AS mo
WHERE
1 = 1" &
IIF(Parameters!生产日期 1.Value = "" OR Parameters!生产日期2.Value = "",sql," and mo.`创建时间`>='" & Parameters!生产时间1.Value & "'" & " and mo.`创建时间`<='" & Parameters!生产时间2.Value & "'" & " " )                   使用动态sql验证会报错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部