After spending some time with Reporting Services over the past couple weeks, I have noticed a few issues that I find rather odd, at least in my opinion.
If you create a report and use a parameterized query, report services will nicely add the parameters to the report for you as well. This is a great feature and I really like that aspect.
What is different however, is when you want to call that report from within an ASP.NET web application. Ideally, you would like to be able to pass the values for the parameters in the URL. For the most part, this should not create any problems, but it does.
If you were to go into reporting services and view the report, you will not get any data returned until you enter the values required for the parameters in the SQL SELECT statement in your datasource. This is by design as you have not told reporting services what you want returned yet.
The way that Reporting Services works in this case is to present you with two text boxes with appropriate labels allowing you to enter the parameters required by the SQL string. Once you enter the values and view the report, your data displays. You can also do this from within Visual Studio by selecting the Preview option in the report designer. All seems to work well until you notice that when you run the report in the browser, you see the prompts at the top of the form for the parameters. If you have passed in the values in the URL, the report should display properly but the values will also be displayed in the text boxes. This is not desirable most times.
By going into Reporting Services directly in the browser, http://localhost/reports/Pages/Folder.aspx, you can set various properties of the report, one of which is to not prompt the user. This is found under the Parameters link for the report you wish to work with. I caution you, DO NOT do this. Once you have set the prompt check boxes to cleared, your reports will now issue this infamous error;
Reporting Services Error
- The report parameter ‘paramnamehere’ is read-only and cannot be modified. (rsReadOnlyReportParameter) Get Online Help
Microsoft Reporting Services
Click the Get Online Help link to find out that there is very little help available for this error message other than to say;
|ExplanationThis error occurs when you attempt to set a value for a parameter that is read-only. User ActionSearch Books Online for more information about the parameter. There are conditions that you can control that determine whether the parameter is read-only.
|Currently there are no Microsoft Knowledge Base articles available for this specific error or event message. For information about other support options you can use to find answers online, see http://support.microsoft.com/default.aspx.
Here is what I have found to be the solution. Go back into the report manager on your computer and set the Prompt User check boxes to checked. Now, you still don’t want the prompts to be displayed on the page because you are passing them in the URL.
Go back to your project and select the report viewer control, if you are using it, and set the Parameters property to false. If you are not using the viewer, you can set the property in code. Once you set the parameter property to false, the prompts will not display at the top of the report in the browser anymore.
BTW, you can supposedly also suppress parameters in the URL by adding a query string parameter of rs:parameters=false.
Posted on Friday, July 30, 2004 3:57 PM | Back to top