文档章节

VB.NET rdlc 报表的使用

白志华
 白志华
发布于 2015/10/18 10:56
字数 1456
阅读 67
收藏 0
点赞 0
评论 0
        在学习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了,运行部分就交给你自己测试了。我也算初识报表吧,如果有什么错误的地方,欢迎大家指正,大家共同探讨,共同进步。
 转载的朋友请说明出处: http://blog.csdn.net/xiaoxian8023/article/details/7106588
 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/7106588

共有 人打赏支持
白志华
粉丝 29
博文 260
码字总数 57524
作品 0
长沙
程序员
不用Visual Studio,5分钟轻松实现一张报表

常规的报表设计,如RDLC、水晶报表等,需要安装Visual Studio,通过VS提供的报表设计界面来设计报表,通过VS设计报表对.NET开发者而言非常方便,但是对于非开发人员,要安装4G的一个VS,且需...

葡萄城控件技术团队 ⋅ 2014/08/19 ⋅ 0

微软的开源报表组件--RDLC

Visual Studio .NET进入2005版本以后,Crystal Report与IDE的结合更“紧密”了,至少我们看不到那个讨厌的注册窗口了。但是,Microsoft似乎并不容忍在自己的超级工具中竟然没有报表工具,于是...

匿名 ⋅ 2010/07/27 ⋅ 0

未能加载文件或程序集microsoft.reportviewer.winforms

1) RDLC报表所需的4个DLL文件提取 RDLC报表文件部 署在客户端若要正常工作,需4个dll文件,分别是:Microsoft.ReportViewer.Common.dll、Microsoft.ReportViewer.ProcessingObjectModel.dl...

老朱教授 ⋅ 2017/11/26 ⋅ 0

RDLC报表格式化format表达式

刚开始接触RDLC报表,觉得RDLC报表提供的格式化工具太少,不像Crystal Report一样那么多的API支持,用起来多少的灵活啊。 由于RDLC报表中有相关的日期格式字段,因此自然而然的就需要对日期字...

zting科技 ⋅ 2017/01/02 ⋅ 0

报表,是件容易的事吗?

上周《不用Visual Studio,5分钟轻松实现一张报表》这篇文章发表后,短短的24小时,在博客园就有超过1600的阅读量和16个评论,刷了我们博客阅读量的新高。 偶然间,翻起以往的ActiveReports...

葡萄城控件技术团队 ⋅ 2014/08/26 ⋅ 0

SSRS用自定义对象绑定报表

有一个报表的数据源是一个对象的List, 这个对象List中还有层级,其中还有其他的对象List,这样的层级有三层。其数据是从数据库中取出来的。其LINQ的操作太多了而且复杂,所以不太可 能从LIN...

mikelij ⋅ 2013/08/03 ⋅ 0

winform中rdlc报表问题

winform中rdlc报表,能实现选择性打印和分页功能(有四个checkbox,窗体初始化时是默认选中的,当取消选中时候,也就是不打印相关内容(隐藏),我是在rdlc中用了四个矩阵展示的数据,他们是一...

今夜 ⋅ 2012/02/29 ⋅ 0

rdlc报表如何在html中使用

如题,因为项目要求,全部都是在html的页面,请问rdlc报表可以在html中使用吗?如果可以,求Demo。 跪谢!!!

栋11 ⋅ 2014/06/22 ⋅ 1

Winform开发框架中的综合案例Demo

在实际的系统开发中,我们往往需要一些简单的的案例代码,基于此目的我把Winform开发框架中各种闪光点和不错的功能,有些是我们对功能模块的简单封装,而有些则是引入了一些应用广泛的开源组...

walb呀 ⋅ 2017/12/04 ⋅ 0

批量标签打印软件--barcodeprinter

公司仓库用到标签打印,写了个小白程序,相对于市面上标签打印软件,这个是开放源码,免费使用,自定义随便, 使用 Microsoft ReportView报表打印,装个vs2015就可以设计打印报表了。 本程序...

panlishou ⋅ 2017/02/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JAVA RMI

什么是JAVA RMI Java RMI (Remote Method Invocation) 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Proced...

saulc ⋅ 27分钟前 ⋅ 0

Linux系统工程狮养成记

如今的社会,随着时代的发展,出现了很多职业,像电子类,计算机类的专业,出现了各种各样的工程师,有算法工程师,java工程师,前端工程师,后台工程师,Linux工程师,运维工程师等等,不同...

linux-tao ⋅ 37分钟前 ⋅ 0

进入编辑模式 vim命令模式 vim实践

1.

oschina130111 ⋅ 37分钟前 ⋅ 0

mysql用户管理、常用sql语句、mysql数据库备份恢复

1. mysql用户管理 mysql默认有一个root超级管理员账户,实际工作环境中不可能每个人都用此root权限,防止误操作、误删除,可以给单独的用户进行授权。 Mysql创建用户以及授权: grant all on...

laoba ⋅ 38分钟前 ⋅ 0

类型后面三个点(String...)和数组(String[])的区别

类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Obj...

流氓兔- ⋅ 44分钟前 ⋅ 0

JEPLUS表格组件之表格合并——JEPLUS软件快速开发平台

JEPLUS表格组件之表格合并 我们在列表配置时会遇见这样的一种情况,需要对个人的数据进行统一化,对一些数据进行归类,这样展示出来美观又直观,在这篇笔记中我来给大家介绍下如何配置出来专...

JEPLUS ⋅ 45分钟前 ⋅ 0

golang 并发中全局唯一操作

package main// go 携程共享 数据// 加锁解锁操作// 同步锁import ("sync""fmt")// 创建Once结构var once = sync.Once{}func computed(data *int, lock *sync.Mut...

304158 ⋅ 45分钟前 ⋅ 0

Mobx入门之二:asynchronous actions

这一节主要看mobx怎么实现asynchronous actions 1 要实现的demo功能 输入地名,查询天气,利用openweathermap api 2 思想 observable观察数据:location地点、temperature温度 observer响应式...

pengqinmm ⋅ 48分钟前 ⋅ 0

【2018.0620学习笔记】【linux高级知识 13.4-13.6】

13.4 mysql用户管理 创建用户并授权: grant all on *.* to '用户名'@'ip' identified by '密码' //all是操作权限,*.*是库.表,指定格式是'用户名'@'localhost'才能用socket登录本地 gra...

lgsxp ⋅ 今天 ⋅ 0

Java强弱引用示例

package jdk;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;public ......

月下狼 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部