ssrs 2008级联参数

时间:2013-01-23 22:00:43

标签: sql sql-server-2008 reporting-services ssrs-2008

我目前正在使用带有SQL Server Report Service 2008的SQL 2008 R2。我正在创建一个包含以下参数的报告 - Staff_name,Client_name,Lab,lab_date等。当用户选择Staff名称时,他们所服务的客户端将填充一个下拉菜单让他们选择,这很好。当用户选择客户端时,客户端实验室将填充实验室下拉列表。我有一个SP,它返回所选实验室的实验室数据集的值,如果选择了“新实验室”,则返回空值。问题是,如果我默认参数Lab下面的参数,例如。 Lab_date,使用sp中的相应变量然后选择Lab,然后选择“新实验室”,Lab_date不会为空。

IF @ClientLabId <> 'New Lab' BEGIN
SELECT 
cc.Date_Lab_Test_Ordered, cc.Ordering_Provider, cc.Provider_Specialty, 
cc.Provider_Contact, cc.Desc_of_Order, cc.Date_Order_Filled, 
cc.Date_Receipt_Verified
FROM CCMT_Lab_Test_Orders_Tracking cc
WHERE cc.Client_Lab_Id = @ClientLabId 
AND cc.RecordDeleted = 'N'
END
IF @ClientLabId = 'New Lab' BEGIN
SELECT ' ',' ',' ',' ',' ',' ',' '
END

我尝试过NULL,'',''只要您没有选择实际的实验室,报告就会显示这些值。我知道SP的第一部分在SP设置为默认值时发送数据。这是“新实验室”部分,我无法弄清楚当擦除后选择“新实验室”时我需要发送给SSRS以获取值。我们希望员工不必重新输入两次数据,并尽可能消除数据中的错误。

作为一个想法 - 有没有办法强制报告在执行后完全刷新。每次用户点击查看报告时,只需刷新报告,而不是退出报告并返回报告?

2 个答案:

答案 0 :(得分:1)

您缺少列名称。试试:

SELECT 
' ' as Date_Lab_Test_Ordered, ' ' as Ordering_Provider, ' ' as Provider_Specialty, 
' ' as Provider_Contact, ' ' as Desc_of_Order, ' ' as Date_Order_Filled, 
' ' as Date_Receipt_Verified

答案 1 :(得分:0)

在查看不同的论坛并与几位IT专业人士交谈之后,我决定创建两个单独的表单。一个用于插入,一个用于更新,因为SSRS似乎没有执行单个表单的功能。