Reporting services SSRS-单击“查看报告”按钮将焦点返回到未设置值的参数

Reporting services SSRS-单击“查看报告”按钮将焦点返回到未设置值的参数,reporting-services,parameters,Reporting Services,Parameters,我正试图在ssrs2012中运行一个报告,它已经设置好了,所有代码在SSMS中运行良好。但是在SSRS中,我得到以下信息: 填写所有参数 新闻视图报告 出现以下内容: 如您所见,ToDate参数字段再次请求一个值。 以下是参数的代码: 财务参数 SELECT FiscalPeriodId ,FiscalPeriodName + ' - ' + [Status] + ' ' + Convert(varchar(15),ENDDate, 101) AS FiscalPerio

我正试图在
ssrs2012
中运行一个
报告,它已经设置好了,所有代码在
SSMS
中运行良好。但是在
SSRS
中,我得到以下信息:

  • 填写所有参数
  • 新闻视图报告

  • 出现以下内容:

  • 如您所见,ToDate参数字段再次请求一个值。 以下是参数的代码:

    财务参数

    SELECT  
        FiscalPeriodId
        ,FiscalPeriodName + ' - ' + [Status] + ' ' + Convert(varchar(15),ENDDate, 101) AS FiscalPeriodName   
        ,FiscalPeriodId AS OrderId
    FROM fin.FiscalPeriod 
    WHERE Status = 'Closed'  
        AND GeneralLedgerGroupId = @Location
    
    UNION 
    
    SELECT  
        FiscalPeriodId
        ,'Current'
        ,9999999 AS OrderId
    FROM fin.FiscalPeriod
    WHERE Status IS NULL 
        AND GeneralLedgerGroupId = @Location
    
    UNION
    
    SELECT 
        0 AS FiscalPeriodId
        ,'AS of Specified Date' AS FiscalPeriodName
        ,10000000 AS OrderId
    ORDER by OrderId DESC
    
    SELECT 
        CASE 
            WHEN fp.ENDDate IS NULL 
                THEN GETDATE()
                ELSE fp.ENDDate
            END AS ToDate
    FROM fin.FiscalPeriod fp
    WHERE FiscalPeriodID = @FP 
    
    UNION
    
    SELECT 
        CASE 
            WHEN @FP IS NULL 
                THEN GETDATE()
                ELSE NULL 
            END AS ToDate
    ORDER BY ToDate DESC
    
    日期参数

    SELECT  
        FiscalPeriodId
        ,FiscalPeriodName + ' - ' + [Status] + ' ' + Convert(varchar(15),ENDDate, 101) AS FiscalPeriodName   
        ,FiscalPeriodId AS OrderId
    FROM fin.FiscalPeriod 
    WHERE Status = 'Closed'  
        AND GeneralLedgerGroupId = @Location
    
    UNION 
    
    SELECT  
        FiscalPeriodId
        ,'Current'
        ,9999999 AS OrderId
    FROM fin.FiscalPeriod
    WHERE Status IS NULL 
        AND GeneralLedgerGroupId = @Location
    
    UNION
    
    SELECT 
        0 AS FiscalPeriodId
        ,'AS of Specified Date' AS FiscalPeriodName
        ,10000000 AS OrderId
    ORDER by OrderId DESC
    
    SELECT 
        CASE 
            WHEN fp.ENDDate IS NULL 
                THEN GETDATE()
                ELSE fp.ENDDate
            END AS ToDate
    FROM fin.FiscalPeriod fp
    WHERE FiscalPeriodID = @FP 
    
    UNION
    
    SELECT 
        CASE 
            WHEN @FP IS NULL 
                THEN GETDATE()
                ELSE NULL 
            END AS ToDate
    ORDER BY ToDate DESC
    

    我在网上搜索了一下,在
    Stackoverflow
    上发现了一个问题,似乎是同一个问题,但没有找到答案
    (2012)
    。有什么建议吗?

    我已经在某个地方读到了解决此问题的方法,您需要将结果插入默认参数的临时表中。我自己没有试过,但我想你不会有什么损失。to Date参数是否设置了可用值?猜测一下,按“查看报告”按钮似乎触发了级联参数,该参数将“截止日期”设置为会计期间的结束日期,而“截止日期”参数的值不可用,导致此参数要求您输入有效值。我似乎与默认值有冲突。我最后添加了另一个参数。更复杂,但它通过了代码审查。谢谢你给我指明了正确的方向。