在windows应用程序中用ReportViewer显示程序运行中生成的DataSet中的数据
Posted on 2007-11-18 13:54 xshy 阅读(2391) 评论(1) 收藏 举报在VS2005平台中,虽然可以根据它提供的一系列向导生成rdlc报表文件,而且在把该报表文件绑定到ReportViewer控件时,也可以填充数据源并配置查询条件。但是我们大多时候希望动态地生成查询结果,然后将查询结果(一般是DataSet)交给ReportViewer显示。本文以windows应用程序为例实现了这个功能,Web应用程序道理类似。
1, 新建一个windows应用程序,命名为report。
2, 将工具箱-数据下的ReportViewer控件拖入窗体Form1的设计器中。点击右上角的小三角图标展开ReportViewer任务 快捷菜单,选择 设计新报表,此时会打开报表Report1.rdlc设计界面。
3, 此时如果项目中已经有存在的数据源可以直接使用,report项目中没有已经做好的数据源,所以需要新建数据源。这里我们选择 添加新数据源,会出现“数据源配置向导”,选择从 数据库 获得数据,下一步选择或新建数据连接(这里以连接到ibm服务器上的NorthWind数据库为例),填写好连接信息,选择在连接字符串中包含连接信息中的敏感数据这个复选项,下一步出现所连接数据库中的所有数据对象,包括表、视图、存储过程、函数。在所有表中选中Customers这张表,给DataSet命名为CustomDS。点完成生成数据集CustomDS,保存结果。
4, 双击Report1.rdlc,打开报表设计界面,将此时的报表设计工具箱中的 报表项 的 表 拖入 报表设计界面。选择 “数据”菜单下的“显示数据源”,可以在数据源下看到CustomDS中包含Customers及其所有字段,任意选其中的多个字段将其拖入Report1.rdlc设计界面的表的“详细资料”处 用于报表显示。这里应该选希望用于生成报表的所有字段,例如我们选前四个字段。保存结果。
5, 回到Form1的设计界面,按第二步中的操作将刚才设计好的Report1.rdlc绑定到ReportViewer1上,为ReportViewer1选择报表后,打开 数据源 为报表的数据源(在我们的例子中是CustomDS_Customers,请记住这个名称,后面编程还要用到!)指定一个实例,为了简单起见,就用我们刚才建立的CustomDS中的Customers表作为数据源实例。此时全部保存结果,编译一下可以看到初步运行结果。
下面,就需要对呈现的报表资料进行定制,也就是用自定义的操作生成符合我们需要的DataSet,然后用此DataSet的数据对报表进行资料绑定和呈现。详细代码和注释如下:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

运行效果图: