• 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);
  • 相关阅读:
    十二周学习进度
    冲刺第十天
    19.Maven 的单模块之 Spring MVC + Spring + Spring Data JPA 项目(基于 IntelliJ IDEA)
    18. Maven 的单模块 / 多模块之 Spring MVC + Spring + Mybatis 项目讲解(重点)
    16.Java Web 项目环境搭建
    17.Maven 项目介绍
    15.Postfix Completion 的使用
    16.插件讲解
    14.Emmet 讲解
    13.文件代码模板讲解
  • 原文地址:https://www.cnblogs.com/ncore/p/2784713.html
Copyright © 2020-2023  润新知