web-dev-qa-db-fra.com

Sélectionner tout comme valeur par défaut pour le paramètre à valeurs multiples

Je crée un rapport dans Visual Studio 2008 avec beaucoup de paramètres à valeurs multiples et cela fonctionne très bien, mais j'aimerais avoir l'option "(Tout sélectionner)" comme valeur par défaut lorsque le rapport est ouvert.

Y a-t-il une sorte d'expression ou de code SQL que je peux utiliser pour y arriver? Ou dois-je choisir "(Tout sélectionner)" à chaque fois, dans chaque paramètre, chaque fois que je veux exécuter le rapport?

53
iljitj

Essayez de définir la "valeur par défaut" des paramètres pour utiliser la même requête que les "valeurs disponibles". En effet, il fournit chaque "valeur disponible" comme "valeur par défaut" et l'option "Sélectionner tout" est automatiquement cochée.

89
JC Ford

L'utilisation d'un jeu de données avec des valeurs par défaut est un moyen, mais vous devez utiliser la requête pour les valeurs disponibles et pour les valeurs par défaut.Si les valeurs sont codées en dur dans l'onglet Valeurs disponibles, vous devez définir les valeurs par défaut en tant qu'expressions. Les photos devraient tout expliquer

Créer un paramètre (s'il n'est pas créé automatiquement)

Create Parameter

Définir des valeurs - exemple erroné

Define values - wrong way

Définir des valeurs - exemple de manière correcte

Define values - correct way

Définir les valeurs par défaut - vous devez définir toutes les valeurs par défaut reflétant les valeurs disponibles pour faire "Tout sélectionner" par défaut, si vous ne définissez pas toutes seules celles définies seront sélectionnées par défaut.

Set default values

Le résultat

The result

Une image pour le type de données: Int

One picture for Data type Int

15
Pawel Cioch

Ne fonctionne pas si vous avez des valeurs nulles.

Vous pouvez contourner cela en modifiant votre instruction select pour placer quelque chose dans null:

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

La réponse acceptée est correcte , mais incomplète. Pour Select All pour être l'option par défaut, le jeu de données Valeurs disponibles doit contenir au moins 2 colonnes: valeur et étiquette. Ils peuvent renvoyer les mêmes données, mais leurs noms doivent être différents. L'ensemble de données des valeurs par défaut utilise ensuite la colonne de valeur, puis Select All sera la valeur par défaut. Si l'ensemble de données ne renvoie qu'une seule colonne, seule la valeur du dernier enregistrement sera sélectionnée dans la liste déroulante du paramètre.

5
ajeh

Ajout à la réponse de E_8.
Cela ne fonctionne pas si vous avez des chaînes vides.

Vous pouvez contourner cela en modifiant votre instruction select en SQL ou en modifiant votre requête dans l'ensemble de données SSRS.

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

Ça marche mieux

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