Monday, February 20, 2012

Report rendering in webform

Hi,
Currently I display report in my webform (website) using
Reportviewer.ReportURL method which fetch report from Report Manger through
Http:// port. which takes too much to rendering report.
Is there any method through which I can render report in my webpage through
reprot API or something like that so that it doesn't fetch report through
http port and rendering time should be fast.
Thanks in Advance.Kam,
I am curious as to how you determined that using HTTP-GET causes the slow
performance? Did you look at how long it takes for the database query to be
processed, report to be generated and rendered?
Requesting your reports via HTTP-GET is the fastest way to generate them.
Think of the Report Server (not Report Manager) as a web application. Your
request/response total latency consists of submitting the report request to
the Report Server, querying the database, generating the report, rendering
the report, sending the report payload to the Report Viewer (browser), and
displaying the report in the browser. From this latencies, you should focus
on minimizing the time it takes to query the database and generate the
report.
Here is a tip: use the RS Execution Log to find out how much the Report
Server spends querying, generating and rendering your report.
--
Hope this helps.
---
Teo Lachev, MCSD, MCT
Author: "Microsoft Reporting Services in Action"
http://www.prologika.com
"Kam" <Kam@.discussions.microsoft.com> wrote in message
news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> Hi,
> Currently I display report in my webform (website) using
> Reportviewer.ReportURL method which fetch report from Report Manger
through
> Http:// port. which takes too much to rendering report.
> Is there any method through which I can render report in my webpage
through
> reprot API or something like that so that it doesn't fetch report through
> http port and rendering time should be fast.
> Thanks in Advance.|||How to check R S Exectuion Log ?
"Teo Lachev" wrote:
> Kam,
> I am curious as to how you determined that using HTTP-GET causes the slow
> performance? Did you look at how long it takes for the database query to be
> processed, report to be generated and rendered?
> Requesting your reports via HTTP-GET is the fastest way to generate them.
> Think of the Report Server (not Report Manager) as a web application. Your
> request/response total latency consists of submitting the report request to
> the Report Server, querying the database, generating the report, rendering
> the report, sending the report payload to the Report Viewer (browser), and
> displaying the report in the browser. From this latencies, you should focus
> on minimizing the time it takes to query the database and generate the
> report.
> Here is a tip: use the RS Execution Log to find out how much the Report
> Server spends querying, generating and rendering your report.
> --
> Hope this helps.
> ---
> Teo Lachev, MCSD, MCT
> Author: "Microsoft Reporting Services in Action"
> http://www.prologika.com
>
> "Kam" <Kam@.discussions.microsoft.com> wrote in message
> news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> > Hi,
> > Currently I display report in my webform (website) using
> > Reportviewer.ReportURL method which fetch report from Report Manger
> through
> > Http:// port. which takes too much to rendering report.
> > Is there any method through which I can render report in my webpage
> through
> > reprot API or something like that so that it doesn't fetch report through
> > http port and rendering time should be fast.
> >
> > Thanks in Advance.
>
>|||Here is a code to render a report in a stream sent to an aspnet page.
//Create a Reporting Service Object (you have to add a reference to it in
VS.NET)
localhost.ReportingService s = new localhost.ReportingService ();
//specify the credentials
s.Credentials = new System.Net.NetworkCredential("myuser",
"mypassword","");
try
{
// Render arguments
byte[] result = null;
string reportPath = "/Test/Rlinktest";
string format = "HTML4.0";
string historyID = null;
string devInfo = "";
string showHideToggle = null;
string encoding;
string mimeType;
localhost.Warning[] warnings = null;
localhost.ParameterValue[] reportHistoryParameters = null;
string[] streamIDs = null;
localhost.SessionHeader sh = new localhost.SessionHeader();
s.SessionHeaderValue = sh;
//call the render method of webservice
result = s.Render(reportPath, format, historyID, devInfo, null, null,
showHideToggle, out encoding, out mimeType, out
reportHistoryParameters, out warnings,
out streamIDs);
Response.ClearContent();
Response.ContentType="text/html";
Response.BinaryWrite(result);
Response.Flush();
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
Cédric
"Kam" <Kam@.discussions.microsoft.com> wrote in message
news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> Hi,
> Currently I display report in my webform (website) using
> Reportviewer.ReportURL method which fetch report from Report Manger
> through
> Http:// port. which takes too much to rendering report.
> Is there any method through which I can render report in my webpage
> through
> reprot API or something like that so that it doesn't fetch report through
> http port and rendering time should be fast.
> Thanks in Advance.|||Kam,
The RS Execution Log is stored in the ExecutionLog table in the RS
ReportServer database. For analyzing its data easier, you need to install
the Execution Log DTS package. Check the Rs documentation for the following
topics:
- Report Server Execution Log
- Querying and Reporting on Report Execution Log Data
--
Hope this helps.
---
Teo Lachev, MCSD, MCT
Author: "Microsoft Reporting Services in Action"
http://www.prologika.com
"Kam" <Kam@.discussions.microsoft.com> wrote in message
news:6BF3E420-9468-43C5-8E48-925B6C806D69@.microsoft.com...
> How to check R S Exectuion Log ?
> "Teo Lachev" wrote:
> > Kam,
> >
> > I am curious as to how you determined that using HTTP-GET causes the
slow
> > performance? Did you look at how long it takes for the database query to
be
> > processed, report to be generated and rendered?
> >
> > Requesting your reports via HTTP-GET is the fastest way to generate
them.
> > Think of the Report Server (not Report Manager) as a web application.
Your
> > request/response total latency consists of submitting the report request
to
> > the Report Server, querying the database, generating the report,
rendering
> > the report, sending the report payload to the Report Viewer (browser),
and
> > displaying the report in the browser. From this latencies, you should
focus
> > on minimizing the time it takes to query the database and generate the
> > report.
> >
> > Here is a tip: use the RS Execution Log to find out how much the Report
> > Server spends querying, generating and rendering your report.
> >
> > --
> > Hope this helps.
> >
> > ---
> > Teo Lachev, MCSD, MCT
> > Author: "Microsoft Reporting Services in Action"
> > http://www.prologika.com
> >
> >
> > "Kam" <Kam@.discussions.microsoft.com> wrote in message
> > news:1D7BD329-07EA-45BD-B365-C76390685461@.microsoft.com...
> > > Hi,
> > > Currently I display report in my webform (website) using
> > > Reportviewer.ReportURL method which fetch report from Report Manger
> > through
> > > Http:// port. which takes too much to rendering report.
> > > Is there any method through which I can render report in my webpage
> > through
> > > reprot API or something like that so that it doesn't fetch report
through
> > > http port and rendering time should be fast.
> > >
> > > Thanks in Advance.
> >
> >
> >

No comments:

Post a Comment