• 一個調用Report Services報表的類


    public class ReportOperation
        {
            private Page objPage;
            public ReportOperation(Page Page1)
            {
                this.objPage = Page1;
            }

            public string ms_ReportServer
            {
                get{return System.Configuration.ConfigurationSettings.AppSettings["ReportServer"];}
            }
           public void OpenReport(string s_aReportId, string s_aParameter)
           {
               string s_JS = "<script language='javascript'>" +
                           "var o_Win=window.open('" + GetReportURL(s_aReportId, s_aParameter) + "'" +
                           ",'','location=no,status=no,toolbar=no,width=700,height=600,top=50,left=50');</script>";
               objPage.RegisterStartupScript("0001", s_JS); //開啟報表

           }

            public string GetReportURL(string s_aReportId, string s_aParameter)
            {
                if (s_aReportId == "") return string.Empty;
                // &rc:標示報表監視器參數
                // Parameters=false 隱藏報表參數列
                // Toolbar=true 顯示工具列
                // Command=Render 呈現報表
                // ClearSession=true
                // Stylesheet=hr_htmlviewer 指定要应用于 HTML 查看器的样式表
                string s_ReportUrl = this.ms_ReportServer + "?/" + s_aReportId
                    + "&rc:Parameters=false&rc:Toolbar=true&rc:Command=Render&rc:ClearSession=true"
                    + "&rc:Stylesheet=hr_htmlviewer" + EncodeParams(s_aParameter); //開啟新視窗的路徑
                return s_ReportUrl;
            }

            private string EncodeParams(string s_aParams)
            {

                if (s_aParams == "") return "";
                if (s_aParams.Length > 0 && s_aParams.IndexOf("=") == -1)
                    throw new Exception("報表參數格式錯誤.正確格式:參數名=參數值&參數名=參數值");

                s_aParams = s_aParams.Replace("'", ""); //去掉特殊字符.否則開啟報表時會出錯.20050326 Modify

                if (s_aParams.Length > 0 && s_aParams.IndexOf("&") == 0)
                    s_aParams = s_aParams.Substring(1);

                string s_Params = string.Empty;

                string[] arr_Param = s_aParams.Split(new char[] { '&', '=' });
                for (int i_Len = 0; i_Len < arr_Param.Length; i_Len++)
                {
                    if ((i_Len + 1) % 2 == 0)
                    {
                        s_Params += "=" + this.objPage.Server.UrlEncode(this.objPage.Server.UrlDecode(arr_Param[i_Len]));  //先對字符進行解碼,再編碼.以防止參數已經編碼的情況
                    }
                    else
                        s_Params += "&" + arr_Param[i_Len];
                }
                return s_Params;
            }
        }

  • 相关阅读:
    《Linux4.0设备驱动开发详解》笔记--第十四章:Linux网络设备驱动
    《Linux4.0设备驱动开发详解》笔记--第十三章:Linux块设备驱动
    《Linux4.0设备驱动开发详解》笔记--第十二章:Linux设备驱动的软件架构思想
    《Linux4.0设备驱动开发详解》笔记--第十一章:内存与I/O访问
    《Linux4.0设备驱动开发详解》笔记--第十章:Linux设备驱动中的中断与时钟
    《Linux4.0设备驱动开发详解》笔记--第九章:Linux设备驱动中的异步通知与同步I/O
    《Linux4.0设备驱动开发详解》笔记--第八章:linux设备驱动的阻塞与非阻塞
    《机器学习》(西瓜书)笔记(5-2)--神经网络
    《机器学习》(西瓜书)笔记(5-1)--神经网络
    《机器学习》(西瓜书)笔记(4)--决策树
  • 原文地址:https://www.cnblogs.com/freeliver54/p/429662.html
Copyright © 2020-2023  润新知