SSRS添加日期参数会导致报告旋转和旋转

时间:2014-09-18 17:18:52

标签: reporting-services

这似乎很简单,我无法理解问题出在哪里。我之前已经这样做了,但最近没有这么做,所以我希望我错过了一些简单的事情。

我的2005 SQL框上有一个存储过程,它是一个简单的select语句,带有一些表连接以获取我需要的数据。

我想设置报表以使用变量@StartDate和@EndDate来提取发票日期。

当我在SSRS 2005中创建报表时,我知道我必须在报表向导的存储过程中声明并设置静态@StartDate和@EndDate值以允许其创建。

Declare @StartDate datetime
Declare @EndDate datetime

Set @StartDate = '2014-08-01'
Set @EndDate = '2014-08-31'

到目前为止,这一切都很好,我的报告已经创建,我可以在大约3秒内运行报告,并返回上个月预期的3000行数据。

问题发生在我从命令类型切换存储过程类型后:文本(它创建报告的默认类型)到存储过程并重新添加我的变量。(如果我把它留作文本,它会对我大喊大叫它期望参数@StartDate所以我知道我必须将它改为存储过程。

然后我进入存储过程并注释掉上面的4行并添加(在AS BEGIN之前):         (         @StartDate datetime,         @EndDate datetime         )

然后我进入我的报告菜单,并将StartDate和EndDate参数创建为DateTime。

接下来,我进入我的数据集属性,在“参数”选项卡中添加@StartDate,选择报表变量StartDate和@EndDate,指向刚刚在“报表”菜单中创建的EndDate变量。

现在,当我查看报告时会出现问题,我选择上次使用的相同日期并运行报告,但报告会旋转并旋转并且永远不会完成。

这让我发疯,因为我知道我以前做过这件事。

2 个答案:

答案 0 :(得分:1)

听起来您没有将开始日期和结束日期传递给存储过程,我怀疑它正在无条件地检索所有记录。

在存储过程中,您需要声明@StartDate@EndDate作为参数

CREATE PROC usp_someSP @StartDate date, @EndDate date
AS
BEGIN
    -- some code here .. select .....
END

在报告中,您传递开始日期和结束日期参数。

答案 1 :(得分:0)

它开始工作,我没有做任何改变。这就是我配置所有内容的方式:

存储过程声明变量:

Stored Procedure Declare Variables

存储过程条件:

Stored Procedure Where condition

SSRS报告参数:

SSRS Report Parameters

SSRS数据集参数:

SSRS Dataset Parameters