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

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

一、水晶报表

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

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

代码:

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

效果图:

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

代码:

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

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

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

第一步:

第二步:

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

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

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

二、快速报表

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

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

三、RDLC报表

报表模板:

代码:

  1. private void Form3_Load(object sender, EventArgs e)
  2. {
  3. DataTable dt = null;
  4. string conStr = "Server='127.0.0.1';database=demo;UID='sa';PWD='******';";
  5. try
  6. {
  7. SqlConnection con = new SqlConnection(conStr);
  8. con.Open();
  9. string sql = @"select Dept.DeptID,Dept.DeptName,UserInfo.UserName,UserInfo.Salary from dbo.Dept left join dbo.UserInfo on Dept.ID=UserInfo.DeptID";
  10. SqlCommand sqlcmd = new SqlCommand(sql, con);
  11. SqlDataAdapter sda = new SqlDataAdapter(sqlcmd);
  12. dt = new DataTable();
  13. sda.Fill(dt);
  14. con.Close();
  15. sda.Dispose();
  16. }
  17. catch (Exception err)
  18. {
  19. MessageBox.Show(err.StackTrace);
  20. }
  21.  
  22. try
  23. {
  24. this.reportViewer1.LocalReport.ReportPath = @"Reports\Report1.rdlc";
  25. ReportParameter rp = new ReportParameter("type", "rdlc报表");
  26. this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
  27. this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1",dt));
  28. this.reportViewer1.RefreshReport();
  29. }
  30. catch (Exception err)
  31. {
  32. MessageBox.Show(err.Message);
  33. }
  34. }

这个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. [BJOI2019]勘破神机

    [BJOI2019]勘破神机 推式子好题 m=2,斐波那契数列,$f_{n+1}$项 不妨$++l,++r$,直接求$f_n$ 求$\sum C(f_n,k)$,下降幂转化成阶乘幂,这样都是多项式了, ...

  2. Java入门:基础算法之二进制转换为十进制

    Java有两种方法可以将二进制数转换为十进制数: 1)使用Integer类的Integer.parseInt()方法. 2)自己编写转换逻辑. 方法1:使用Integer.parseInt()实现二进 ...

  3. Openresty安装及使用配置(OPENRESTY+NGINX)

    Openresty 简介 Openresty是一个基于NGINX和Lua的高性能Web平台,内部有大量的Lua库和第三方模块,能够很方便的搭建处理高并发,扩展性高的Web平台和动态网关,充分利用 Ng ...

  4. 使用Vlc.DotNet打开摄像头并截图 C#

      参考上一篇  使用vlc打开usb摄像头 理论上输入下面地址 "dshow:// :dshow-size=1600*1200:dshow-vdev=USB CAM2"C#就能打 ...

  5. 常见Web攻击

    一.SQL注入 1. sql注入的危害 非法读取.篡改.删除数据库中的数据 盗取用户的各类敏感信息,获取利益 通过修改数据库来修改网页上的内容 注入木马等 2. 实例 MYSQLDB # 通过在用户名 ...

  6. css文件引人的三种方式

    前言 1995年,W3C发布了CSS草案 1996年,W3C正式推出CSS1 1998年,推出CSS2 2001年从CSS3开始,CSS这门语言分割成多个独立的模块,每个模块独立分级,且只包含一小部分 ...

  7. 定期清理WordPress的文章修订版本

    当WordPress编辑或修改文章时会自动保存生成一个修订版本,默认是每分钟1次.方便恢复早先撰写的版本.不过时间一长就会产生大量的冗余数据,加重服务器负担,拖慢数据加载.当所有发布的文章都已更新到最 ...

  8. updateXML 注入 python 脚本

    用SLQMAP来跑updateXML注入发现拦截关键字,然后内联注入能绕,最后修改halfversionedmorekeywords.py脚本,结果SQLMAP还是跑不出来.>_< hal ...

  9. Android App性能测试之二:CPU、流量

    CPU---监控值的获取方法.脚本实现和数据分析 1.获取CPU状态数据 adb shell dumpsys cpuinfo | findstr packagename 自动化测试脚本见cpustat ...

  10. python中字符串编码转换

    字符串编码转换程序员最苦逼的地方,什么乱码之类的几乎都是由汉字引起的. 其实编码问题很好搞定,只要记住一点: 任何平台的任何编码,都能和Unicode互相转换. UTF-8与GBK互相转换,那就先把U ...