社区
图表区
帖子详情
Range类型的参数怎么传递给存储过程
cleverwyq
2010-10-25 11:05:18
我在Report Designer中加了一个Date Range型的参数, report的数据源是一个存储过程
请问如何把这个参数传递给存储过程呢
...全文
175
11
打赏
收藏
Range类型的参数怎么传递给存储过程
我在Report Designer中加了一个Date Range型的参数, report的数据源是一个存储过程 请问如何把这个参数传递给存储过程呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cleverwyq
2010-10-25
打赏
举报
回复
Name: MyDate Type:Date
Allow custom values: True
Allow multiple values:False
allow discrete values:False
allow range values : True
int64
2010-10-25
打赏
举报
回复
没有过,学习
cleverwyq
2010-10-25
打赏
举报
回复
不好意思, 是Crystal report
阿泰
2010-10-25
打赏
举报
回复
报表工具是什么?
阿泰
2010-10-25
打赏
举报
回复
DateFrom=Minimium({参数})
DateTo=Maximium({参数})
要用到这个参数,就要去掉你存储过程里的参数。
这样你首先需要在选择专家里,进行第一次数据过滤。也就是
日期字段<=DateTo
这个过滤式报表级的
然后可以做一个公式字段x1,把 日期字段>=DateFrom 和 日期字段<DateFrom分出来
做一个公式
if 日期字段< Minimium({参数}) then
1
else
2
然后按照这个x1分组,把数据分成两个不同的部分,就可以进行一些处理了。
cleverwyq
2010-10-25
打赏
举报
回复
阿泰的意思我懂了。
我想问的是假如 我的报表只能带一个参数,而且是range类型的
Command里面的那两个DateFrom, DateTo是局部变量, 不是传入的参数,
那么有办法从range类型的参数中分解出DateFrom, DateTo吗 ?
打扰阿泰很久了,呵呵, 马上结贴
阿泰
2010-10-25
打赏
举报
回复
前面说了。。你存储过程里用了时间参数,你就用不上这个区间参数。
存储过程的参数会自动在报表里生成对应的参数,而且是两个参数。
这种情况让报表参数去改,别折腾了,这个在报表层面上限制死了干啥。。人为增加开发难度
可以在前置界面上限制,传到报表里是两个参数上面啊。
话说。。你
“写了两个command, 分别处理CreateDate >= DateFrom and CreateDate <= DateTo 和 CreateDate < DateFrom 的, 再join一下”
这个跟直接写个CreateDate <= DateTo有啥区别。。返回的结果都一样,无非就是可以加个FLAG字段区别下数据部分,这个在报表里直接也能做。
cleverwyq
2010-10-25
打赏
举报
回复
我是写了两个command, 分别处理CreateDate >= DateFrom and CreateDate <= DateTo 和 CreateDate < DateFrom 的, 再join一下
Report的 参数形式是我这个系统传给我的, 限制死的, 必须是区间参数
救命阿。。。
阿泰
2010-10-25
打赏
举报
回复
那你写了这个command,CreateDate >= DateFrom and CreateDate <= DateTo 的话已经把数据都处理掉了
又哪来的CreateDate < DateFrom这部分数据?
要不你就直接在存储过程里只处理CreateDate <= DateTo部分
然后在报表里在分开处理
CreateDate >= DateFrom 和CreateDate < DateFrom 这两部分呗
这样的话就用两个单独的时间参数,不要用区间参数
cleverwyq
2010-10-25
打赏
举报
回复
谢谢阿泰兄
我开始也是这么做的,在专家里面过滤掉不需要的数据。
但是我碰到的问题是 我需要一个起始时间 DateFrom ,终止时间DateTo
我的数据库里面有一个叫 CreateDate, 类型是DateTime的字段
我需要对 CreateDate >= DateFrom and CreateDate <= DateTo 的记录做处理
但是 对 CreateDate < DateFrom的记录也要做其他处理。
如果在专家里做,< DateFrom 的数据就没有了。
所以我写了一个Command, 一定需要知道 这两个时间点,我就是不知道如何在SQL中把Crystal Reports中
Range类型的变量拆开, 类似CR中Maximum这样。
阿泰
2010-10-25
打赏
举报
回复
说到存储过程,假设你用到的是PULL模式直连数据库
如果你存储过程里面就带了两个参数的话,应该是用不上你定义的这个日期参数的
因为存储过程里的参数,会自动成为水晶报表的参数,后面的交互中,要用两个参数与数据库(存储过程)交互。
如果不带的话,那么可以使用选择专家,输入以下公式:
{字段} >= Minimium({参数}) and {字段} >= Maximium({参数})
注意Minimium({参数}) 和{字段} >= Maximium({参数})是区区间参数的两个边界值。
ADOQuery 执行
存储过程
并取的输出
参数
本文介绍如何使用ADOQuery组件在Delphi中执行
存储过程
,并获取输出
参数
的值。通过实例演示了在SQL Server中创建
存储过程
,设置输入
参数
,以及在Delphi中调用该
存储过程
并读取输出
参数
的过程。
oracle PL/SQL
存储过程
本文深入探讨了SQL
存储过程
的概念、定义、
参数
类型
(输入、输出、输入输出),并提供了实例演示如何创建和执行不同
类型
的
存储过程
。通过具体代码示例,详细解释了如何在命令窗口编译和执行
存储过程
。
python
存储过程
_python学习笔记(75)
存储过程
本文深入探讨了SQL
存储过程
的概念,包括创建、调用
存储过程
的语法,并通过实例展示了如何
传递
参数
、处理异常及使用游标。同时,讨论了动态执行SQL的安全性及其在事务处理中的作用。
让你 Oracle 的
存储过程
与Java代码开始进行交互
本文详细介绍了Oracle
存储过程
的定义格式及如何通过Java进行调用,包括
存储过程
的
参数
传递
方式、异常处理机制以及Java调用的具体步骤。
myBatis调
存储过程
(有
参数
有返回值)
本文介绍了一个用于表单升级的
存储过程
,并详细展示了如何使用MyBatis框架来调用该
存储过程
,包括从Controller到Service再到DAO层的实现方式。
图表区
4,818
社区成员
14,134
社区内容
发帖
与我相关
我的任务
图表区
.NET技术 图表区
复制链接
扫一扫
分享
社区描述
.NET技术 图表区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章