开发者社区> 龙轩8023> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

VB.NET rdlc 报表的使用

简介:         在学习vb6时,使用的报表是第三方的Grid++Report,纠结了一番,现在换到了VB.Net,有花了一天的时间来捣鼓。不过感觉还是很有收获,拿出来分享一下。
+关注继续查看
        在学习vb6时,使用的报表是第三方的Grid++Report,纠结了一番,现在换到了VB.Net,有花了一天的时间来捣鼓。不过感觉还是很有收获,拿出来分享一下。

第一阶段【添加数据集】

       首先在微软官网下载了报表并安装之。打开VS2010,在项目中添加“新建项”,在“已安装的模版中”选择“Reporting”—》“报表”,在最下方键入名称。

打开“工具箱”,可以按照自己的需求,或拽和编辑各种控件。也可以在“报表数据”为报表添加“内置字段”和“参数”。打开“报表数据”的操作:“视图”—》最后一项“报表数据”,或者按“Ctrl + Alt + D ”。 既然是报表,当然离不开数据了。我这里选择用数据库作为数据源。在报表数据工具栏中,点击“新建”—》“数据集”

会弹出一个新建数据集的界面:

这里选择“数据库”,下一步,“数据集”,点击“新建连接”,选择好服务器名、密码和数据库。测试一下:成功后,确定。

                        

选择你所需要的表、视图、函数或存储过程。

确定后,返回到这个界面,你可以更改数据集的名称(编程时绑定的数据集名称要与报表中数据集的名称一致)、选择具体的表、视图等。然后确定。

这样在“报表数据”栏中就可以看到新建的数据集了。


第二阶段【设计报表】

介绍一些设计报表的工具箱,在VS2010 IDE左侧“工具箱”中的报表项,文本框用于可以显示文字、传递参数。表和矩阵则可以用来存放数据。不同的是表是针对于“列数固定、行数可变的数据”设计的,而矩形则是针对于“列数与行数均可变”的聚合数据设计的。 一般数据库中的表字段都为英文,但是显示的时候,都用中文,为了保证数据隐秘,也应该用中文。说说表中的实现,对于行标题,直接修改即可,而数据行可以修改,也可以不修改。数据行由字段占位符构成,可以右击编辑占位符的属性来实现显示中文。在查询报表时,占位符会被真实数据所代替。,也可以编辑表达式,用 !符号来做找到字段属性。矩阵跟列表框差不多。

      

       

矩形可以作为其他报表项的容器,列表则是用于显示每一个组或数据行重复的数据项。列表框可以通过编辑矩形属性,在可见性中绑定报表中的数据项。图像则是用于显示图片的,可以手动导图。

       对于需要汇总比较数据的用户来说,图表则是你的不二选择。在右侧添加要比较的字段,顶部则添加汇总的项,底部则添加类别字段。仪表则用线性或径性方式来显示数据、字段、表达式等,我们可以针对仪表、仪表刻度、仪表指针、仪表范围的进行数据绑定。

         

       以上各个控件,都可以通过其属性编辑背景色、字体大小等。属性中也有各自的特点,期待着你自己去发现。
添加参数:在报表数据中的参数选项上,右击选择添加参数。然后改名,并针对传递的参数设置数据类型。我这里需要是时间类型。(编程传参时的参数类型必须与这里选择的数据类型相对应,如果不对应,会出现“本地报表处理错误”的问题。)也可以对参数设置默认值,或者为空。具体一看就明白了。将参数拖入到报表中显示会在参数名前自动添加 @ 符号,来表示参数.而内置字段则用 & 符号表示。

              

 
第三阶段【编程部分】
 
下面是我做的报表模版及运行结果界面:

 

首先,在项目中新建一个windows窗体,将ReportViewer拖放到窗体上,调整合适的大小与位置。


首先在窗体代码页最上面引入2个命名空间
Imports System
Imports Microsoft.Reporting.WinForms
双击查询,打开Click事件:
    Private Sub btnQuery_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuery.Click

        Dim dt As DataTable
        Dim b_CheckDay As New B_CheckDayLog

        '大家可以自己的实际情况查询数据。我这里用了分层,查询的具体实现不在这层。 
        If chkEnd.Checked Then
            If chkUser.Checked Then
                '获取记录
                dt = b_CheckDay.QueryCheckLog(cmbUserID.Text, dtpStart.Text, dtpEnd.Text)
            Else
                '获取记录
                dt = b_CheckDay.QueryCheckLog(dtpStart.Text, dtpEnd.Text)
            End If
        Else
            '获取记录
            dt = b_CheckDay.QueryCheckLog(dtpStart.Text)
        End If

        '【这里是重点】
        '声明一个报表数据源对象
        Dim rptDataSource As New ReportDataSource

        '设置报表数据源名称
        rptDataSource.Name = "Check"
        '设置报表数据源实例
        rptDataSource.Value = dt

        '设置嵌入报表的资源的名称
        ReportViewer1.LocalReport.ReportEmbeddedResource = "UI.CheckDay.rdlc"
        '清空报表数据源
        ReportViewer1.LocalReport.DataSources.Clear()
        '添加报表数据源
        ReportViewer1.LocalReport.DataSources.Add(rptDataSource)

        '设置报表中的参数集合,这里传递的参数,名字大小写必须一致,
        '且其本身数据类型必须与报表中定义的数据类型也必须一致。
        Dim params() As ReportParameter =
            {
                New ReportParameter("DateStart", Date.Parse(dtpStart.Text)),
                New ReportParameter("DateEnd", Date.Parse(dtpEnd.Text))
            }

        '传递报表中的参数集合
        ReportViewer1.LocalReport.SetParameters(params)

        '刷新报表
        Me.ReportViewer1.RefreshReport()

    End Sub

 
现在一切OK了,运行部分就交给你自己测试了。我也算初识报表吧,如果有什么错误的地方,欢迎大家指正,大家共同探讨,共同进步。
 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
VC++ .NET 2003 –安装和使用Boost 1.30和Blitz++0.6
接下来,还有接下来了吗?回头看看我们的已经走了很远了,但愿你用同样的步伐在和我一起前进,最后我们来一起看一下 Biltz++ 吧,我已经没有力气在畅情漪动的介绍有关 Biltz 的有关故事和历史了。必须承认这些类库都是老字号的招牌类库,是 C++ 社团的辉煌、是激情创造力的溢出,就这些足以让 .
1221 0
【翻译】在Mac上使用VSCode创建你的第一个Asp.Net Core应用
Setting Up Your Development Environment 设置你的开发环境 To setup your development machine download and install .NET Core and Visual Studio Code with the C# extension. Node.js and npm is also required. If not already installed visit nodejs.org. 首先在你的机器上下载.Net Core和Visual Studio Code和相应的 C#扩展插件。
1436 0
RDLC使用手册_RDLC报表部署
原文:http://blog.csdn.net/lwjnumber/article/details/6590545 9、  RDLC报表部署(限于rdlc报表 windows应用程序) 1)    RDLC报表所需的4个DLL文件提取 RDLC报表文件部署在客户端若要正常工作,需4个dll文件,分别是:Microsoft.
980 0
VS2012报表(RDLC)系列应用之单据批量打印
一、前言                        最近做的项目需要单据批量打印的功能,优先想到用RDLC来实现。经过Visual Studio几个版本的发展后,RDLC愈发成熟,操作方式也变得简洁,相比vs200...
1317 0
RDLC报表系列--------行分组报表
报表分组开发步骤:    先看总体效果:如图 下面就做个看看...    1.先将数据处理成如下结构 如图 2.创建数据集DataSet.xsd,创建表->右键选择添加数据表->添加行(ctrl+L 快捷键快速添加),默认类型string 将金额类型和时间类型改成相对于的类型.
696 0
"RDLC"报表-参数传递及主从报表
今天继续学习RDLC报表的“参数传递”及“主从报表” 一、先创建DataSet,如下图: 二、创建一个报表rptDEPT.rdlc,显示部门T_DPET的数据 三、嵌入Default.aspx中,写在Default.
1060 0
+关注
龙轩8023
熟悉javaee开发,有多年支付领域的开发经验。关注开源~ httpclientUtil开源项目创建者。https://github.com/Arronlong
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载