• Reporting Servive代理类


    Reference webservice

    http://ip:port/ReportServer/ReportExecution2005.asmx

    proxy class

    //=============================================================================================
    //Description: base web page for report 
    //==============================================================================================
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Configuration;
    
    namespace SGSGHome.Web
    {
        public class ReportExecution
        {
            #region Report Variables 
            List<ReportService.ParameterValue> _parameter=new List<ReportService.ParameterValue>();
            string _mimeType;
            string _encoding;
            string _extension;
            ReportService.Warning[] _warnings;
            string[] _streamIds;
            ReportService.ReportExecutionService rs;  
            #endregion
    
            #region Properties
            public string ReportName { get; set; }
            public string ReportFileName { get; set; }
            public PrintFormatEnum PrintFormat { get; set; }
            #endregion
    
            #region Pass Parameter to report
            /// <summary>
            /// add parameter into database
            /// </summary> 
            public void AddParameter(string paramName, string paramValue)
            {
                ReportService.ParameterValue para = new ReportService.ParameterValue();
                para.Name = paramName;
                para.Value = paramValue;
                //add to local array
                _parameter.Add(para);
            }
    
            #endregion
    
            #region Create Report
            public void GetReportBytes(HttpResponse response)
            {
                rs = new ReportService.ReportExecutionService();
                string prformat = string.Empty;
                string devInfo = string.Empty;
                string postfix = string.Empty;
                string rptUser = WebConfigurationManager.AppSettings["ReportUser"];
                string rptPwd = WebConfigurationManager.AppSettings["ReportPwd"];
                string rptDomain = WebConfigurationManager.AppSettings["ReportDomain"];
                rs.Credentials = new System.Net.NetworkCredential(rptUser, rptPwd, rptDomain);
                ReportService.ExecutionInfo exceInfo = new ReportService.ExecutionInfo();
                ReportService.ExecutionHeader exceHeader = new ReportService.ExecutionHeader();
                string historyID = null;
                string sessionId;
                rs.ExecutionHeaderValue = exceHeader;
                exceInfo = rs.LoadReport(ReportFileName, historyID);
                rs.SetExecutionParameters(_parameter.ToArray(), null);
                sessionId = rs.ExecutionHeaderValue.ExecutionID;
    
                //output format
                switch (PrintFormat)
                {
                    case PrintFormatEnum.PDF:
                        prformat = "PDF";
                        postfix = ".pdf";
                        devInfo = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
                        break;
                    case PrintFormatEnum.EXCEL:
                        prformat = "EXCEL";
                        postfix = ".xls";
                        devInfo = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
                        break;
                    case PrintFormatEnum.MHTML:
                        prformat = "MHTML";
                        postfix = ".mhtml";
                        devInfo = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
                        break;
                    default:
                        break;
                }
    
                //dispose web service
                rs.Dispose();
                byte[] results;
                rs.Timeout = 30 * 60000;
                results = rs.Render(prformat, devInfo, out _extension, out _mimeType, out _encoding, out _warnings, out _streamIds);
                response.Clear();
                response.ClearHeaders();
                response.Buffer = false;
                response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(ReportName) + postfix);//inline
                response.AppendHeader("Content-Length", results.Length.ToString());
                response.ContentType = _mimeType;
                response.Charset = "UTF-8";
                response.ContentEncoding = System.Text.Encoding.UTF8;
                response.BinaryWrite(results);
                response.Flush();
                response.Close();
    
            }
            #endregion
    
            #region Print Format Enum
            public enum PrintFormatEnum
            {
                PDF,
                EXCEL,
                MHTML
            }
            #endregion
        }
    }

    Invoke

                ReportExecution rs = new ReportExecution();
                rs.AddParameter("title", txtTitle.Text);
                rs.AddParameter("content", txtContent.Text);
                rs.AddParameter("createdBy", txtCreatedBy.Text);
                rs.AddParameter("group", ddlMemberGroup.SelectedValue.Replace("全部", ""));
                rs.AddParameter("startDate", dtFrom == DateTime.MinValue ? null : ((DateTime?)dtFrom).Value.ToString());
                rs.AddParameter("endDate", dtTo == DateTime.MinValue ? null : ((DateTime?)dtTo).Value.ToString());
                rs.ReportFileName = "/SPS.Report/WorkReport";
                rs.ReportName = string.Format("工作周报[{0}-{1}]", dtFrom.ToString("yyyyMMdd"), dtTo.ToString("yyyyMMdd"));
                rs.PrintFormat = ReportExecution.PrintFormatEnum.EXCEL;
                rs.GetReportBytes(this.Response);
  • 相关阅读:
    OPPO R9sPlus MIFlash线刷TWRP Recovery ROOT详细教程
    OPPO R11 R11plus系列 解锁BootLoader ROOT Xposed 你的手机你做主
    努比亚(nubia) M2青春版 NX573J 解锁BootLoader 并进入临时recovery ROOT
    华为 荣耀 等手机解锁BootLoader
    青橙 M4 解锁BootLoader 并刷入recovery ROOT
    程序员修炼之道阅读笔03
    冲刺8
    典型用户模板分析
    学习进度八
    冲刺7
  • 原文地址:https://www.cnblogs.com/ncore/p/2784713.html
Copyright © 2020-2023  润新知