0

ストアド プロシージャからロードするデータセットがあります。フィールドがあります。

DisplayID INT,
Display VARCHAR(45),
Default BIT

複数値パラメーターである DisplayFields というパラメーターがあります。使用可能な値については、ValueField をDisplayIDに設定し、Label フィールドをDisplayフィールドに設定しました。

デフォルトの選択を、データセット内のDefault = 1のすべてのレコードにしたいと思います。誰もこれを行う方法を知っていますか?

編集1

ストアドプロシージャがあります。データセットに入力するために使用します。Defaultフィールドに基づくフィルターを使用して、2 つ目のデータセットを追加しました。そのストアドプロシージャを2回呼び出していると思うので、このソリューションは好きではありません。

4

1 に答える 1

1

次のような機能を実装できるデフォルト値が常に少なくとも1つある場合。

WITH TestData AS
(
    SELECT 0 AS ID, 'always default' AS Name, 1 AS IsDefaultValue
    UNION ALL
    SELECT 1 AS ID, 'test1' AS Name, 0 AS IsDefaultValue
    UNION ALL
    SELECT 2 AS ID, 'test2' AS Name, 1 AS IsDefaultValue
    UNION ALL
    SELECT 3 AS ID, 'test3' AS Name, 0 AS IsDefaultValue
    UNION ALL
    SELECT 4 AS ID, 'test4' AS Name, 1 AS IsDefaultValue
)
SELECT ID, 
       Name, 
       IsDefaultValue,
       CASE
            WHEN IsDefaultValue = 0
            THEN ID
            -- return id of always default value
            ELSE 0
       END AS DefaultID        
FROM TestData

次に、SSRS側で、使用可能な値をIDとして追加し、デフォルトをDefaultIDとして追加する必要があります。ただし、デフォルト値のセットに、使用可能な値のセットに表示されない値を含めることはできません(そのため、「常にデフォルト値」を使用します)。この場合、デフォルトの選択は機能しないため、SPを2回呼び出す必要があります。 。

于 2012-12-18T17:00:19.380 に答える