I have a drop-down list that gets populated based on a stored-procedure - that parts works fine.
I agree with Chris's answer however I would add that sometimes you want to add defaults to a multi value that are not all and not a single choice either. Generally I set two datasets up , each in a table variable for reporting. Similar to this:
'AvailableValues' Data set could be:
declare @Table Table ( personID int identity, person varchar(8));
insert into @Table values ('Brett'),('John'),('Peter');
select *
from @Table
'DefaultValues' Data set could be:
declare @Table Table ( personID int identity, person varchar(8));
insert into @Table values ('Brett'),('John');
select *
from @Table
If I set up a parameter and bind 'Available' values to a 'get values from a query' and choose my available dataset it has the first set. If I then choose 'Default' values and choose 'get values from a query' and choose the default I can select a subset as the default. The only issue is you must ensure your datasources in the second is a legitimate subset of the first.
You may also choose your Default from set one to get a list of all as well to choose all the values you specified.
You are doing it right by returning the -- All --
option as part of the dataset that the query is based on.
You are getting the <Select a Value>
message because, well, you haven't selected a value. What you need to do is assign the default value of -- All --
to this parameter. Open the parameter settings and click on the Default Values tab and enter the default value, which in this case is Null
for -- All --
.
If you select the "Allow multiple values" in the parameter's pop up gui (click on the parameter on the left under the "Parameters" folder), it will give a "select all" option.
For some reason, the only way I got it to work is by altering the stored procedure itself; and add in
UNION SELECT null, ' -- All -- '
It looks like when you fill a drop-down parameter using a query, it's not easy to add a non-query value/label to the parameter.
I know there's likely another way. but since this worked i guess its ok
From above you would have figured out to add Select All using Union to your dataset Query.
Now to select "ALL" as default value, rightly mentioned above setting it to specific value Null won't work; instead I used specific query and used same dataset I used to fill my dropdown parameter and it worked.
Note : My dataset was sorted ascending and ___ALL__ came at top with value as Null.