多くの 複数値パラメーター を使用してVisual Studio 2008でレポートを作成していますが、うまく機能していますが、レポートのデフォルト値として「(すべて選択)」オプションが必要です。開かれます。
これを実現するために使用できる式やSQLコードはありますか?または、レポートを実行するたびに、すべてのパラメーターで「(すべて選択)」を選択する必要がありますか?
パラメータの「デフォルト値」を設定して、「使用可能な値」と同じクエリを使用してみてください。実際には、すべての単一の「使用可能な値」を「デフォルト値」として提供し、「すべて選択」オプションが自動的にチェックされます。
デフォルト値でのデータセットの使用は1つの方法ですが、使用可能な値とデフォルト値のクエリを使用する必要があります。値が[使用可能な値]タブでハードコーディングされている場合、デフォルト値を式として定義する必要があります。写真はすべてを説明する必要があります
パラメーターの作成(自動作成されない場合)
値を定義する-間違った方法の例
値の定義-正しい方法の例
デフォルト値を設定-利用可能な値を反映するすべてのデフォルト値を定義して、デフォルトで「すべて選択」を行う必要があります。定義しない場合は、定義されたものだけがデフォルトで選択されます。
結果
データ型の1つの画像:Int
Nullがある場合は機能しません。
これを回避するには、selectステートメントを変更して、何かをnullに変換します。
phonenumber = CASE
WHEN (isnull(phonenumber, '')='') THEN '(blank)'
ELSE phonenumber
END
受け入れられる答えはcorrectですが、完全ではないです。 Select All
がデフォルトのオプションであるため、Available Valuesデータセットには少なくとも2つの列(valueとlabel)が含まれている必要があります。それらは同じデータを返すことができますが、名前は異なっていなければなりません。デフォルト値データセットは、値列を使用してからSelect All
がデフォルト値になります。データセットが1列のみを返す場合、最後のレコードの値のみがパラメーターのドロップダウンで選択されます。
E_8からの回答に追加します。
空の文字列がある場合、これは機能しません。
これを回避するには、SQLでselectステートメントを変更するか、SSRSデータセットでクエリを変更します。
Select distinct phonenumber
from YourTable
where phonenumber <> ''
Order by Phonenumber
うまくいく
CREATE TABLE [dbo].[T_Status](
[Status] [nvarchar](20) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active')
GO
INSERT [dbo].[T_Status] ([Status]) VALUES (N'notActive')
GO
INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active')
GO
DECLARE @GetStatus nvarchar(20) = null
--DECLARE @GetStatus nvarchar(20) = 'Active'
SELECT [Status]
FROM [T_Status]
WHERE [Status] = CASE WHEN (isnull(@GetStatus, '')='') THEN [Status]
ELSE @GetStatus END