返回首页

asp.net动态生成报表技术

时间:2009-12-05 10:11来源:cn-web.com 作者:laohan 点击:
给政府做项目,经常要出一大堆统计报表,先前实现此功能一直用的是excel,缺点是每次操作完成都要遍历进程表来杀excel的进程。基于此,这次准备用微软的rdlc报表来实现此功能。 因
  

给政府做项目,经常要出一大堆统计报表,先前实现此功能一直用的是excel,缺点是每次操作完成都要遍历进程表来杀excel的进程。基于此,这次准备用微软的rdlc报表来实现此功能。

因为rdlc是基于xml文件格式的,这就为我们动态生成rdlc报表提供了可能性。

思路:设置一个rdlc报表模板,将其以xml形式读入内存中,进行xml节点操作,然后赋值给ReportViewer控件,以实现动态显示报表。

我们先大致分析下带表格和数据源的rdlc报表的格式:

<body>节点:

此节点的内容为rdlc报表的显示内容,我们要动态操作的表格、行、列等节点都在<body>节点下。<body>节点下可以包含若干个<table>节点,每个<table>节点下默认有<Footer><Details><Header><TableColumns>等几个重要的节点,<Footer><Details><Header>这几个节点又有<TableRow>、<TableCells>等节点。依次,我们对<body>节点的轮廓基本清楚了。

<Header>节点是我们设置表头的地方,在这里我们可以添加若干行,并合并若干列(注:不能合并行),进行表头设置;

<Details>节点为循环显示数据的节点;

<Footer>节点一般是设置报表统计等功能。

<TableColumns>节点是设置表格列的节点,常用的操作是设置列宽。

<DataSets>节点:

此节点的内容我们需要根据实际的数据源(datatable)来动态生成。

<DataSet Name="cn_web.com">,这个节点是设置数据源名称,这个名称在绑定数据源的时候要用到

<Fields>,根据实际的数据源(datatable)来动态生成Fields节点内容。

OK,动态生成rdlc报表,我们其实主要就是动态生成<body>节点和<DataSets>节点的内容,然后将其绑定到ReportViewer控件中(LoadReportDefinition)。

效果图:


图片1

机械打击、高空坠物等列由数据源自动生成。

在下一文章中将详细列举实现代码。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容