Showing posts with label reportviewer. Show all posts
Showing posts with label reportviewer. Show all posts

Monday, March 26, 2012

Reporting Services 2005 - Problems displaying a report via a ReportViewer control.

I have a report that displays fine in VS 2005 (in the Preview tab), and if I hit it via a URL in IE as a deployed report. However, when I embed it in a ReportViewer control for display on a web site, I get no data back for the report. I am using an Oracle database for the data source. None of the the logs in reporting services show anything wrong, there are no events in the event viewer to indicate any problems, Oracle logs also show no problems and no errors are returned to the page when the "View Report" button is clicked.

Anyone out there have a clue? I certainly don't.

Mike

The web site is executing the report viewer control with a certain (ASP.NET) user context. Most likely this account does not have any permissions to access the installation of the Oracle client software (or the Oracle client software is not installed at all on the web server).

Check this KB article for more details how to configure directory security: http://support.microsoft.com/?kbid=870668

-- Robert

|||

I thought the same thing at first, but permissions checked out fine. I found out that the problem is a rather esoteric interaction of Div and Table HTML element display characteristics during report generation (at least that's what the MSDN article says at http://msdn2.microsoft.com/en-us/library/ms252090.aspx).

The gist of it is that when you have the ReportViewer control properties set to render Asynchronously and have the height set to a '%' value (I was using 100%), the calculated height passed in the HTML is set to '0' so no report displays. You have the choice of using a fixed height and Asynchronous rendering or a percentage height and synchronous rendering.

Mike

|||

Thanks for posting your findings!

-- Robert

sql

Wednesday, March 21, 2012

Reporting Services - Local Report - Memory & Session Usage

Hello there, I'm currently experiencing some issues with Reporting
Services' ReportViewer Control. When running the control without a Reporting
Server in 'Local' processing mode we cannot serve very many simultaneous
requests. Worse, if a single user opens several reports one after the other
they can easily get an OutOfMemory exception from the w3wp.exe (Attempting to
serialize something?). I've debugged the page and supporting code and looked
at some output from CLRProfiler with no obvious leaks. I have noticed
something though, after each report is loaded, another ReportHierarchy object
is stored in the user's Session server side. Is the report control storing
the data in session?
-- page code --
...AutoEventWireup="true"....
...
<rsweb:ReportViewer
Width="100%"
runat="server"
AsyncRendering="true"
ShowPrintButton="true"
ShowRefreshButton="false"
ID="<blahblah>"
ShowExportControls="true"
ExportContentDisposition="AlwaysInline">
</rsweb:ReportViewer>
-- page behind code --
reportControl.Reset();
reportControl.ShowPrintButton = true;
reportControl.ShowRefreshButton = false;
reportControl.LocalReport.LoadReportDefinition(<stream>);
reportControl.LocalReport.DisplayName = "My Report";
reportControl.LocalReport.DataSources.Clear();
reportControl.LocalReport.DataSources.Add(new
ReportDataSource(ReportDefinitionGenerator.DYNA_DATASET_NAME,
<DataTable>.DefaultView));
reportControl.SizeToReportContent = true;
Cheers
AntonyStill waiting? Any advice? We're looking at changing the design and
moving away from running reports in 'Local' Processing mode but that would
require making a staging area for the data that the Reporting Services Server
could also access.
;(
"Antony" wrote:
> Hello there, I'm currently experiencing some issues with Reporting
> Services' ReportViewer Control. When running the control without a Reporting
> Server in 'Local' processing mode we cannot serve very many simultaneous
> requests. Worse, if a single user opens several reports one after the other
> they can easily get an OutOfMemory exception from the w3wp.exe (Attempting to
> serialize something?). I've debugged the page and supporting code and looked
> at some output from CLRProfiler with no obvious leaks. I have noticed
> something though, after each report is loaded, another ReportHierarchy object
> is stored in the user's Session server side. Is the report control storing
> the data in session?
> -- page code --
> ...AutoEventWireup="true"....
> ...
> <rsweb:ReportViewer
> Width="100%"
> runat="server"
> AsyncRendering="true"
> ShowPrintButton="true"
> ShowRefreshButton="false"
> ID="<blahblah>"
> ShowExportControls="true"
> ExportContentDisposition="AlwaysInline">
> </rsweb:ReportViewer>
> -- page behind code --
> reportControl.Reset();
> reportControl.ShowPrintButton = true;
> reportControl.ShowRefreshButton = false;
> reportControl.LocalReport.LoadReportDefinition(<stream>);
> reportControl.LocalReport.DisplayName = "My Report";
> reportControl.LocalReport.DataSources.Clear();
> reportControl.LocalReport.DataSources.Add(new
> ReportDataSource(ReportDefinitionGenerator.DYNA_DATASET_NAME,
> <DataTable>.DefaultView));
> reportControl.SizeToReportContent = true;
>
> Cheers
> Antony
>|||I looked at doing local reports and decided against it due to a variety of
reasons. One, designing and testing is a lot harder. Subreports are a pain.
Lots more mucking around.
The local report mode is not intended to be a replacement for the server
based product. If it was, then why buy the server (seeing as how the control
comes with VS and does not require any licensing). So, it does not surprise
me that it has limitations under load.
There is a major shift in how you design. You are used to creating the
tablesets, responding to events etc. With the server based product you
design the dataset and let RS get the data. You do not respond to events.
Yes, you can write a data processing extension if you want but it is
non-trivial and I would only go that way if you absolutely must. Otherwise,
in the report definition define the datasets by putting in the SQL or
referring to a stored procedure.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"Antony" <alovric@.trialstat.com(do not spam)> wrote in message
news:83063161-C816-4E81-AB16-3CE47C4277C5@.microsoft.com...
> Still waiting? Any advice? We're looking at changing the design and
> moving away from running reports in 'Local' Processing mode but that would
> require making a staging area for the data that the Reporting Services
> Server
> could also access.
> ;(
>
> "Antony" wrote:
>> Hello there, I'm currently experiencing some issues with Reporting
>> Services' ReportViewer Control. When running the control without a
>> Reporting
>> Server in 'Local' processing mode we cannot serve very many simultaneous
>> requests. Worse, if a single user opens several reports one after the
>> other
>> they can easily get an OutOfMemory exception from the w3wp.exe
>> (Attempting to
>> serialize something?). I've debugged the page and supporting code and
>> looked
>> at some output from CLRProfiler with no obvious leaks. I have noticed
>> something though, after each report is loaded, another ReportHierarchy
>> object
>> is stored in the user's Session server side. Is the report control
>> storing
>> the data in session?
>> -- page code --
>> ...AutoEventWireup="true"....
>> ...
>> <rsweb:ReportViewer
>> Width="100%"
>> runat="server"
>> AsyncRendering="true"
>> ShowPrintButton="true"
>> ShowRefreshButton="false"
>> ID="<blahblah>"
>> ShowExportControls="true"
>> ExportContentDisposition="AlwaysInline">
>> </rsweb:ReportViewer>
>> -- page behind code --
>> reportControl.Reset();
>> reportControl.ShowPrintButton = true;
>> reportControl.ShowRefreshButton = false;
>> reportControl.LocalReport.LoadReportDefinition(<stream>);
>> reportControl.LocalReport.DisplayName = "My Report";
>> reportControl.LocalReport.DataSources.Clear();
>> reportControl.LocalReport.DataSources.Add(new
>> ReportDataSource(ReportDefinitionGenerator.DYNA_DATASET_NAME,
>> <DataTable>.DefaultView));
>> reportControl.SizeToReportContent = true;
>>
>> Cheers
>> Antony
>>|||Thanks Bruce, sorry, I just noticed that I didn't reply to you sooner. Do
you know if the persistance of the ReportHierarchy obj in session is
intentional?
Cheers
Antony
--
;)
"Bruce L-C [MVP]" wrote:
> I looked at doing local reports and decided against it due to a variety of
> reasons. One, designing and testing is a lot harder. Subreports are a pain.
> Lots more mucking around.
> The local report mode is not intended to be a replacement for the server
> based product. If it was, then why buy the server (seeing as how the control
> comes with VS and does not require any licensing). So, it does not surprise
> me that it has limitations under load.
> There is a major shift in how you design. You are used to creating the
> tablesets, responding to events etc. With the server based product you
> design the dataset and let RS get the data. You do not respond to events.
> Yes, you can write a data processing extension if you want but it is
> non-trivial and I would only go that way if you absolutely must. Otherwise,
> in the report definition define the datasets by putting in the SQL or
> referring to a stored procedure.
>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> "Antony" <alovric@.trialstat.com(do not spam)> wrote in message
> news:83063161-C816-4E81-AB16-3CE47C4277C5@.microsoft.com...
> > Still waiting? Any advice? We're looking at changing the design and
> > moving away from running reports in 'Local' Processing mode but that would
> > require making a staging area for the data that the Reporting Services
> > Server
> > could also access.
> >
> > ;(
> >
> >
> > "Antony" wrote:
> >
> >> Hello there, I'm currently experiencing some issues with Reporting
> >> Services' ReportViewer Control. When running the control without a
> >> Reporting
> >> Server in 'Local' processing mode we cannot serve very many simultaneous
> >> requests. Worse, if a single user opens several reports one after the
> >> other
> >> they can easily get an OutOfMemory exception from the w3wp.exe
> >> (Attempting to
> >> serialize something?). I've debugged the page and supporting code and
> >> looked
> >> at some output from CLRProfiler with no obvious leaks. I have noticed
> >> something though, after each report is loaded, another ReportHierarchy
> >> object
> >> is stored in the user's Session server side. Is the report control
> >> storing
> >> the data in session?
> >>
> >> -- page code --
> >> ...AutoEventWireup="true"....
> >> ...
> >> <rsweb:ReportViewer
> >> Width="100%"
> >> runat="server"
> >> AsyncRendering="true"
> >> ShowPrintButton="true"
> >> ShowRefreshButton="false"
> >> ID="<blahblah>"
> >> ShowExportControls="true"
> >> ExportContentDisposition="AlwaysInline">
> >> </rsweb:ReportViewer>
> >>
> >> -- page behind code --
> >> reportControl.Reset();
> >> reportControl.ShowPrintButton = true;
> >> reportControl.ShowRefreshButton = false;
> >> reportControl.LocalReport.LoadReportDefinition(<stream>);
> >> reportControl.LocalReport.DisplayName = "My Report";
> >> reportControl.LocalReport.DataSources.Clear();
> >> reportControl.LocalReport.DataSources.Add(new
> >> ReportDataSource(ReportDefinitionGenerator.DYNA_DATASET_NAME,
> >> <DataTable>.DefaultView));
> >> reportControl.SizeToReportContent = true;
> >>
> >>
> >> Cheers
> >> Antony
> >>
> >>
>
>|||Were you able to resolve your performance issues when using the ReportViewer
control in Local Mode? If so, what steps did you take?
We are considering doing the same but are concerned about performance
degradation as well.
Thanks for any information you can provide.
"Antony" wrote:
> Thanks Bruce, sorry, I just noticed that I didn't reply to you sooner. Do
> you know if the persistance of the ReportHierarchy obj in session is
> intentional?
> Cheers
> Antony
> --
> ;)
>
> "Bruce L-C [MVP]" wrote:
> > I looked at doing local reports and decided against it due to a variety of
> > reasons. One, designing and testing is a lot harder. Subreports are a pain.
> > Lots more mucking around.
> >
> > The local report mode is not intended to be a replacement for the server
> > based product. If it was, then why buy the server (seeing as how the control
> > comes with VS and does not require any licensing). So, it does not surprise
> > me that it has limitations under load.
> >
> > There is a major shift in how you design. You are used to creating the
> > tablesets, responding to events etc. With the server based product you
> > design the dataset and let RS get the data. You do not respond to events.
> > Yes, you can write a data processing extension if you want but it is
> > non-trivial and I would only go that way if you absolutely must. Otherwise,
> > in the report definition define the datasets by putting in the SQL or
> > referring to a stored procedure.
> >
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> > "Antony" <alovric@.trialstat.com(do not spam)> wrote in message
> > news:83063161-C816-4E81-AB16-3CE47C4277C5@.microsoft.com...
> > > Still waiting? Any advice? We're looking at changing the design and
> > > moving away from running reports in 'Local' Processing mode but that would
> > > require making a staging area for the data that the Reporting Services
> > > Server
> > > could also access.
> > >
> > > ;(
> > >
> > >
> > > "Antony" wrote:
> > >
> > >> Hello there, I'm currently experiencing some issues with Reporting
> > >> Services' ReportViewer Control. When running the control without a
> > >> Reporting
> > >> Server in 'Local' processing mode we cannot serve very many simultaneous
> > >> requests. Worse, if a single user opens several reports one after the
> > >> other
> > >> they can easily get an OutOfMemory exception from the w3wp.exe
> > >> (Attempting to
> > >> serialize something?). I've debugged the page and supporting code and
> > >> looked
> > >> at some output from CLRProfiler with no obvious leaks. I have noticed
> > >> something though, after each report is loaded, another ReportHierarchy
> > >> object
> > >> is stored in the user's Session server side. Is the report control
> > >> storing
> > >> the data in session?
> > >>
> > >> -- page code --
> > >> ...AutoEventWireup="true"....
> > >> ...
> > >> <rsweb:ReportViewer
> > >> Width="100%"
> > >> runat="server"
> > >> AsyncRendering="true"
> > >> ShowPrintButton="true"
> > >> ShowRefreshButton="false"
> > >> ID="<blahblah>"
> > >> ShowExportControls="true"
> > >> ExportContentDisposition="AlwaysInline">
> > >> </rsweb:ReportViewer>
> > >>
> > >> -- page behind code --
> > >> reportControl.Reset();
> > >> reportControl.ShowPrintButton = true;
> > >> reportControl.ShowRefreshButton = false;
> > >> reportControl.LocalReport.LoadReportDefinition(<stream>);
> > >> reportControl.LocalReport.DisplayName = "My Report";
> > >> reportControl.LocalReport.DataSources.Clear();
> > >> reportControl.LocalReport.DataSources.Add(new
> > >> ReportDataSource(ReportDefinitionGenerator.DYNA_DATASET_NAME,
> > >> <DataTable>.DefaultView));
> > >> reportControl.SizeToReportContent = true;
> > >>
> > >>
> > >> Cheers
> > >> Antony
> > >>
> > >>
> >
> >
> >

Wednesday, March 7, 2012

Reporting Service - print button shown on IE not shown on Firefox

Hi, I have my web application on which I use the ReportViewer to call a Server Report. I fill the report viewer and I see the report correctly on the IE 7, however on the Firefox the Print button does not appear, only the refresh. On the .Net the printButton is set to visible, just on Firefox does not appear...any one had this issue?Thanks a lot for helping!

Our friends at microsoft have decided to make the print function an ActiveX control, supported only by IE