博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ReportViewer实例教程(转载)
阅读量:5368 次
发布时间:2019-06-15

本文共 4837 字,大约阅读时间需要 16 分钟。

本示例操作 主要实现

a. ReportViewer关联Report1.rdlc的简单呈现

b. 对带有报表参数的Report1.rdlc的呈现

c. 利用程式生成的DataSet 填充报表

d. 调用存储过程 生成DataSet 填充报表

==========

简单的呈现

==========

1. 打开VS2005,文件->新建->网站 选择语言种类(C#)

2. 在该解决方案下 设计其已经生成的Default.aspx

3. 将工具箱-数据下的ReportViewer 拉入Default.aspx的设计界面

4. 在用鼠标选中ReportViewer1时 可以看到其右上角的 小三角 图标

5. 用鼠标点击该小三角 将展开 ReportViewer任务 快捷菜单

6. 由于本项目 目前还没有做好的报表 所以 选择 设计新报表

7. 点击 设计新报表 后 将呈现报表Report1.rdlc的设计界面

8. 由于本项目 目前还没有做好的网站数据源

所以 此时要添加新数据源

(如果没有呈现“网站数据源”界面,可以点击报表设计界面,

此时上方菜单中多出现“数据”,“报表”等选项

可以在“数据”菜单下,选择“显示数据源”)

9. 点击“添加新数据源” 会出现“TableAdapter 配置向导”

10. 选择数据连接(如连接到本机的Northwind数据库),下一步

11. 选择是否要将连接字符串保存到应用程序配置文件中,下一步

12. 选择命令类型,此时 可以 点击 取消 按钮,退出向导

13. 全部保存

14. 选择 视图 菜单 下 “服务器资源管理器”, 可以看到刚才所建立的数据连接, 可以看到Northwind数据库下的表,视图,存储过程,函数

15. 在解决方案的树下 找到并打开App_Code文件夹下的DataSet1.xsd数据集

16. 可以看到 打开的数据集设计器 是空的,此时可以将“服务器资源管理器”下的Northwind的表或存储过程等拉入数据集设计器(如此时 拉入了Orders表 和Sales by Year这个存储过程)

17. 全部保存

18. 双击Report1.rdlc,打开报表设计界面 将此时的报表设计工具箱中的【报表项】的 【表】拉入报表设计界面

19. 选择 “数据”菜单下的“显示数据源”,

可以在网站数据源下 看到 DataSet1 下的 两个 表 orders 和 Sales by Year

20. 此时选择Orders下的任意字段 (如OrderID 和 CustomerID)

拉到Report1.rdlc设计界面的表的“详细资料”处 用于报表显示

21. 全部保存

22. 回到Default.aspx的设计界面,为ReportViewer1 绑定报表

选择ReportViewer1显示刚才设计好的Report1.rdlc

23. 全部保存,按F5或Ctrl F5 运行,以查看初步效果

======================================

接下来要为Report1.rdlc添加一个报表参数

======================================

24. 回到报表Report1.rdlc的设计界面

点击 报表 菜单 下的“报表参数”

25. 在报表参数在设置框中 添加一个报表参数 进行相关设置 并 确定以保存

(如其参数名称为rptParaA,类型为String)

26. 拉入一个文本框的报表项到Report1.rdlc的设计界面 以做为该报表的标题显示

27. 选中并右键单击该文本框,在弹出的菜单中选择“表达式”,

进入“编辑表达式”的对话框

28. 在“编辑表达式”的对话框中,选择 参数,

并双击刚才设置的rptParaA,使文本框的值=Parameters!rptParaA.Value

29. 保存对Report1.rdlc的修改

30. 因为新的Report1.rdlc报表的文本框需要有报表参数值的传入

所以要在ReportViewer1 对Report1.rdlc的呈现时

对Default.aspx.cs的编辑

31. 在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程序的

 

中的的Name="DataSet1_Orders"是一致的

可以通过对DataSet的填充时的sql语句等的定制 来得到所需要的数据 以便报表呈现

需要注意的是由于ReportViewer1此时的关联报表为Report1.rdlc,所以DataSet的Tables[0]中的结构

一定要包含Report1.rdlc所呈现的字段,所以,这里的Sql语句为select top 5 * from orders

36.保存 运行 点击Button1 以便 报表呈现

===============================================

如果 报表所要呈现的数据 来源于存储过程

那么 在装载DataSet时 使其数据来源于存储过程即可

===============================================

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.保存 运行 点击按钮 报表效果查看

转载于:https://www.cnblogs.com/xusy/p/4832074.html

你可能感兴趣的文章
增强学习(一) ----- 基本概念
查看>>
ubuntu下USB连接Android手机
查看>>
C# 语句 分支语句 switch----case----.
查看>>
反射获取 obj类 的属性 与对应值
查看>>
表单中的readonly与disable的区别(zhuan)
查看>>
win10下安装配置mysql-8.0.13--实战可用
查看>>
周记2018.8.27~9.2
查看>>
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
Ctrl+Alt+Down/Up 按键冲突
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>