今天这篇是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

转载于:https://www.cnblogs.com/lhmlyx2723356/p/3304790.html

[原创]Devexpress XtraReports 系列 10 创建标签报表相关推荐

  1. DevExpress.XtraReports报表,动态设置报表布局

    本文描述的动态开发报表的方式已封装成DLL,现向外发布,需要请猛击这里. 引言 上回负责报表这块,说不能再像以前的项目一样的做报表了,以前项目300多张报表,一张一张的画,一张一张的写存储过程,工作量 ...

  2. [原创]windows server 2012 AD架构 试验 系列 – 3 创建备份DC2

    [原创]windows server 2012 AD架构 试验 系列 – 3 创建备份DC2 环境: DC2 ,192.168.20.101 ,DNS 指向根域 1 添加角色和功能 2提升域控 在提升 ...

  3. Devexpress报表开发(二):创建数据报表

    Devexpress报表开发(二):创建数据报表 本教程将会介绍如何使用Devexpress的报表控件来实现数据报表,我们将会从以下几步来实现数据报表(PS:文章使用的实例数据库以及结构请查看博客:点 ...

  4. 盘一盘 Python 系列 10 - Keras (上)

    本文含 12119 字,64图表截屏 建议阅读 62 分钟 0 引言 本文是 Python 系列的第十三篇,也是深度学习框架的第一篇 - Keras. 深度学习之 Keras 深度学习之 Tensor ...

  5. 信创办公–基于WPS的EXCEL最佳实践系列 (创建表格)

    信创办公–基于WPS的EXCEL最佳实践系列 (创建表格) 目录 应用背景 操作步骤 1.新建空白工作簿并命名为"奖牌榜" 2.使用模板新建工作簿 3.新增一张工作表,并将工作簿的 ...

  6. 狂神学习系列10:Vue

    狂神学习系列10:Vue 声明: 本文章是基于狂神的课程所编写,本人才疏学浅,内容仅作参考 项目和markdown文件资料: 06_Vue: 基于狂神说vue的项目及笔记 文章目录 狂神学习系列10: ...

  7. DevExpress.XtraReports打印

    使用DevExpress.XtraReports打印报表时,分别采用两种打印方式.以下面的打印样式为列作简要说明: 第一种:表头表尾保持不变,表中数据根据实际打印条数更改.如现在我要打印的学生为三个, ...

  8. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  9. a标签传参接收_[pyecharts1.8] 系列配置之标签设置

    今日心情 :em....又是一堆蛋疼的事情堆积的一周...文章会迟到,但不会缺席,准备好脑子接收下 [pyecharts1.8] 系列配置之标签设置 本文档(以及pyecharts使用手册中的其他文档 ...

最新文章

  1. (翻译)Real-UID,Effective-UID,Saved-UID区别
  2. docker 镜像基本操作、镜像与容器常用指令
  3. 机器学习Sklearn实战——adaboost
  4. 《Android进阶之光》--多线程编程
  5. 神经网络测试时间计算机,卷积神经网络的时代到此结束了?
  6. (转)腾讯2011.10.15校园招聘会笔试题
  7. java工程师_南通JAVA软件工程师暑假强化实训学校
  8. 爬虫实例4 爬取网络小说
  9. c++ 协程_深入理解异步I/O+epoll+协程
  10. HttpClient相关
  11. C语言库函数——string.h
  12. android 存储作假,对《纯活人伪造一个Android Killer或APK IDE或apktool反编译失败》的一点讨论...
  13. 系统找不到指定路径,网络编程
  14. 华硕笔记本电脑win10系统一键重装教程分享
  15. java.sql.SQLException: Incorrect string value: '\xE5\x85\x89004' for column 'department_name' at row
  16. 解决大疆无人机飞了一段距离就停下来的问题(大疆限飞50米)
  17. CCF TALKs 报名 | 今天,技术如何推动社会进步
  18. 〖金融帝国实验室〗(Capitalism Lab)深度研究文章——《浅析210年周期的城市宏观经济》(作者:jiuliumuliao)
  19. 青少年模式形同虚设 半数App诱导打赏
  20. maven、md5、git学习

热门文章

  1. 【深度学习入门到精通系列】Mean Iou
  2. opcache php 原理_php之Opcache
  3. java开发app启动跳转到一个广告,Android实现点击通知栏后,先启动应用再打开目标Activity...
  4. python解析库_Python命令行解析库argparse
  5. mysql, 一对多查询, 统计一表数量
  6. ubuntu libapache2-mod-php5,ubuntu安装apache2 mysql5 php5
  7. 虚拟主机众多用途你心仪哪一项?
  8. 网站建设你够专业吗?——不需说,从色彩搭配就能看出来
  9. php在线备忘录,一个会话备忘录小程序的实现方法
  10. oracle启动的服务有哪些,启动/关闭oracle服务有三种方式