水晶报表,快速报表,rdlc报表
感觉自己脑子里只剩下报表了,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报表的更多相关文章
- 将RDL报表转换成RDLC报表的函数
原文:将RDL报表转换成RDLC报表的函数 近日研究RDLC报表,发现其不能与RDL报表兼容,尤其是将RDL报表转换成RDLC报表.网上的资料贴出的的转换方式复杂且不切实际,遂决定深入研究.经研究发现 ...
- DevExpress的XtraReport和微软RDLC报表的使用和对比
我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在W ...
- [转]RDLC报表格式化format表达式
本文转自:http://www.cnblogs.com/samlin/archive/2012/04/17/FormatDateTime.html 刚开始接触RDLC报表,觉得RDLC报表提供的格式化 ...
- [转]使用RDLC报表
使用RDLC报表(一) 1 建立数据源 启动VS2005新建一个窗体项目,命名为TestProj 在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”: 选择后出现对话窗体,选 ...
- 水晶报表和rdlc报表传入参数筛选
在使用报表向客户展示结果数据时,实时的在报表中显示某些特定的数据是必需的,如:显示的部门.打印的日期等.本文只简单的演示向报表内传入一个字符值. 以下是设计好报表之后传入参数的具体操作 一.首先是水晶 ...
- C#制作RDLC报表
报表以前我只做过水晶报表,但是最近发现家里的VS上面居然没有水晶报表,发现水晶报表现在貌似已经不能完全免费的使用了,为了保险起见,就用了VS自带的RDLC报表,用完感觉其实也是够用的嘛~ 建立一RDL ...
- RDLC报表系列(一) 简单的动态数据绑定和配置
RDLC系列链接 RDLC报表系列(一) 简单的动态数据绑定和配置 RDLC报表系列(二) 行分组 RDLC报表系列(三) 总计和折叠 RDLC报表系列(四) 矩阵 RDLC报表系列(五) 简单的图 ...
- RDLC报表系列--------初级报表
前面记录下了很多平时开发遇到的问题,RLDC之前也是不会,只会水晶报表,后来也慢慢的也上手了.把这些记录下来,以后用的着 1.打开VS添加新建项,选择Reporting,选择报表,后缀名为RLDC的名 ...
- 利用General框架开发RDLC报表
RDLC是微软推出的自家的报表软件,虽然没有一些第三方的报表软件强大好用,但是作为VisualStudio集成的报表工具,在客户要求不高的情况下还是非常值得一用的,本文将介绍通过General代码生成 ...
随机推荐
- JQuery 的遍历方法 $.each
博主呢最近在公司实习,发现公司基本上都会统一代码风格,今天看到还有很多事用JQuery写的js 请求Ajax与后台进行数据交互的方式 当我看到$each 遍历时 然我想起我学JQuery的时候 于是复 ...
- 2017-12-19python全栈9期第四天第二节之列表的增删查改之按索引改和按切片改
#!/user/bin/python# -*- coding:utf-8 -*-li = ['zs','ls','ww','zl','xx']li[0] = 'cxvb' #按索引位置print(li ...
- 剑指Offer_编程题_21
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. class Solution { public: void push(int value) { st.push(val ...
- python学习02
python的数据类型 程序=数据类型+算法 1.数据类型:数据型,字符串,列表list,字典dict,set集合(),tuple元组() 1)数据型 int,整数型,理论上是无限大,不过受到机器内存 ...
- DUMP2 企业级电商项目
正常设计数据库表,按照数据流向. ~~闭环核心业务 [1用户]登录 =>浏览[2分类]+浏览[3商品]=>加入[4购物车]=>结算[5订单]+[6收货地址]=>[7支付] [购 ...
- 面试经验合集-Java后端<一>
面试一:CDKHXJSYJS 时间:2018-12-29 周六 地点:航天科技大厦32楼 一 技术题目 <回忆版> 1.上下转型 2.Java异常:分类.处理.设计 3.二叉排序树 ...
- BMP文件解析
目录 BMP文件简介 BMP文件格式 位图头 位图信息 调色板 位图数据 C语言代码 获取文件大小 获取文件尺寸 获取文件偏移量 读取文件数据示例 一个问题 完整程序 BMP文件简介 BMP(全称Bi ...
- 用juery的ajax方法调用aspx.cs页面中的webmethod方法
首先在 aspx.cs文件里建一个公开的静态方法,然后加上WebMethod属性. 如: [WebMethod] public static string GetUserName() { //.... ...
- word20161226
1. condensed 英[kən'denst]美[kənˈdɛnst]v. (使) 变稠或变浓,浓缩( condense的过去式和过去分词 ); (使) 凝结; 简说,摘要,简述;[例句]The ...
- Ch02 课堂作业
测试一:运行结果: 测试二:运行结果: 测试三:运行结果: