zoukankan      html  css  js  c++  java
  • Reporting Service报表开发

           项目中需要用到报表,经过技术验证和成本方面的考虑,最后决定使用Reporting Service,因此在这里把开发中的一些故事记下来,以备后用。

           开发环境:VS2005,SQL SERVER 2005 SP3,这里说下为什么要用SP3,安全问题嘛,呵呵,如果用SP2,就会出现报表无法打印,报的错误是“无法加载客户端打印控件”,升级成SP3就OK了。

         一、 中国式报表

          对于形如Grid的这种表格,用RS来做超级简单,直接拖拽个表格就OK了。难的是中国式报表,比如下面这个:

        

        直接用表格来做比较麻烦,用矩阵来做的话,上图中的“其中”又不好画出来。

        对这种情况,偷一下懒,先用文本框绘制静态的部分,堆一个表格,然后用表格来显示空具体的数据

    最后运行的结果

     

    二、在web中显示报表

          将前面的报表稍微修改下,在数据源里加上一个参数,比如

    SELECT  top 8 s.SalesOrderID, e.EmployeeID, e.Title, s.SalesOrderNumber, title=@title
    FROM     Sales.SalesOrderHeader AS s INNER JOIN
                   HumanResources.Employee AS e ON s.SalesPersonID = e.EmployeeID

    这里的@title就是一个参数,需要在运行的时候提供

          在web中显示报表可以通过MS提供的ReportViewer控件,

    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
                Height="487px" ProcessingMode="Remote" Width="1094px">
                <ServerReport ReportPath="/Dynamic Query Tutorial/SmallSchoolBase7" />
     </rsweb:ReportViewer> 

          在控件的标记里可以直接设定报表所在的路径,当然,这些都可以在代码里来实现

          比如

                    ReportParameter parameter = new ReportParameter("title", "test");//添加参数
                    List<ReportParameter> list = new List<ReportParameter>();
                    list.Add(parameter);
                    this.ReportViewer1.ServerReport.SetParameters(list);
                    this.ReportViewer1.ShowParameterPrompts = false;   //不显示参数提示

         运行的效果:

       

       

  • 相关阅读:
    springMVC工作原理
    关于VS调试Web 无法启动IIS Express Web 服务器的问题解决
    用泛型创建SqlServerHelper类实现增删改查(一)
    laytpl--前端数据绑定
    安装.NET Core 运行时和托管包后,.Net Core项目选择不到安装的.Net Core Sdk,导致项目加载失败
    .Net上传图片的一些问题
    微信退款参数格式错误
    Ajax设置自定义请求头的两种方法
    asp.net获取当前请求的url
    Windows服务器上使用phpstudy部署PHP程序
  • 原文地址:https://www.cnblogs.com/xiaoqi/p/1456919.html
Copyright © 2011-2022 走看看