Hi,
I created a custom report in BIDS, but I am having trouble getting the report/SSRS to accept the parameters that get passed from the report window and then run automatically. For example, here is the report window with the parameters selected:
When I click OK, I get the following:
As you can see, “Contact Info” did not accept the “No” parameter and the giving categories I selected did not get passed to the report, as I have to click on the “giving cats” dropdown and reselect the categories I want. Both "giving years" and "list no" did actually accept the given parameter values, but I'm not sure why those did and not the others. Additionally, even after I reselect my parameters, I still have to click “View Report.”
I want the report to select the parameters I initially chose and then run by itself. Can anyone help me with this? I’ve been back and forth between Tessitura, BIDS, and report setup, and I can’t’ seem to figure out the issue. Any help would be greatly appreciated. Thanks!
David
Hi David - Without having seen the files, I'd recommend:
If it helps, I've included an example of part of one stored procedure I use where the first parameter (season_str) is a single select and the second parameter (pkg_str) is multi-select:
----
--SEASONS PARAMETER TABLECreate Table #season ( season_id int null ,season_desc varchar(50) null )
Insert #season (season_id, season_desc)SELECT DISTINCT s.id ,s.descriptionFROM [dbo].TR_SEASON AS sJOIN [dbo].FT_SPLIT_LIST(@season_str, ',') x on s.id = x.element
--PKG PARAMETER TABLECreate Table #pkgs ( pkg_no int null ,pkg_desc varchar(50) null ,season int null )
Insert #pkgs (pkg_no, pkg_desc, season)SELECT DISTINCT p.pkg_no ,p.description ,p.seasonFROM [dbo].T_PKG AS pJOIN [dbo].FT_SPLIT_LIST(@pkg_str, ',') x on p.pkg_no = x.elementJOIN #season AS s ON p.season = s.season_idWHERE p.season IN (s.season_id)
---
If you'll you send me your stored procedure/query, SSRS file, and an export of the report set-up, I'm happy to look at this for you in greater detail.
Cheers,Sara Nemethsnemeth@cballet.org
I second everything that Sara said. Additionally, I would guess that the reason your Contact Info value didn't get passed correctly is that the value that was passed by the Tessitura parameter window didn't match the values you had set up for the dropdown in the SSRS parameter setup. As a general rule, if you're handling the parameters in Tessitura, you're much better off setting the parameter in SSRS up to just be a string or an int or whatever data type is appropriate rather than setting it up as a dropdown. Leave the parameter visible while you test, so that you can easily confirm that the correct value was passed into it, and then hide it once you're satisfied that it's working right.
-Galen
Thanks, Sara and Galen. I'm not quite sure what I did, but it appears that the Contact Info parameter is now passing the value to SSRS automatically, but the report is still prompting me for the Giving Category values after I run the report. Similarly, I tried hiding the parameters in SSRS, and while it works for three out of the four parameters, when the report runs, it says that Giving Categories is missing a value. My guess is this particular parameter is causing the issue ss this is the only parameter that needs to accept multiple values. I've tried both your suggestions, and they don't seem to work for that parameter.
I think there's one more thing you need in your procedure. When Tessitura passes the multi-selected values as a string, each value is in quotation marks. What I always do is at the start of the procedure I include this statement for each parameter than needs to receive multiple values:
set @parameter= replace(@parameter,'"','')
This strips out the quotation marks so that later when you do the FT_SPLIT_LIST thing they won't cause a problem.
Interesting. I have literally NEVER done this with my multi-select string parameters and never had an issue when using FT_SPLIT_LIST.
Interesting! I wonder if something changed since I came up with that solution, or if I was actually just wrong about it in the first place years ago and so I've been automatically putting unnecessary code in everything I've written since then...
No idea. I just know that I have never once done it. I started writing SQL for Tessitura in late 2012 on Version 10 if that helps. I think it was Version 10. Definitely not 9, but I suppose could have been 11.
Thanks, Galen. I'll try this and let you know if it works. One question, I don't have the FT_SPLIT_LIST function in my procedure anywhere. Is this something I need to have, or does Tessitura/SSRS run that function in the background whenever there is a multiselect parameter that needs to be split up into individual strings? Thanks!
Update: I tried setting the giving categories parameters using the statement that Galen suggested and it didn't seem to have an effect. The other thing I also tried testing was putting a text box in the report that would simply return out the value of the "Giving Categories" parameter, so I could see what Tessitura was actually trying to pass to SSRS. I selected all four giving categories in the report, but the text box was only showing one of the options i selected. So it seems to me that somewhere, the multiple values I select either aren't being rolled up into one string and passed to SSRS, or Tessitura is only accepting and passing on the first option selected and ignoring the rest, and I'm not exactly sure how to fix this.
Again, suggestions are needed and welcome. Thanks all!
You'll definitely want to use the FT_SPLIT_LIST function in your stored procedure for multi-select parameters.
The trick that solved the problem was to set the Available Values for the multi-select parameter to None in the parameter properties window in SSRS.
Thank you for this tip, Galen! I've been working all afternoon on a custom report, and it turns out I had superfluous double quotes gumming up a cascading multi-param. Like John, I had never seen this happen, but so's I can save future hours troubleshooting going forward, this code is gonna be SOP.