使用 ReportViewer控件制作报表(1)
bili_880066
2024年08月24日 15:42
收录于文集
共26篇

使用Microsoft visual studio C# + ReportViewer报表

 

1.相关概念:

(1)ReportViewer 控件功能:

向自定义应用程序中添加功能齐全的报表。报表可以包含表格格式数据、聚合数据和多维数据。

控件有两种版本:

①ReportViewer Web 服务器控件用于在 ASP.NET 项目中驻留报表。

②ReportViewer Windows 窗体控件用于在 Windows 应用程序项目中驻留报表。

ReportViewer:位于Microsoft.Reporting.WinForms命名空间 或Microsoft.Reporting.WebForms命名空间

 

这两种版本的控件都可以配置为以本地处理模式或远程处理模式运行。

①“本地处理模式”是指 ReportViewer 控件在客户端应用程序中处理报表。所有报表都是使用应用程序提供的数据作为本地过程处理的。若要创建本地处理模式下使用的报表,需要使用 Visual Studio 中的报表项目模板。

②“远程处理模式”是指由 SQL Server 2005 Reporting Services 报表服务器处理报表。在远程处理模式下,ReportViewer 控件用作查看器,显示已经在 Reporting Services 报表服务器上发布的预定义报表。从数据检索到报表呈现的所有操作都是在报表服务器上处理的。若要使用远程处理模式,则必须具有 SQL Server 2005 Reporting Services 的许可副本。有关更多信息,请参见将 ReportViewer 配置为进行远程处理。

 (2)概念:.rdlc文件

(Report Definition Language Client)报表定义文件,以rdlc结尾的文件,是可视化设计报表模板。 报表基于报表定义,它是一个说明数据和布局的 XML 文件。当您将报表项添加到项目并定义报表布局时,Visual Studio 将为您创建报表定义。在本地处理的报表定义的文件扩展名为 .rdlc。发布到报表服务器的报表定义的文件扩展名为 .rdl。这两种类型的报表定义文件都使用报表定义语言 (RDL)(SQL Server 2005 联机丛书中介绍的一种 XML 语言)编写。

 

  

2.报表种类:使用报表模板和与客户端报表定义 (.rdlc) 文件一起提供的设计支持,可以通过 ReportViewer 控件生成以下种类的报表:

(1)“自由格式”报表由文本框、数据区域、图像和其他报表项构成。当生成自由格式的报表时,应使用列表和矩形将各项保持在一起。可以使用嵌套数据区域和嵌入子报表来封装报表中的数据。

(2)“多列”报表以多个连续的列显示数据,其中数据一列接着一列地排列,类似于报纸格式。有关更多信息,请参见“报表属性”-“布局”选项卡(Visual Studio 报表设计器)。

(3)“钻取”报表通过指向支持信息的链接可以使您进一步浏览数据。添加到报表的钻取操作提供了指向相关报表的导航路径。

(4)“交互式”报表包含链接、书签、文档结构图以及允许创建切换项以显示或隐藏报表部分的显示/隐藏功能。您可以使用可见性和切换属性创建明细报表。明细报表包含汇总数据,用户可以将其展开,从而在主报表内查看支持详细信息。

(5)“简单”报表可能包含单个表或图表。您可以创建多个简单报表,然后将它们组合到单个表单或网页,以获得面板效果。

 

 

3.报表组成部分

报表“工具箱”提供了用于在可视化环境中设计客户端报表定义 (.rdlc) 文件的各种生成块。可以在报表中使用以下项:

(1)“文本框”用于显示单个实例数据。文本框可以放在报表上的任何位置,可以包含标签、字段或计算数据。您可以使用表达式来定义文本框中的数据。

(2)“表”是用于创建表格格式报表或向报表添加表结构的数据区域。

(3)“矩阵”是将数据排列成在特定数据点相交的列和行的数据区域。矩阵提供的功能与交叉表和透视表类似。与包括一组静态列的表不同的是,矩阵的列可以是动态的。您可以定义包含静态和动态的行和列的矩阵。

(4)“图表”是用于创建可视化数据的数据区域。可以创建各种类型的图表。

(5)“图像”用于在报表中显示二进制图像数据。可以使用 .bmp、.jpeg、.gif 和 .png 格式的外部图像、嵌入图像或数据库图像。

(6)“子报表”用于将一个报表嵌入到另一个报表。子报表可以是独立运行的完整报表,也可以是嵌入到主报表中才表现最佳的报表。定义子报表时,还可以定义用于筛选子报表数据的参数。

(7)“列表”是用于显示单个字段的重复行数据或包含其他报表项的数据区域。

(8)“矩形”用作图形元素或作为其他报表项的容器。如果在矩形内放入报表项,则可以随矩形一起移动这些报表项。

(9)“线条”是可放在页面上任何位置的图形元素。线条没有与其关联的数据

 报表中的所有项(包括数据组、表、矩阵列和矩阵行)以及报表本身都有关联的属性。这些属性控制着报表项的外观和行为。

 

 

4.使用步骤:

(1)准备 数据源,测试好,显示出库文件内的表及视图,在数据源窗口中显示出所选择表及表内的字段,以备使用,同时在资源管理器中,也可以看到新增加的数据文件。

 

(2)向窗体中添加ReportViewer控件:

通过将 ReportViewer 控件从 Visual Studio 工具箱的“数据”部分拖动到应用程序中的页面或窗体上,可以将该控件的一个或多个实例添加到 Microsoft Windows 或 ASP.NET 应用程序中。 (也可以使用智能标记面板和属性来配置该控件和绑定报表。如果要以编程方式配置该控件,则也可以编写代码)

 注意:ReportViewer 控件一次显示一个报表定义。如果希望能够同时查看多个报表,可以将该控件的多个实例合并在一个页面或窗体上。如果用户每次仅显示一个报表,则也可以使用该控件的单个实例承载多个报表。若要使用单个控件显示报表序列,必须编写代码将报表与要使用的 ReportViewer 控件实例关联起来。

ReportViewer控件集成了报表查看、打印预览等功能,可直接打印,也可导出报表数据至Excel文件或PDF文件。

 

(3)编辑ReportViewer

使用 加入的ReportViewer控件的右上角的小三角(智能标记),点击后,出现一个菜单,选择“设计新报表”启动报表设计器,并在您的应用程序中创建报表定义 (.rdlc) 文件。可以在您的应用程序中创建在客户端本地处理的新报表:

通过将工具箱中的表、文本框、矩阵、列表或图表添加到空白报表来定义报表布局。这些项称为“数据区域”。就是将数据区域中的每个单元映射到数据源中的字段。

 

 

参考:

https://learn.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/ms251671(v=vs.100)

https://blog.csdn.net/wzk456/article/details/81875063

https://learn.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2008/ms251671(v=vs.90)