2013-02-04 4 views
2

L'un des paramètres que j'ai dans mon rapport SSRS s'appelle Clients. L'utilisateur veut pouvoir sélectionner plusieurs clients dans une liste déroulante. Notre liste de clients compte plus de 500 entrées. Comment puis-je obtenir autant de valeurs dans une liste déroulante. D'ailleurs, combien de valeurs un paramètre va-t-il gérer? Y at-il un moyen de définir la liste déroulante pour pouvoir être tapé sur les valeurs d'invite? Un exemple de cette dernière question serait comme comment sur la plupart des formulaires qui demandent l'état dans lequel vous vivez, vous pouvez cliquer sur la liste et taper "TX" et il descendra au Texas au lieu de devoir faire défiler vers le bas. J'espère que cela à du sens. Merci pour votre aide à l'avance!Paramètre de rapport SSRS avec plus de 500 valeurs

+0

Je pense que cela dépend de la façon dont vous envoyez le paramètre de retour à la base de données. Dans le passé, j'ai "joint" avec des valeurs séparées par des virgules à ma procédure stockée. Étant donné que quelque chose comme varchar (max) en tant que mon paramètre pourrait avoir une limite de 4000 caractères - cela limiterait ce que vous pouvez renvoyer et combien vous pouvez renvoyer avant que la troncature ne se produise. – avgbody

Répondre

1

Vous ne pouvez pas faire en sorte que le champ du paramètre se comporte avec le texte de saisie semi-automatique. Et je suis d'accord qu'avoir 500 valeurs dans un petit champ n'est pas convivial. Ma suggestion est de diviser les paramètres en 2-4 paramètres différents (afin de faciliter la recherche du client), chaque paramètre aura le nom du client selon l'ABC (par exemple les premiers paramètres contiendront le client les noms de l'IA, deuxième JR, SZ dernier)

Si oui, votre requête devrait ressembler à ce qui suit:

SELECT customerName,customerAddress,customerCity,... 
FROM customerTable 
WHERE (customerID IN (@customerParam1) OR customerID IN (@customerParam2) customerID IN (@customerParam3)) 
+0

Merci pour votre aide! Je n'ai jamais pensé à casser le paramètre en groupes comme ça! – jenhil34

+0

vous venezcome @Jennifer –

0

Je ne sais pas comment faire la deuxième partie en tapant une valeur, mais je peux vous aider à configurer la liste déroulante. Écrivez d'abord une requête qui sélectionne le nom du client et la valeur unique pour le client.

Exemple:

SELECT CUSTOMER_NAME, CUSTOMER_ID 
FROM CUSTOMER_TABLE 

ajouter le paramètre et sélectionnez votre type de données et la case à cocher qui dit « Autoriser plusieurs valeurs ». Ensuite, dans les propriétés, cliquez sur l'onglet "Valeurs disponibles". Une fois cela ouvert, sélectionnez "Obtenir des valeurs à partir d'une requête" et sélectionnez la requête que vous venez d'écrire. Une fois que cela est sélectionné, allez dans le champ "Valeur" et sélectionnez la valeur unique de votre requête et pour le champ "étiquette" sélectionnez le nom du client et ils devraient tous apparaître. Lorsque vous utilisez les valeurs du paramètre dans votre requête principale, vous devez vous assurer que vous utilisez la fonction IN et non =. C'est parce que vous n'obtenez pas une seule valeur de retour, mais tous à la fois.

Exemple:

SELECT CUSTOMER_NAME,CUSTOMER_ADDRESS,CUSTOMER_CITY,... 
FROM CUSTOMER_TABLE 
WHERE CUSTOMER_ID IN (@CUSTOMERNAMEPARAMETER) 

Le nom du paramètre est ce nom de la variable à utiliser.

Aussi juste un autre conseil que vous pouvez tous les avoir par défaut sélectionné en allant aux valeurs par défaut et sélectionnez "Obtenir des valeurs d'une requête" et sélectionnez à nouveau votre requête et votre valeur unique.

Aussi, je ne pense pas qu'il y ait un problème avec un certain nombre d'éléments limite sur la zone de liste. Je l'ai eu jusqu'à près de 1000 et n'a eu aucun problème.

Questions connexes