We help IT Professionals succeed at work.

Crystal Reports and .Net Caching (aka: Resetting Reports, Invalid Group Number)

hagolub
hagolub asked
on
1,453 Views
Last Modified: 2007-12-19
All,

I've inherited a project that uses VB.Net (and the CR viewer) to display reports in a web app. The web form is comprised of 3 dropdown list boxes and corresponding labels, 1 button, and the report viewer. The idea is to select a report from the first list box, select parameters from the other list boxes if applicable, and "Generate Report" with the button.

The generated report appears to be cached and on subsequent "Generate Report" calls, the called report does not reset its parameters. Through debugging I've verified that the web form is passing in the correct values to the SetParameterValue call (example below), however using the SQL Profiler, the SPs are not being called with the correct parameters. The "stale" report also causes a secondary issue: some of the reports have drill downs while others do not. If you drill down in one report, then switch to a report without drilldowns, the following error is thrown: "Invalid Group Number". The drilled down group number is still being saved from the previous report.

Some things I attempted:
- Converted the reports to strongly typed reports (added them to project) instead of just passing in the report path to the ReportDocument.Load method in an attempt to not allow caching. [This resulted in no differnece.]
- Changed setting parameter values from index based to name based. Example:
    - ReportDocument.SetParameterValue(0, Me.drpDownBox.SelectedValue) ...is now...
    - ReportDocument.SetParameterValue("@ParameterOne", Me.drpDownBox.SelectedValue)
- I've tried various reset type methods from multiple objects ... none of which made any difference to the output.

I must be looking for answers in the wrong spot, for this seems to be a simple issue that should be able to be resolved fairly easily. Yet, I have spent at least 24 business hours attempting to find a solution. I've looked over a bunch of sample code, read numerous articles, and rewritten portions of the code multiple times. Any support (even direction pointing) will be greatly appreciated.

Thanks, Heath
Comment
Watch Question

Commented:
Have you tried using Response.Expires = 0 to force the page to not cache?

Author

Commented:
I tried ...

OutputCache Duration="1" VaryByParam="none"

without any affect. I will see if the other response values work. Thanks.

Author

Commented:
Doh. Setting the ReportViewers enableviewstate property to false (ReportViewer.EnableViewState = False) solved the problem. Having been frustrated with Crystal Reports, I incorrectly assumed that the problem was a Crystal implementation and not a .Net problem. Thanks for any suggestions submitted.
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.