感觉自己脑子里只剩下报表了,o(╥﹏╥)o。因为最近新换了公司,业务上有需要报表打印,水晶报表,快速报表,rdlc报表这三种以后可能都会用到。所以在没了解好业务流程,熟悉代码之前,就是看看这三种报表怎么用,有啥区别呢?ε=(´ο`*)))唉,说实话,不知道有啥区别,因为练习的demo都是比较简单的,所以。。。

我写这个主要是为了记录一下各个报表怎么添加参数啊,添加数据集啊,等等的一些代码,里面会掺一些我个人的浅显的看法【如有不妥,请指出】

一、水晶报表

这次的导出和我上次导出的方式不一样了。额,上次的没写随笔,忘了。这次就把两次的都贴出来吧,做个对比

第一种:直接把表选中作为数据源,然后往报表里面拖入。

代码:

 private void Form1_Load(object sender, EventArgs e)
{
CrystalReport1 crystalReport1 = new CrystalReport1();
crystalReport1.Load(Application.StartupPath + "CrystalReport1.rpt");
crystalReport1.ParameterFields["Title"].CurrentValues.AddValue("水晶报表一");
crystalReportViewer1.ReportSource = crystalReport1;
}

效果图:

第二种:通过命令,其实也就是写sql语句把要用到的字段筛选出来。

代码:

private void Form1_Load(object sender, EventArgs e)
{
#region 水晶报表
CrystalReport1 cr = new CrystalReport1();
var title = cr.Section1.ReportObjects["TextTitle"];
if (title.Kind == ReportObjectKind.TextObject)
((TextObject)title).Text = "XX一览";
cr.ParameterFields["type"].CurrentValues.AddValue("这是水晶报表");
crystalReportViewer1.ReportSource = cr;
#endregion
}

解释:看没看到报表模板里面有Section1(报表头),Section2(页眉),,,这样的字样?其实在这个cs文件中有着对Section的定义,我们也可以通过这个来获取报表对象。

下面说那个命令是怎么添加上的。

第一步:

第二步:

第三步:直到出现了“添加命令”,然后单击">"这个按钮。

第四步:右边也出现了“命令”,然后右键单击“命令”,选择“编辑命令”,在里面输入写好的sql语句即可。

#######################################分割线####################################################

二、快速报表

基本上和前一篇写的一样,就不重复了。链接:http://www.cnblogs.com/wsn1203/p/8920507.html

#######################################分割线####################################################

三、RDLC报表

报表模板:

代码:

private void Form3_Load(object sender, EventArgs e)
{
DataTable dt = null;
string conStr = "Server='127.0.0.1';database=demo;UID='sa';PWD='******';";
try
{
SqlConnection con = new SqlConnection(conStr);
con.Open();
string sql = @"select Dept.DeptID,Dept.DeptName,UserInfo.UserName,UserInfo.Salary from dbo.Dept left join dbo.UserInfo on Dept.ID=UserInfo.DeptID";
SqlCommand sqlcmd = new SqlCommand(sql, con);
SqlDataAdapter sda = new SqlDataAdapter(sqlcmd);
dt = new DataTable();
sda.Fill(dt);
con.Close();
sda.Dispose();
}
catch (Exception err)
{
MessageBox.Show(err.StackTrace);
} try
{
this.reportViewer1.LocalReport.ReportPath = @"Reports\Report1.rdlc";
ReportParameter rp = new ReportParameter("type", "rdlc报表");
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1",dt));
this.reportViewer1.RefreshReport();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}

这个rdlc的数据源不是直接从数据库中选取的,而是先添加的空的数据集,然后往数据集里拖入的DataTable,往DataTable里添加的需要的字段。所以我们需要在代码里给报表的数据集赋值。

最后结果:

简单的功能这三种都能实现,复杂的是我不能够复杂化。

水晶报表,快速报表,rdlc报表的更多相关文章

  1. 将RDL报表转换成RDLC报表的函数

    原文:将RDL报表转换成RDLC报表的函数 近日研究RDLC报表,发现其不能与RDL报表兼容,尤其是将RDL报表转换成RDLC报表.网上的资料贴出的的转换方式复杂且不切实际,遂决定深入研究.经研究发现 ...

  2. DevExpress的XtraReport和微软RDLC报表的使用和对比

    我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在W ...

  3. [转]RDLC报表格式化format表达式

    本文转自:http://www.cnblogs.com/samlin/archive/2012/04/17/FormatDateTime.html 刚开始接触RDLC报表,觉得RDLC报表提供的格式化 ...

  4. [转]使用RDLC报表

    使用RDLC报表(一) 1       建立数据源 启动VS2005新建一个窗体项目,命名为TestProj 在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”: 选择后出现对话窗体,选 ...

  5. 水晶报表和rdlc报表传入参数筛选

    在使用报表向客户展示结果数据时,实时的在报表中显示某些特定的数据是必需的,如:显示的部门.打印的日期等.本文只简单的演示向报表内传入一个字符值. 以下是设计好报表之后传入参数的具体操作 一.首先是水晶 ...

  6. C#制作RDLC报表

    报表以前我只做过水晶报表,但是最近发现家里的VS上面居然没有水晶报表,发现水晶报表现在貌似已经不能完全免费的使用了,为了保险起见,就用了VS自带的RDLC报表,用完感觉其实也是够用的嘛~ 建立一RDL ...

  7. RDLC报表系列(一) 简单的动态数据绑定和配置

    RDLC系列链接 RDLC报表系列(一) 简单的动态数据绑定和配置  RDLC报表系列(二) 行分组 RDLC报表系列(三) 总计和折叠 RDLC报表系列(四) 矩阵 RDLC报表系列(五) 简单的图 ...

  8. RDLC报表系列--------初级报表

    前面记录下了很多平时开发遇到的问题,RLDC之前也是不会,只会水晶报表,后来也慢慢的也上手了.把这些记录下来,以后用的着 1.打开VS添加新建项,选择Reporting,选择报表,后缀名为RLDC的名 ...

  9. 利用General框架开发RDLC报表

    RDLC是微软推出的自家的报表软件,虽然没有一些第三方的报表软件强大好用,但是作为VisualStudio集成的报表工具,在客户要求不高的情况下还是非常值得一用的,本文将介绍通过General代码生成 ...

随机推荐

  1. vscode设置python3.7调试环境(已更新)

    汇总系列:https://www.cnblogs.com/dunitian/p/4822808.html#ai CentOS安装Python3.7:https://www.cnblogs.com/do ...

  2. Codeforces Round #553 (Div. 2)

    传送门 A. Maxim and Biology 题意: 给出一个串s,问最少需要多少步操作使得串s包含"ACTG"这个子串,输出最少操作次数: 题解: 枚举每个位置 i,求出将 ...

  3. java-查看java源码

    安装jdk后,自己的pc下自然而然就可以找到java的源码包.

  4. 微信小程序之动态获取元素宽高

    我以前一直以为微信小程序不能动态获取view元素的宽高.但是自从看到: wx.createSelectorQuery() 这个api接口,以前的某些问题就能得到解决了... 那么,这个api接口怎么用 ...

  5. Maven 学习总结(三) 之 依赖管理

    聚合 为了要一次构建多个项目,而不是到每个模块目录下分别执行mvn命令.maven聚合这一特性就是为该需求服务的.为此我们需要创建一个额外的模块aggregator, 然后通过该模块构建整个项目的所有 ...

  6. HTML(一)HTML基础语法(HTML简介,HTML文档声明)

    HTML 概念介绍 [概念] (Hyper Text Markup Language)超文本标记语言,是用来描述网页的一种语言 超文本(Hyper Text):不只包括文本,也可以包括图片.链接.音乐 ...

  7. [再寄小读者之数学篇](2014-06-22 最大值点处导数为零的应用 [中国科学技术大学2012 年高等数学B考研试题])

    设 $f(x)$ 在 $[0,1]$ 上连续, 在 $(0,1)$ 内可导, 且 $f(0)=f(1)=0$, $f\sex{\cfrac{1}{2}}=1$. 证明:对于任意的实数 $\lm$, 一 ...

  8. clam简单使用

    clam简单使用: 0,首先,要全局安装Nodejs,不再赘述.clam依赖node使用 1,打开 cmd 2,全局安装clam:npm -g install clam 3,切换到目的盘下,新建一个空 ...

  9. phpstudy 2016 切换Nginx+php7.0版本所需运行库 vc14 + 安装redis拓展

    去微软官方下载vc14的运行库 链接:https://www.microsoft.com/en-us/download/details.aspx?id=48145 32位运行库 安装成功 切换版本成功 ...

  10. HTTP协议08-请求首部字段

    请求首部字段 请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息.客户端信息,对响应内容相关的优先级等内容 1)Accept 通知服务器,用户代理能够处理的媒体类型及媒 ...