web-dev-qa-db-ja.com

複数値パラメーターのデフォルト値としてすべてを選択

多くの 複数値パラメーター を使用してVisual Studio 2008でレポートを作成していますが、うまく機能していますが、レポートのデフォルト値として「(すべて選択)」オプションが必要です。開かれます。

これを実現するために使用できる式やSQLコードはありますか?または、レポートを実行するたびに、すべてのパラメーターで「(すべて選択)」を選択する必要がありますか?

53
iljitj

パラメータの「デフォルト値」を設定して、「使用可能な値」と同じクエリを使用してみてください。実際には、すべての単一の「使用可能な値」を「デフォルト値」として提供し、「すべて選択」オプションが自動的にチェックされます。

89
JC Ford

デフォルト値でのデータセットの使用は1つの方法ですが、使用可能な値とデフォルト値のクエリを使用する必要があります。値が[使用可能な値]タブでハードコーディングされている場合、デフォルト値を式として定義する必要があります。写真はすべてを説明する必要があります

パラメーターの作成(自動作成されない場合)

Create Parameter

値を定義する-間違った方法の例

Define values - wrong way

値の定義-正しい方法の例

Define values - correct way

デフォルト値を設定-利用可能な値を反映するすべてのデフォルト値を定義して、デフォルトで「すべて選択」を行う必要があります。定義しない場合は、定義されたものだけがデフォルトで選択されます。

Set default values

結果

The result

データ型の1つの画像:Int

One picture for Data type Int

15
Pawel Cioch

Nullがある場合は機能しません。

これを回避するには、selectステートメントを変更して、何かをnullに変換します。

phonenumber = CASE
  WHEN (isnull(phonenumber, '')='') THEN '(blank)'
  ELSE phonenumber
END
8
E_8

受け入れられる答えはcorrectですが、完全ではないです。 Select Allがデフォルトのオプションであるため、Available Valuesデータセットには少なくとも2つの列(valueとlabel)が含まれている必要があります。それらは同じデータを返すことができますが、名前は異なっていなければなりません。デフォルト値データセットは、値列を使用してからSelect Allがデフォルト値になります。データセットが1列のみを返す場合、最後のレコードの値のみがパラメーターのドロップダウンで選択されます。

5
ajeh

E_8からの回答に追加します。
空の文字列がある場合、これは機能しません。

これを回避するには、SQLでselectステートメントを変更するか、SSRSデータセットでクエリを変更します。

 Select distinct phonenumber
from YourTable
where phonenumber <> ''
Order by Phonenumber
0
BIReportGuy

うまくいく

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
0
galgil