首页 > 解决方案 > 报告参数具有取决于报告参数的 DefaultValue 或 ValidValue。前向依赖无效

问题描述

在此处输入图像描述

ALTER PROCEDURE [dbo].[R$20_covid_application] 
    @Guarantors int,
    @CustNo int, 
    @Months tinyint = null 
WITH EXECUTE AS SELF
AS
BEGIN
    SET NOCOUNT ON;

    SELECT 
        L.CUSTNO
        ,CUST_NAME1
        ,CUST_NAME2
        ,CUST_NAME3
        ,CUST_NAME4
        ,L.BRANCH
        ,REFER_NO
        ,RIGHT('000000' + CONVERT(VARCHAR, L.CUSTNO), 6) + ' - ' + CAST(LOAN_PRODUCT AS CHAR(4))  + ' - ' + RIGHT('00' + CONVERT(VARCHAR, LOAN_ACC_SEQ_NO), 2) ACC_STR
        ,[CHECK_PRIN]
        ,[L_PRIN]
        ,[L_INT]
        ,[L_INTLQ]
        ,[L_EXP]
        ,[L_ACCR]
        ,[INV_BILL_CHARG_AMT]
        ,[P_PRIN]
        ,[P_INT]
        ,[P_OTH]
        ,[P_EXP]
        ,[P_PRV_S_INT]
        ,[P_ACCRUED]
        ,[P_OFF_ACCR]
        ,[MATURITY_DATE]
        ,[AFM]
        ,[TEL_1]
        ,[TEL_2]
        ,[CUST_ADDRESS]
        ,[SIGN]
        , CITY = CASE L.BRANCH 
                    WHEN 101 THEN '212'
                    WHEN 102 THEN '12321'
                    WHEN 103 THEN '123123Α'
                    WHEN 104 THEN 'ΚΑΛ12312ΚΑ'
                    WHEN 105 THEN '313Σ'
                    WHEN 106 THEN '132'
                    WHEN 107 THEN '12312'
                    WHEN 108 THEN '23123123'
                    WHEN 109 THEN '23123'
                    WHEN 110 THEN '123213123'
                    ELSE 'Unknown city mate' 
                 END
    FROM 
        LB.LM.LOAN AS L 
    JOIN 
        LB.LM.CUSTOMER_MF AS C ON L.CUSTNO = C.CUSTNO
    LEFT JOIN
        [asdf6].[fsdfsdf].[MASTER_Guarantors] AS G ON L.CUSTNO = G.CUST
    WHERE 
        ToClose = 0 
        AND L.CUSTNO = @CustNo 
        AND G.[SIGN] = @Guarantors
END

所以这是我的存储过程的 SQL,到目前为止运行良好。问题是我有一个 3 参数报告,由于依赖于自身,它确实有效。我希望报告做的是有一个多值参数(下拉),它将包含特定贷款客户编号的所有担保人。在我发布的图片中,您可以在报告中看到错误和我想要的输出。(例如,客户 1 有 2、3、4 作为担保人)。

部分名称已更改

标签: sql-serverreporting-services

解决方案


如果您正在调用R420_covid_application以填充参数的可用值,Guarantors那么这就是问题所在。您不能在首先生成参数值的数据集查询中引用参数值。

从您的描述中很难分辨,您也没有解释您的依赖关系,但听起来您需要..

  1. @CustomerID将从数据集查询中填充的客户参数(例如)SELECT * FROM myCustomers

  2. @Guarantor将从数据集查询中填充的担保人参数(例如)SELECT * from myGuarantors JOIN blah blah.... WHERE CustomerID = @CustomerID

这样,客户数据集不依赖于任何东西,当用户选择一个值时,@CustomerID 的值就会被设置。然后,将根据@CustomerID 的值填充和过滤第二个数据集。

如果这没有帮助,您将需要编辑您的问题并描述您希望用户在每个参数中看到的内容以及从一个参数到下一个参数的依赖关系。给出一些样本数据和预期结果。


推荐阅读