[原创]Devexpress XtraReports 系列 2 创建表格报表
昨天发表了Devexpress XtraReports系列开篇,今天我们继续。
今天的主题是创建表格报表。
首先我们来看看最后实现的效果。Demo最后附上。
接下来开始讲解如何一步一步做出这个报表:
第一步,创建如上窗体,拉入控件SimpleButton,DocumentViewer,SplitContainerControl,LabelControl,TextEdit,GroupControl,简单布局我就不多说了,跟上篇一样的布局 ,详见:http://www.cnblogs.com/lhmlyx2723356/p/3286101.html
第二步,创建一个报表文件。如图:
在报表中拉入两个XRTable控件,在ReportHeader放置一个,并修改其Text属性如上图,姓名,密码,创建时间,备注。
在Detail区放置一个XRTable。至于对齐,字体修改,相信大家也都能找到相对应的属性去修改。
这里要讲一下报表的隔行换色的属性设置,如图:
选中Detail中的XRTable后,在属性窗口中根据需要设置BackColor属性。
第三步,我们利用数据库做一张简单的表并输入一些测试值。如图:
第四步,数据库表,布局都做好了,接下来我们就来处理相对应的事件了。输入文本框的值,点击按钮把查询出来的数据源绑定到报表中
a,修改报表文件的构造函数,让它在实例化的时候可以接收数据源。
public TableRpt(DataSet ds)//修改构造函数
{
InitializeComponent();
this.DataSource = ds;
this.xrTableCell5.DataBindings.Add("Text", ds, "name");//为单元格绑定数据源中相对应的字段
this.xrTableCell6.DataBindings.Add("Text", ds, "password");
this.xrTableCell8.DataBindings.Add("Text", ds, "createdate");
this.xrTableCell7.DataBindings.Add("Text", ds, "remark");
}
b,获取数据源
private DataSet BindRpt()
{
DataSet ds = new DataSet();
try
{
SqlConnection con = new SqlConnection("Data Source=(local);Integrated Security=SSPI;Initial Catalog=ReportDeom");
SqlDataAdapter adapter;
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM TableRptData where name=@name OR @name='' ", con);
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@name",txtName.Text.Trim())
};
cmd.Parameters.AddRange(paras);
adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, "TableRpt"); ;
con.Close();
}
catch (Exception ex)
{
throw ex;
}
return ds;
}c,单击按钮,绑定数据到报表中
private void btnShowReport_Click(object sender, EventArgs e)
{
DataSet ds = BindRpt();
TableRpt Rpt = new TableRpt(ds);
this.documentViewer1.DocumentSource = Rpt;
Rpt.CreateDocument();
}到此,报表就表格报表就完成了。
希望对初学者有点帮助。谢谢。
最后又是送福利时间,哈哈。。屌丝们。。。雄起吧。。。
[原创]Devexpress XtraReports 系列 2 创建表格报表的更多相关文章
- [原创]Devexpress XtraReports 系列 3 创建主从报表
昨天写了系列的第二篇Devexpress XtraReports 系列 2 创建表格报表 . 今天我们来继续系列 3 创建主从报表 首先我们来看看最后实现的效果.Demo最后附上. 开始吧. 第一步, ...
- [原创]Devexpress XtraReports 系列 6 创建并排报表
昨天我们已经介绍了如何创建交叉报表,详见:[原创]Devexpress XtraReports 系列 5 创建交叉报表 今天我们继续我们的XtraReports系列.Demo和数据库文件最后会附上. ...
- [原创]Devexpress XtraReports 系列 5 创建交叉报表
昨天我们已经介绍了如何创建多栏报表,详见:[原创]Devexpress XtraReports 系列 4 创建多栏报表 今天我们继续我们的XtraReports系列.Demo和数据库文件最后会附上. ...
- [原创]Devexpress XtraReports 系列 8 创建Drill-Through报表
哎,今天公司工作忙了一天,一直没有时间写写东西.所以只能昨天晚上加班写咯.苦逼啊...... 昨天发表了Devexpress XtraReports系列第七篇[原创]Devexpress XtraRe ...
- [原创]Devexpress XtraReports 系列 10 创建标签报表
今天这篇是Dx Reports 基础初级系列的最后一篇了.以后如果有什么高级的应用,应该另开一个中级使用系列. 昨天发表了Devexpress XtraReports系列第九篇[原创]Devexpre ...
- [原创]Devexpress XtraReports 系列 4 创建多栏报表
昨天我们完成了 [原创]Devexpress XtraReports 系列 3 创建主从报表 今天我们继续学习新的一种报表模式:多栏报表.(Demo源码,数据库最后附上) 或许很多人会问什么是多栏报表 ...
- [原创]Devexpress XtraReports 系列 7 创建Drill-Down(向下钻取)报表
昨天发表了Devexpress XtraReports系列第六篇[原创]Devexpress XtraReports 系列 6 创建并排报表,今天我们继续. 今天的主题是创建Drill-Down报表. ...
- [原创]Devexpress XtraReports 系列 9 创建邮件合并报表
昨天发表了Devexpress XtraReports系列第八篇[原创]Devexpress XtraReports 系列 8 创建Drill-Through报表,今天我们继续. 今天的主题是创建邮件 ...
- [原创]Devexpress XtraReports 系列 1 创建静态报表
在各种管理系统中,报表是必不可少的.报表是数据最直观体现的方式之一 以前,屌丝我是微软的忠实粉丝,所以报表工具就是微软自带的RDLC... 不可否认的是RDLC的功能是非常强大的.能够满足绝大多数的要 ...
随机推荐
- (转载)DataTable使用技巧总结
在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.Da ...
- matlab注释使用,以及相应的注释快捷键
1.多行注释 单行注释是加% %{ 若干语句 %} 2.快捷键 多行注释: 选中要注释的若干语句, 编辑器菜单Text-<Comment, 或者快捷键Ctrl+R 取消注释: 选中要取消注释的语 ...
- dede 5.7进后台卡死解决办法
注释后台文件dede/templets/index_body.htm(大概在第18行) <script type="text/javascript"> function ...
- uva 11991
STL 使用,,由于数据范围没有 超越极限数据 依旧可以用 vector 搞定: #include<iostream> #include<stdio.h> #include& ...
- bash 的漏洞,你们中招了吗?
http://threatpost.com/major-bash-vulnerability-affects-linux-unix-mac-os-x 检测: $ env x='(){:;}; echo ...
- LA 3635 Pie 派 NWERC 2006
有 f + 1 个人来分 n 个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,并且面积要相同.求每个人最多能得到多大面积的派(不必是圆形). 这题很好做,使用二分法就OK. 首先在读取所有派 ...
- Readonly与const初识
对于readonly和const,很多人无法具体区分,不清楚它们的具体使用场合:现在我们分析它们之间的区别和使用场合. const是一个编译期常量:const只能用于修饰基元类型.枚举类型或者字符串类 ...
- AE 中的查找与定位,以城市查找为例
在文本框输入一个城市,在地图上查找,当找到后让mapcontrol自动跳转到地图上该点. IQueryFilter filter = new QueryFilterClass(); filter.Wh ...
- C++中,申请字符串数组可用new实现
C++中,申请字符串数组可用new实现: char ** list = new char*[MAX_NUM]; for (int i = 0; i< MAX_LOOP; i++) list[i] ...
- JavaScript中的Function(函数)对象
1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...