今天这篇是Dx Reports 基础初级系列的最后一篇了。以后如果有什么高级的应用,应该另开一个中级使用系列。

昨天发表了Devexpress XtraReports系列第九篇[原创]Devexpress XtraReports 系列 9 创建邮件合并报表,今天我们继续。

 

今天的主题是创建标签报表。

 

至于什么是标签报表呢?我也具体说不上来。

我只是个人觉得它可以用在打印产品信息(需要附图)的报表。

假如我有很多产品,老板想要看到这些产品的编号,产品的名称,还有产品的图片等信息,我们可以利用标签报表轻松地实现。

下面我展示的是以部门为例。

 

首先我们来看看最后实现的效果。Demo最后附上。

 

接下来开始讲解如何一步一步做出这个报表:

 

第一步

创建如上窗体,拉入控件SimpleButton,DocumentViewer,SplitContainerControl,LabelControl,TextEdit,GroupControl,简单布局我就不多说了,跟上篇一样的布局 ,详见:http://www.cnblogs.com/lhmlyx2723356/p/3286101.html

 

第二步

a,新创建一个报表文件。点击如图:

b,在弹出的窗体中,选择标签报表。如图:

然后一直下一步就OK了。

c,添加需要绑定的字段。如图:

 

     第三步

我们利用数据库做一张简单的表并输入一些测试值。如图:

 

第四步

数据库表,布局都做好了,接下来我们就来处理相对应的事件了。输入文本框的值,点击按钮把查询出来的数据源绑定到报表

 

a,修改报表文件的构造函数,让它在实例化的时候可以接收数据源。

public LabelRpt(DataSet ds)
{
     InitializeComponent();
     this.DataSource = ds;
     this.xrLabel2.DataBindings.Add("Text", ds, "dept_id");
     this.xrLabel3.DataBindings.Add("Text", ds, "dept_name");
}

 

//为了让XRRichText控件中承载的XRPictureBox控件显示出数据库中测试数据中的jpg图片,其实这些图片是存放在程序运行目录下,如图:

 

那如何让图片显示出来呢?

 

我们应该处理XRPictureBox控件的BeforePrint 事件。

private void xrPictureBox1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
   {
       string path = System.Environment.CurrentDirectory + "\\" + GetCurrentColumnValue("pictureurl");
       xrPictureBox1.Sizing = DevExpress.XtraPrinting.ImageSizeMode.ZoomImage;
       ((XRPictureBox)sender).Image = Image.FromFile(path);
   }

 

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 Dept where dept_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, "LabelRpt"); ;
              con.Close();
          }
          catch (Exception ex)
          {
              throw ex;
          }
          return ds;
      }

 

c,单击按钮,绑定数据到报表中

private void btnShowReport_Click(object sender, EventArgs e)
{
    DataSet ds = BindRpt();
    LabelRpt Rpt = new LabelRpt(ds);
    this.documentViewer1.DocumentSource = Rpt;
    Rpt.CreateDocument();
}

 

到此,标签报表就完成了。

Demo地址:http://yunpan.cn/QXhqJfuPK5bpt  访问密码 0e22

[原创]Devexpress XtraReports 系列 10 创建标签报表的更多相关文章

  1. [原创]Devexpress XtraReports 系列 6 创建并排报表

    昨天我们已经介绍了如何创建交叉报表,详见:[原创]Devexpress XtraReports 系列 5 创建交叉报表 今天我们继续我们的XtraReports系列.Demo和数据库文件最后会附上. ...

  2. [原创]Devexpress XtraReports 系列 5 创建交叉报表

    昨天我们已经介绍了如何创建多栏报表,详见:[原创]Devexpress XtraReports 系列 4 创建多栏报表 今天我们继续我们的XtraReports系列.Demo和数据库文件最后会附上. ...

  3. [原创]Devexpress XtraReports 系列 8 创建Drill-Through报表

    哎,今天公司工作忙了一天,一直没有时间写写东西.所以只能昨天晚上加班写咯.苦逼啊...... 昨天发表了Devexpress XtraReports系列第七篇[原创]Devexpress XtraRe ...

  4. [原创]Devexpress XtraReports 系列 3 创建主从报表

    昨天写了系列的第二篇Devexpress XtraReports 系列 2 创建表格报表 . 今天我们来继续系列 3 创建主从报表 首先我们来看看最后实现的效果.Demo最后附上. 开始吧. 第一步, ...

  5. [原创]Devexpress XtraReports 系列 2 创建表格报表

    昨天发表了Devexpress XtraReports系列开篇,今天我们继续. 今天的主题是创建表格报表. 首先我们来看看最后实现的效果.Demo最后附上. 接下来开始讲解如何一步一步做出这个报表: ...

  6. [原创]Devexpress XtraReports 系列 9 创建邮件合并报表

    昨天发表了Devexpress XtraReports系列第八篇[原创]Devexpress XtraReports 系列 8 创建Drill-Through报表,今天我们继续. 今天的主题是创建邮件 ...

  7. [原创]Devexpress XtraReports 系列 4 创建多栏报表

    昨天我们完成了 [原创]Devexpress XtraReports 系列 3 创建主从报表 今天我们继续学习新的一种报表模式:多栏报表.(Demo源码,数据库最后附上) 或许很多人会问什么是多栏报表 ...

  8. [原创]Devexpress XtraReports 系列 7 创建Drill-Down(向下钻取)报表

    昨天发表了Devexpress XtraReports系列第六篇[原创]Devexpress XtraReports 系列 6 创建并排报表,今天我们继续. 今天的主题是创建Drill-Down报表. ...

  9. [原创]Devexpress XtraReports 系列 1 创建静态报表

    在各种管理系统中,报表是必不可少的.报表是数据最直观体现的方式之一 以前,屌丝我是微软的忠实粉丝,所以报表工具就是微软自带的RDLC... 不可否认的是RDLC的功能是非常强大的.能够满足绝大多数的要 ...

随机推荐

  1. C#判断字符串为空的几种方法和效率判断

    C#判断字符串为空的几种方法和效率判断 string定义 1.1 string str1="":会定义指针(栈),并在内存里划一块值为空的存储空间(堆),指针指向这个空间.1.2 ...

  2. Qt之密码框不可选中、复制、粘贴、无右键菜单等

    简述 在做用户登录.修改密码的时候,往往会用到密码框,其中一些功能要求与普通的输入框不同,例如:不能选中.复制.粘贴.无右键菜单等功能,当然设置密码不可见是必须的! 下面介绍两种方式来实现相同的效果. ...

  3. EASYUI+MVC4通用权限管理平台--前言

    经过多年的管理信息系统的开发工作,吸取了工作中遇到的一些问题,经过自己的总结,形成了一套比较完整的管理信息系统的通用权限管理基础开发平台. 在软件的开发过程中我们首先需要解决的是UI问题,其次是浏览器 ...

  4. 百度编辑器解决span被过滤, 自动加P标签

    editor_all.js: 自动加P标签去除: enterTag: 'p', 改成: enterTag: '', span被过滤:   //从编辑器出去的内容处理     me.addOutputR ...

  5. 8个必备的PHP功能开发 (转)

    做过PHP开发的程序员应该清楚,PHP中有很多内置的功能,掌握了它们,可以帮助你在做PHP开发时更加得心应手,本文将分享8个开发必备的PHP功能,个个都非常实用,希望各位PHP开发者能够掌握. 1.传 ...

  6. 【英语】Bingo口语笔记(76) - 不知如何应答的场景对话

  7. 《Unix网络编程》卷2 读书笔记 第3章- System V IPC

    1. 概述 三种类型的System V IPC:System V 消息队列.System V 信号量.System V 共享内存区 System V IPC在访问它们的函数和内核为它们维护的信息上共享 ...

  8. 计算机网络——TCP三次、四次握手详解

    三次握手:建立TCP连接 连接建立过程: B的TCP服务器进程先创建传输控制块TCB(存储了每一个连接中的一些重要信息,如:TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号 ...

  9. vim的保存误认为utf8问题

     用vim改脚本改到一处写到'太原':w一下,再打开,,结果给乱码了...我默认sql是用cp936的,,,想到到和记录本的联通问题一样....   可能会问我为什么不用utf8,,,,因为ms200 ...

  10. unable to load default svn client

    解决方法: .windows->preferences->Team->SVN->SVN接口  选择SVNKit...