使用报告查看器在Asp.Net中显示RDLC报告

时间:2012-08-06 09:36:05

标签: asp.net visual-studio-2010 c#-4.0 rdlc

使用VS 2010并创建了一个示例Web应用程序。添加了数据集和报告,并创建了一个只返回一行的SP。目前没有变量。只是简单的SP没有任何参数。在Web应用程序中,添加了一个aspx页面,并在该页面中添加了一个报表查看器控件。  我的Aspx页面如下:

    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" 
        Font-Size="8pt" InteractiveDeviceInfos="(Collection)" 
        WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
    </rsweb:ReportViewer>

背后的代码如下:

protected void Page_Load(object sender, EventArgs e)
        {
            ReportViewer1.Visible = true;
            ReportDataSource dataSource = new ReportDataSource("DataSet1", LoadData().Tables[0]);
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(dataSource);
            ReportViewer1.LocalReport.Refresh();
        }

        private DataSet LoadData()
        {
            var dataset = new DataSet();
            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["CString"].ConnectionString))
            {
                var command = new SqlCommand("[spSampleReport]")
                                  {
                                      Connection = con,
                                      CommandType = CommandType.StoredProcedure
                                  };

                var adap = new SqlDataAdapter(command);
                con.Open();
                adap.Fill(dataset, "DataSet1");
            }

            return dataset;
        }

在我的网络配置中,在httphandlers部分添加了以下内容:

运行时,页面上没有显示任何内容。甚至报表查看器工具栏也未显示。

2 个答案:

答案 0 :(得分:2)

我不是ReportViewer专家,但我认为您需要一个.rdlc来告诉报告查看器要渲染的内容。

ReportViewer.LocalReport.ReportPath = Server.MapPath(string.Format(@"~\Reports\Definitions\{0}.rdlc", reportName));

确保.rdlc中的DataSet名称与创建 ReportDataSource

时指定的DataSource相同

答案 1 :(得分:0)

我找到了一个很好的例子来在asp.net中使用代码示例生成rdlc报告

http://www.dotnetsharepoint.com/2013/09/how-to-create-rdlc-reports-in-aspnet.html#.UjhvAsafh88