求vs2013报表控件ReportViewer详解矩阵 有源代码和视频最好。
ReportViewer实例教程
本示例操作 主要实现
a. ReportViewer关联Report1.rdlc的简单呈现
b. 对带有报表参数的Report1.rdlc的呈现
c. 利用程式生成的DataSet 填充报表
d. 调用存储过程 生成DataSet 填充报表
在Default.aspx.cs加入引用
using Microsoft.Reporting.WebForms;
在Page_Load中加入如下代码
ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");
ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });
32.保存并运行 以查看效果
接下来,需要对所要呈现的报表资料 进行定制
也就是通过设计DataSet
33.设置ReportViewer1的Visible为false
34.在Default.aspx的设计界面 加入一个按钮Button1
将通过此按钮的Click事件 实现对数据库的访问 以及DataSet的数据填充
和对ReportViewer1的资料绑定
35. Default.aspx.cs加入引用
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
Button1_Click中的代码示例如下
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders", myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
ReportViewer1.Visible = true;
ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");
ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });
ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
注意ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);
的"DataSet1_Orders"是与前台html程序的
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="400px" Visible="False" Width="400px">
<LocalReport ReportPath="Report1.rdlc">
<DataSources>
/rsweb:ReportViewer
中的的Name="DataSet1_Orders"是一致的
可以通过对DataSet的填充时的sql语句等的定制 来得到所需要的数据 以便报表呈现
需要注意的是由于ReportViewer1此时的关联报表为Report1.rdlc,所以DataSet的Tables[0]中的结构
一定要包含Report1.rdlc所呈现的字段,所以,这里的Sql语句为select top 5 * from orders
36.保存 运行 点击Button1 以便 报表呈现
如果 报表所要呈现的数据 来源于存储过程
37.右击项目 添加新项 ,选择 报表,向项目中加入Report2.rdlc,
设置其呈现的数据来源为存储过程 Sales by Year
同样的在Report2.rdlc的设计界面 加入“表”报表项
并将网站数据源下的DataSet1下的Sales by Year表中的字段
拉入报表项“表”在详细数据中 进行显示
38.如同Default.aspx 向项目中添加新的页面Default2.aspx
向Default2.aspx加入一个Button 和 ReportViewer1
并设置ReportViewer1所要呈现的报表为Report2.rdlc
设置ReportViewer1的Visible为false
双击Button 进行其Click事件的编写
设置Default2.aspx为项目的起始页
39.在Default2.aspx.cs加入引用
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
40.Button1_Click的事件代码示例如下
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter("Sales by Year", myConn);
myda.SelectCommand.Parameters.AddWithValue("@Beginning_Date", "1997-10-10");
myda.SelectCommand.Parameters.AddWithValue("@Ending_Date", "2000-10-10");
myda.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
ReportViewer1.Visible = true;
ReportDataSource rds = new ReportDataSource("DataSet1_Sales_by_Year", myds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
}
41.保存 运行 点击按钮 报表效果查看