在web项目中如何使用rdlc报表

引言: 以前在web项目中用到报表的时候 我们使用的是ReportServices (服务器端的)

使用效果还可以 缺点是: 需要在Sqlserver2005里面建立报表(需要 启动报表服务 设置权限等很繁琐)

感觉不如在程序里面来的直接和方便(以前一直没有找到办法)

一直到2010年底,一家客户 装的是Sqlserver2008 (原来做的自动发布报表 使用的是Sqlserver里面的一些Webservices函数)

但Sqlserver2008里面没有这些方法了 (只有接口的名称 没有实现)

我们报表的自动发布没法做了 只得打开Sqlserver 一个一个报表添加的 (郁闷...)

后来 我们一个同事(李来)做的Web报表(rdlc格式) 在本地做的(Web工程里面) 没有使用Sqlserver 里面的

这样就很方便了 下面我举例说明一下用法:

1.  建立一个文件夹(就举个例子是RDLC文件夹吧)

在项目上 右键选择添加/新建项 /报表 (新建立一个rdlc文件)

至于这个文件怎么使用  和 服务器端的(Sqlserver)相同 我省略....

数据源使用( 第二步建立的XSD数据源 在下面会有介绍 )

2. 建立一个文件夹(就举个例子是XSD文件夹吧)

在项目上 右键选择添加/新建项 /数据集 (新建立一个xsd文件)

在这个临时表里面增加列

3. 新建立一个aspx网页 选择ReportViewer 控件

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

  <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
        Height="400px" Width="400px">
        <LocalReport>
        </LocalReport>
    </rsweb:ReportViewer>

4. 在后台代码里面

            ReportViewer1.LocalReport.ReportPath = @"rdlc\Report1.rdlc";

            //如何传参数

            ReportParameter myParameter = new ReportParameter("参数01", "参数的值");
            ReportParameter[] myParameterList = { myParameter };

            ReportViewer1.LocalReport.SetParameters(myParameterList);
            //

            //DataSet1_DataTable1 指的是报表文件中数据源的名称

    //myDataSet 指的是数据源(就是您从数据库里面查询出来的数据)

            ReportDataSource rds = new ReportDataSource("DataSet1_DataTable1", myDataSet.Tables[0]);
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(rds);
            ReportViewer1.LocalReport.Refresh();

5. 如果不知道报表的数据源的名称的话

  您在aspx页面上 单击ReportViewer1的右上角 选择一个本地数据源 /选择数据源

其中的报表数据源 就是数据源的名称

结束语:

到此 就可以试运行一下您的web报表了

这个报表还可以直接在网页里面调用客户端的打印机(在vs2010里面试验的)

2011年3月29日19:38:55 过了好几天 再补充一下:

<1> XSD文件的文件夹好像有要求 如果放到一个文件夹里面 就找不到 xsd数据源(不应该啊) 不过这个细节也是个经验

<2> 报表的DLL版本的问题 最近升级公司的一个项目(从VS2008->VS2010) 报表(ReportingServices)从8.0->10.0

     需要注意的是:引用里面添加ReportingServices WebForm 10.0版本

                      在页面上 也是使用10.0 在Web.config文件里面同样使用这个版本

posted @ 2011-02-24 20:13  郑文亮  阅读(3747)  评论(1编辑  收藏  举报