reporting service 2005的代码生成报表

当装了reporting service 2005后,给自己的项目添加web引用,如下图

在本地计算机服务上会发现ReportExecution2005,这里面有根据报表服务器上报表的路径来生成报表的函数Render,具体可以查看功能文件目录,在添加了该web service后会多出来一个文件 Reference.cs,这是一个ReportExecutionService类定义文件,以后我们提取该文件,不需要再去引用ReportExecution2005这个web service就可以用代码生成报表并传输到客户端.

  1. ReportExecutionService rs = new ReportExecutionService();
  2.         rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
  3.         rs.Url = "http://myserver/reportserver/ReportExecution2005.asmx";
  4.         // Render arguments
  5.         byte[] result = null;
  6.         string reportPath = "/AdventureWorks Sample Reports/Employee Sales Summary";
  7.         string format = "MHTML";
  8.         string historyID = null;
  9.         string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
  10.         // Prepare report parameter.
  11.         ParameterValue[] parameters = new ParameterValue[3];
  12.         parameters[0] = new ParameterValue();
  13.         parameters[0].Name = "EmpID";
  14.         parameters[0].Value = "288";
  15.         parameters[1] = new ParameterValue();
  16.         parameters[1].Name = "ReportMonth";
  17.         parameters[1].Value = "6"// June
  18.         parameters[2] = new ParameterValue();
  19.         parameters[2].Name = "ReportYear";
  20.         parameters[2].Value = "2004";
  21.         DataSourceCredentials[] credentials = null;
  22.         string showHideToggle = null;
  23.         string encoding;
  24.         string mimeType;
  25.         string extension;
  26.         Warning[] warnings = null;
  27.         ParameterValue[] reportHistoryParameters = null;
  28.         string[] streamIDs = null;
  29.         
  30.         ExecutionInfo execInfo = new ExecutionInfo();
  31.         ExecutionHeader execHeader = new ExecutionHeader();
  32.         rs.ExecutionHeaderValue = execHeader;
  33.         execInfo = rs.LoadReport(reportPath, historyID);
  34.         rs.SetExecutionParameters(parameters, "en-us"); 
  35.         String SessionId = rs.ExecutionHeaderValue.ExecutionID;
  36.         Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID);
  37.         try
  38.         {
  39.             result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);
  40.             execInfo = rs.GetExecutionInfo();
  41.             Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime);
  42.         }
  43.         catch (SoapException e)
  44.         {
  45.             Console.WriteLine(e.Detail.OuterXml);
  46.         }
  47.         // Write the contents of the report to an MHTML file.
  48.         try
  49.         {
  50.             FileStream stream = File.Create("report.mht", result.Length);
  51.             Console.WriteLine("File created.");
  52.             stream.Write(result, 0, result.Length);
  53.             Console.WriteLine("Result written to the file.");
  54.             stream.Close();
  55.         }
  56.         catch (Exception e)
  57.         {
  58.             Console.WriteLine(e.Message);
  59.         }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值