SSRS报表开发三部曲(转)

来源:互联网 发布:三星移动网络定时开关 编辑:程序博客网 时间:2024/06/05 13:37

微软正版 SQL Server 2012 软件 下载链接:http://item.taobao.com/item.htm?spm=686.1000925.0.0.506TnK&id=42632684374

微软正版 SQL Server 2014 软件 下载链接:http://item.taobao.com/item.htm?spm=686.1000925.0.0.506TnK&id=42572815714

报表开发三部曲(一):SSRS报表服务器的部署

  报表可以帮助企业访问、格式化数据,并把数据信息以可靠和安全的方式呈现给使用者。目前我所在的企业在办公或管理上会经常用到报表。久而久之,我在报表开发上积累了一些经验和心得。报表开发的工具有很多,目前比较实用和流行的应该是微软的SSRS。

  这是我报表系列的第一篇,先介绍一下SSRS报表服务器的安装与部署。

  这里介绍的是SQL SERVER 2008 R2版本的部署,首先下载SQL SERVER 2008 R2的安装包,运行安装程序。

  选择安装选项卡--点击全新安装或向现有安装添加功能。

   SQL SERVER安装程序

  规则检查

  如果是第一次安装SQL SERVER 2008选择全新安装,系统已安装SQL SERVER 2008就选择向现有实例添加新功能。

  选择安装类型

  选择安装 Reporting Service 和 BIDS 功能。BIDS是用于管理和开发商业智能的工具,里面包含了报表项目和报表模型的项目模板。

  功能选择

  之后的安装步骤这里忽略,不断点击“下一步”直至安装完成即可。

  安装完成后,在开始菜单找到“Reporting Service 配置管理器”。

  开始菜单

  服务账户使用内置的“NetWork Service 账户”

  服务账户

  Web服务URL,设置虚拟目录的名称。报表的发布和部署都将使用到这个URL路径。

  Web服务URL

  报表服务专用数据库有“本机模式”和“SharePoint集成”两种模式,这里我们使用默认的“本机模式”。“SharePoint集成”模式是 SSRS 与 SharePoint Server 集成的时候使用的,我将在以后的专题详细介绍。

  数据库

  报表管理器URL,这里可以配置报表管理器的URL。点击URL链接可以打开“报表管理器”对已发布的报表及数据源进行管理。

  报表管理器URL

  以下是报表管理器的界面。

  报表管理器

  SRSS报表服务器的安装与部署介绍完毕。下一次我将会介绍如何使用 SQL SERVER 集成的IDE进行报表项目的开发。

 

报表开发三部曲(二):使用VS进行报表开发、设计与部署

  我们再进行SSRS报表开发的时候经常会用到两个工具:一个是 SQL SERVER 安装集成的 IDE -- BIDS(SQL Server Business Intelligence Development Studio);另一个是报表生成器(Report Builder)。如果是比较熟悉数据库技术和VS开发环境的开发人员,建议使用的前者;如果是普通的报表使用者,建议使用后者,因为后者的UI\UE都比较接近Office系列的操作。本文主要为大家介绍前者。

  打开BIDS,经常使用VS的人会倍感亲切。点击菜单栏--文件--新建--项目。然后选择报表服务器项目,为你的报表项目起一个帅气的名字吧。

新建项目

  新建项目以后,在“解决方案资源管理器”窗口会看到你新建的项目底下有3个文件夹,我们现在需要做的是先建立一个可以供所有报表使用的数据源。在“共享数据源”文件夹点击右键--添加新数据源。

解决方案资源管理器

  之后弹出如下窗口,点击“编辑”按钮,选择数据服务器、数据库、登陆名和密码,点击“确定”建立数据库连接字符串。

新建数据源     连接属性

  数据源建立好以后就可以开始生成报表了。在报表文件夹点击右键--添加新报表--进入报表向导。选择刚才新建的共享数据源点击下一步。然后点击“查询生成器”对报表的DataSet进行编辑。我们可以点击上方工具条最右边的添加表按钮进行可视化编辑生成SQL SELECT语句,也可以直接写SQL语句;如果是我做的话,我一般习惯是绑定我在数据库写好的存储过程,这样做的好处就是只要我的存储过程处理好以后,报表的列、参数和行组都可以由报表向导自动生成。方法是点击“编辑为文本按钮”,命令类型选择"StoreProcedure",在文本框中写上你的存储过程名称。

 查询设计器 绑定存储过程

   确定--下一步--选择表格或矩阵。表和矩阵的区别就是一维表与二维表的区别。下一步--把你需要展示的列添加到显示字段,在这里还可以进行分组和分页,根据个人的需要去添加字段。

设计表

  点击“下一步”选择报表的样式,最后点击完成,给报表起一个名字。OK!一份报表就这样诞生了!你可以在设计窗口对报表进行编辑和修改,点击预览看到报表运行时的效果。

设计 预览

  最后是报表的部署,鼠标移向解决方案管理器窗口,选中项目点击右键--属性。

部署

  进入项目属性页,找到TargetServerURL设置一个可用的报表服务器Web URL,这里我们设成本机的报表服务器URL,关于报表服务器URL的详细设置可以参考我的“报表开发三部曲”的第一篇。然后上面几个属性是数据源、数据集、报表目标文件夹的设定。Overwrite属性是部署时是否重新数据库和数据集。

项目属性页

  确定--选择项目--点击右键--部署,等待部署成功的提示。

部署2

  部署成功后便可以在报表服务器看到新部署的报表了。

  使用BIDS开发报表与部署报表介绍完毕。下一次我将会介绍如何把制作好的报表嵌套的系统程序中。

 

报表开发三部曲(三):将rdl报表嵌套到网页

  如果rdl报表已经设计好并部署到报表服务器上,我们已经可以通过报表服务器去访问报表了。不过这还是不够的,因为报表的使用者往往是一些非技术人员或维护人员,并没有服务器的访问权限。所以为了方便报表使用者浏览报表,我们开发者往往会把报表嵌套到网页中。接下来我将为大家介绍报表嵌套网页的方法。

  假设在我的报表服务器中已经存在以下报表。

01

  然后我们打开VS,在网站中新建一个aspx网页,在工具箱里找到 报表--ReportViewer,把控件拖放到页面中。

02

  如果是10.0版本以上的ReportViewer还需要在页面上添加ScriptManager控件。

03

  打开页面的后台代码进行编辑。假设我们要在ReportViewer嵌入RP_STUDENT_COURSE_POINT_STA这个报表。我的做法写一个ReportBind()的方法在PageLoad的时候执行。在这里我的报表服务器设置是通过配置文件获取的,当然你也可以直接使用字符串作为参数去设置服务器地址。

复制代码
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7  8 public partial class Page_ReportView : System.Web.UI.Page 9 {10     protected void Page_Load(object sender, EventArgs e)11     {12         ReportBind();13     }14 15     private void ReportBind()16     {17         ReportViewer1.ServerReport.ReportServerUrl = new Uri(CommonDefine.getReportServerUrl());//CommonDefine.getReportServerUrl()方法通过配置文件读取报表服务器的地址18         ReportViewer1.ServerReport.ReportPath = CommonDefine.getReportProjectName() + "RP_STUDENT_COURSE_POINT_STA";//CommonDefine.getReportProjectName()方法通过配置文件读取报表所在目录19         ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;//设定报表的访问为远程访问20         ReportViewer1.DataBind();21     }22 }
复制代码

   CommonDefine类代码如下:

复制代码
 1 using System; 2 using System.Collections.Generic; 3 using System.Web; 4 using System.Configuration; 5  6 /// <summary> 7 ///CommonDefine 的摘要说明 8 /// </summary> 9 public class CommonDefine10 {11     public CommonDefine()12     {13         //14         //TODO: 在此处添加构造函数逻辑15         //16     }17 18     /// <summary>19     /// 取报表服务器地址20     /// </summary>21     /// <returns></returns>22     public static string getReportServerUrl()23     {24         return ConfigurationManager.AppSettings.Get("ReportServer").ToString();25 26     }27 28     /// <summary>29     /// 取报表项目名30     /// </summary>31     /// <returns></returns>32     public static string getReportProjectName()33     {34         return ConfigurationManager.AppSettings.Get("ReportProjectName").ToString();35     }36 }
复制代码

  web.config文件(报表服务器地址的配置):

    <appSettings>        <!--报表服务器地址-->        <add key="ReportServer" value="http://localhost/ReportServer/"/>        <!--报表项目名称-->        <add key="ReportProjectName" value="/MYTEST_REPORT_PROJECT/"/>    </appSettings>

  如果需要在后台为报表传递参数,可以使用如下代码:

复制代码
 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 using Microsoft.Reporting.WebForms; 8  9 public partial class Page_ReportView : System.Web.UI.Page10 {11     protected void Page_Load(object sender, EventArgs e)12     {13         if (!Page.IsPostBack)14         {15             ReportBind();16             SetReprotParameters();17         }18     }19 20     private void ReportBind()21     {22         ReportViewer1.ServerReport.ReportServerUrl = new Uri(CommonDefine.getReportServerUrl());    //CommonDefine.getReportServerUrl()方法通过配置文件读取报表服务器的地址23         ReportViewer1.ServerReport.ReportPath = CommonDefine.getReportProjectName() + "RP_STUDENT_COURSE_POINT_STA";    //CommonDefine.getReportProjectName()方法通过配置文件读取报表所在目录24         ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;  //设定报表的访问为远程访问25         //ReportViewer1.DataBind();26     }27 28     private void SetReprotParameters()29     {30         List<ReportParameter> paramList = new List<ReportParameter>();31         paramList.Add(new ReportParameter("STUDENT_NO", "STD001", true));32         paramList.Add(new ReportParameter("STUDENT_NAME", "", true));33         ReportViewer1.ServerReport.SetParameters(paramList);34     }35 }
复制代码

   在浏览器中查看页面。

05

  现在已经成功把报表嵌入到页面了。

 

 

微软正版 SQL Server 2012 软件 下载链接:http://item.taobao.com/item.htm?spm=686.1000925.0.0.506TnK&id=42632684374

微软正版 SQL Server 2014 软件 下载链接:http://item.taobao.com/item.htm?spm=686.1000925.0.0.506TnK&id=42572815714

0 0
原创粉丝点击