我目前正在使用带有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以获取值。我们希望员工不必重新输入两次数据,并尽可能消除数据中的错误。
作为一个想法 - 有没有办法强制报告在执行后完全刷新。每次用户点击查看报告时,只需刷新报告,而不是退出报告并返回报告?
答案 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似乎没有执行单个表单的功能。