J4N*_*J4N 8 asp.net reporting reporting-services ssrs-2008
我有一个报告服务服务器已经有一些运行报告,我现在需要通过自定义网站(运行asp.net MVC3)生成它们.
我需要以流/字节的形式检索此报告以将其发送给用户.没有"报告查看器"左右.
上次我使用报告服务是使用sql 2005,我们应该作为参考一个不起眼的asmx文件.
现在是什么,sql server报告2008 R2,.Net4和visual studio 2010?我找不到解释整个事情的教程.
(实际上我找不到sql 2008 r2没有报表查看器的教程)
Jam*_*e F 17
MSDN提供了几种方法.我经常在ASP .NET应用程序中使用URL访问快速简单的PDF按钮.
这是一个快速破解的代码.可以将其清理为使用集成身份验证,并且可以通过多种方式存储报告名称.(我从一些旧的代码中剪切并粘贴了这个代码,它会将报告存储到数据库中,然后可以从数据库返回该代码.
// First read in the report into memory.
string strReportUser = "RSUserName";
string strReportUserPW = "MySecretPassword";
string strReportUserDomain = "DomainName";
string sTargetURL = "http://SqlServer/ReportServer?" +
"/MyReportFolder/Report1&rs:Command=Render&rs:format=PDF&ReportParam=" +
ParamValue;
HttpWebRequest req =
(HttpWebRequest)WebRequest.Create( sTargetURL );
req.PreAuthenticate = true;
req.Credentials = new System.Net.NetworkCredential(
strReportUser,
strReportUserPW,
strReportUserDomain );
HttpWebResponse HttpWResp = (HttpWebResponse)req.GetResponse();
Stream fStream = HttpWResp.GetResponseStream();
//Now turn around and send this as the response..
byte[] fileBytes = ReadFully( fStream );
// Could save to a database or file here as well.
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader(
"content-disposition",
"attachment; filename=\"Report For " +
ParamValue + ".pdf\"" );
Response.BinaryWrite( fileBytes );
Response.Flush();
HttpWResp.Close();
Response.End();
Run Code Online (Sandbox Code Playgroud)
ReadFully是
public static byte[] ReadFully( Stream input )
{
using ( MemoryStream ms = new MemoryStream() )
{
input.CopyTo( ms );
return ms.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24177 次 |
| 最近记录: |