Reporting services SSRS-仅允许在一个参数中输入数据

Reporting services SSRS-仅允许在一个参数中输入数据,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我有一份有3个参数的报告。问题是,我只希望将数据输入其中一个参数。如果数据存在于多个参数中,我希望最终用户得到一条警告消息。这背后的原因是,根据包含数据的参数,它会创建一个单独的临时表来编译结果数据。如果输入多个,则会锁定SQL server。 我在SQL 2008上。我怎样才能做到这一点 以下是我在ssrs中的参数: …这是我的存储过程。如果其中一个参数包含值,则会将空值传递给其他两个参数 CREATE PROC [dbo].[uspS_SerialNumberLookupReport] @

我有一份有3个参数的报告。问题是,我只希望将数据输入其中一个参数。如果数据存在于多个参数中,我希望最终用户得到一条警告消息。这背后的原因是,根据包含数据的参数,它会创建一个单独的临时表来编译结果数据。如果输入多个,则会锁定SQL server。 我在SQL 2008上。我怎样才能做到这一点

以下是我在ssrs中的参数:

…这是我的存储过程。如果其中一个参数包含值,则会将空值传递给其他两个参数

CREATE PROC [dbo].[uspS_SerialNumberLookupReport] @_SalesOrder AS VARCHAR(10) ='', @_AQNum AS VARCHAR(10) ='', @_Serial AS VARCHAR(10) =''
AS


IF OBJECT_ID('tempdb..#SerialNumberLookupReport') IS NOT NULL
DROP TABLE #SerialNumberLookupReport

CREATE TABLE #SerialNumberLookupReport
(Company varchar(1),
 Serial varchar(15),
 StockCode varchar(30),
 Description varchar(50),
 SalesOrder int,
 OrderDate datetime,
 ReqShipDate datetime,
 CustomerPoNumber varchar(10),
 CustomerName varchar(50),
 ShippingInstrs varchar(50),
 ShippingCarrier varchar(50),
 ShippingLink varchar(1000))

INSERT INTO #SerialNumberLookupReport

EXEC uspS_SerialNumberLookupX @SalesOrder=@_SalesOrder, @AQNum=@_AQNum, @Serial=@_Serial

INSERT INTO #SerialNumberLookupReport

EXEC uspS_SerialNumberLookupE @SalesOrder=@_SalesOrder, @AQNum=@_AQNum, @Serial=@_Serial

SELECT DISTINCT
   Company
  ,Serial
  ,StockCode
  ,Description
  ,SalesOrder
  ,OrderDate
  ,ReqShipDate
  ,CustomerPoNumber
  ,CustomerName
  ,ShippingInstrs
  ,ShippingCarrier
  ,ShippingLink
 FROM #SerialNumberLookupReport

您可以使用两个参数,例如

回答评论: 您可以将现有参数用作变量,如:

 create proc some_stored_proc
(@id_type varchar(30) , @value varchar(50))
as

    declare 
    @SalesOrder varchar(50) null,
    @Serial varchar(50) null,
    @AQ varchar(50) null

    if @id_type = 'Sales Order#'
    set @SalesOrder = @value
    else 
    if @id_type = 'Serial#'
    set @Serial = @value
    else 
    if @id_type = 'AQ#'
    set @AQ = @value

您可以使用两个参数,例如

回答评论: 您可以将现有参数用作变量,如:

 create proc some_stored_proc
(@id_type varchar(30) , @value varchar(50))
as

    declare 
    @SalesOrder varchar(50) null,
    @Serial varchar(50) null,
    @AQ varchar(50) null

    if @id_type = 'Sales Order#'
    set @SalesOrder = @value
    else 
    if @id_type = 'Serial#'
    set @Serial = @value
    else 
    if @id_type = 'AQ#'
    set @AQ = @value

好主意。如何编辑此方法的报告和查询?现在它使用一个带有这3个参数的proc。我做了一个更新,但我不确定这种方法是否适用于您。谢谢您的输入。我尝试了这个方法,但不幸的是,它无法将值传递给我现有的存储过程。好主意。如何编辑此方法的报告和查询?现在它使用一个带有这3个参数的proc。我做了一个更新,但我不确定这种方法是否适用于您。谢谢您的输入。我尝试了这个方法,但不幸的是,它无法将值传递给现有的存储过程。