如何在asp.net webform下使用rdlc

最近做做一个mis的项目,需要用到了打印报表功能,原来是直接打印页面的,但是显示起来很不专业,所以想到使用vs自己带的rdlc报表进行处理。
优点:报表开发比较快,体积比水晶报表小很多,微软原生兼容性有保证
缺点:
1、样式显示问题,不知道是为啥,我创建的报表在谷歌内核下显示的时候,数据显示方面出现错位
2、用户使用报表显示的时候,会有插件下载的提示,可能在用户的客户端出现显示不出来的情况
 
以下代码在vs2008中调试成功
1、首先在项目中添加一个报表文件,名称成为report1.rdlc
 
然后添加DataSet  设置成名称"mydts" , 点击右键选择添加一个datatable,设置名称为dts
 
选择数据->显示数据源,显示出刚添加的myds
 
 
 
就可以使用拖动的方式对数据填写,对表格进行设计
 
 
2、前台aspx代码
  <%@ 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="1000px" Width="1000px">
        <LocalReport ReportPath="Report1.rdlc">
        </LocalReport>
    </rsweb:ReportViewer>--页面显示控件
 
3、后台代码
 
             ReportViewer1.LocalReport.ReportPath = @"Report1.rdlc";
            //如何传参数
            //ReportParameter myParameter = new ReportParameter("参数01", "参数的值");
            //ReportParameter[] myParameterList = { myParameter };
            //ReportViewer1.LocalReport.SetParameters(myParameterList);
    
             mydts.dtsDataTable dt2 = new mydts.dtsDataTable();
            for (int i = 0; i < 10; i++)
            {
                DataRow dr = dt2.NewRow();
                dr["dt1"] = i.ToString();
                dr["dt2"] = (i * 2).ToString();
                dr["dt3"] = (i * 3).ToString();
                dt2.Rows.Add(dr);
            }
            ReportDataSource rds = new ReportDataSource("mydts_dts", dt2);
    
          //这个地方的mydts_dts是你定义的dataset,dts是你定义的datatable
 
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(rds);
            ReportViewer1.LocalReport.Refresh();
 
4、有的时候程序在处理的过程中会提示“控件错误之类”的报错,需要重新打一个补丁,地址如下:
http://download.microsoft.com/download/0/9/d/09d3df2d-abec-4ebe-bc64-260b05a30feb/ReportViewer.exe
 
 
 

posted on 2013-03-01 13:32  owlbcc  阅读(2391)  评论(0编辑  收藏  举报

导航