还在为画“类Word文档报表”而发愁吗?
欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~
Word 是非常强大的文档编辑工具,一些行业制式文档都是使用Word来创建的,像教育行业的申请表,履历表,审批表等,像石油业的勘探记录表,记录报告,检测报告等,如房地产业的制式合同,不仅包含大量的文字描述,还会嵌入图片,表格等一些数据控件。
我们通常选择使用 Word 来创建这些文档,因为它有着极强的图文混排的能力能够实现集图表,表格,图片等组成的一个混合布局的复杂报表。但使用Word越是创建这些复杂的结构,越需要耗费过多的时间来“画”出这些复杂的样式, 且所有的数据都需要手动输入,无法与业务数据连接,所以更新也会更加困难。
在现代 BI 系统中绝不容忍如此低效,且非实时性的数据分析,因此我们必须寻求与时俱进的现代化数据分析工具,以助于高效的创建数据分析汇总的报表项。葡萄城报表可以很好的解决类Word文档类的报表创建,可快速创建复杂的图文混排样式,而且能够实时的进行数据更新。
(一)类Word文档类报表特点
1.1 大量原始数据展示
这些数据往往存储在业务数据库中,但使用Word创建,将所需要看到的数据,手动输入对应的单元格当中,或是由多人维护更新,这样无法导致数据同步更新,而且容易出错。
1.2 图文混排
多个表格、图片、富文本、图表等组成一个混合布局的复杂报表,这些制式文档通常都包含既定的行业规范,所以对于排版要求非常严苛,因此需要按照既定的规范,来‘画’出复杂的样式,这样创建文档的难度又提高,也是十分低效的做法。
1.3 多页结构
特殊的首页和尾页要求,Word文档类报表较大的时候都有多页的结构,而且对于这些页都有不同的要求和规格。如:
封皮:单面数据,常包含报告的基本信息,如报表名称,报告编号,单位名称,Logo 信息,条码信息等

详细数据:多页详细数据,主要由不同结构的数据组成,常包含,页眉\页脚信息,详细数据区域。不同页对应的数据结构不一致。传统Word表格样式,详细数据部分,内容格式都不固定,没有规律,行列数量不固定,行高列宽不固定。内容项目为非固定格式,根据实际数据,动态选择内容呈现格式,多种布局并存。

结尾声明:文档类的尾部一般包含文档声明、总结等信息,常以大量文本输出为主,不同内容格式也是大有不同,葡萄城报表支持在同一页报表中,显示多种格式的文本内容。

首页和尾页的页眉页脚可单独控制:Word文档,在首页和尾页中不需要添加页眉,也不需要显示页号,只需要在内容页显示页眉。

动态加载图片和调整图片数量

传统的Word表格样式,左边标题,右边内容项

动态生成详细数据
1.4 新型数据展示控件
现有的各行业报表为了更加信息化,现代化,因此会在报表中添加一些新型数据控件,如物流业常用的条码,插入特殊格式的文本等,所以在类Word文档类报表中通常存在一些特殊的字符或控件的输入和展示。
葡萄城报表提供了Barcode控件,该控件支持37中条码格式,其中包括:QRCode(二维码)、Code39码、Codabar码、Code25码、ITF25码、Matrix25码、UPC-A码、UPC-E码、EAN-13码、EAN-8码等一维条码和PDF417等二维条码。条码呈现是一方面,在实际项目中条码扫描是非常重要的,因此葡萄城报表不仅支持条码呈现,在条码打印和导出也是非常精准的。

(二)创建类Word文档类报表
通常Word创建的文档有多种样式的数据呈现形式,多个表格、图片、富文本、图表等组成一个混合布局的复杂报表,同时支持多数据源绑定,每个组成部分可以有自己的独立数据源。这类报表因为信息量和数据量巨大,因此有一些非常特殊的报表需求,比如:首页/尾页不显示页面/页脚、表格跨页显示时标题行需要在每页重复显示便于查看数据、支持多张图片显示等。而这些复杂的报表需求,恰好是葡萄城报表非常强大功能所在。
类Word 报表,可以简单理解为所有使用Word制作的复杂表格,文案,合同类,履历类的文档,都以报表的形式呈现出来。以呈现多层结构信息为主,有严格的格式要求。类Word报表通常包含多个模块显示信息。模块之间结构和数据各有不同,对于页眉和页脚内容也有严格的要求等文档类的需求。
接下来我们就来展示使用葡萄城报表创建档案类报表,档案类报表常见于人员管理系统,这一类报表常包含个人基本信息介绍,经历信息,评价,结论等信息。该类报表的特点: 标题在左,右边为内容;每项内容单元格的样式都是有严格要求的,通常报表的上半部分信息密集,下半部分为大量的数据填报信息,因此占用空间比较大。该类报表通常有固定的页数。
2.1 报表原型
档案类报表通常包含如下模块:基本信息,职务信息,主要经历,审批信息,接下来我们来演示如何使用葡萄城报表矩表控件来创建

2.2 报表结构分析
1. 左侧为标题,右侧为内容
2. 内嵌图片控件
3. 详细信息高度不一致
4. 跨行单元格合并
2.3 实现思路
1. 使用矩表控件
2. 添加多级静态列
3. 跨行单元格合并
2.4 报表实现
1. 新建RDL 报表模板
2. 添加数据源和数据集


3. 添加矩表控件
4. 删除分组单元格
4.1 因为不涉及动态列,首先需要删除列分组和行分组单元格。
删除 行分组;并设置该行Size 的Width 属性为0


4.2 删除列分组
右键单击列分组单元格,选择“列分组”-》“删除分组”;
并设置该列Size 的Width 属性为0

5. 构造基本信息模块
5.1 插入静态列
右键选中TextBox1 插入列,右侧;(重复执行7次)

效果图:

5.2 插入静态行
右键选中 TextBox1插入行,下方;(重复执行6次)

效果图:

5.3 输入项标题
效果图:

5.4 合并单元格

6. 添加模块
6.1 选中“学历学位”单元格,插入行(执行三次),输入职务信息。

7. 添加详细信息模块
该模块每个内容项对应一行内容,显示大量的文本;因此需要进行单元格合并,设置足够的行高;
7.1 添加静态行
选择“拟免职务”,选择“插入行”-》“下方”(执行6次)

效果:

7.2 合并单元格

8. 调整样式

9. 最终运行效果

转载请注明出自:葡萄城报表
相关阅读:
还在为画“类Word文档报表”而发愁吗?的更多相关文章
- 【葡萄城报表】还在为画“类Word文档报表”而发愁吗?
Word 是非常强大的文档编辑工具,一些行业制式文档都是使用Word来创建的,像教育行业的申请表,履历表,审批表等,像石油业的勘探记录表,记录报告,检测报告等,如房地产业的制式合同,不仅包含大量的文 ...
- C#word(2007)操作类--新建文档、添加页眉页脚、设置格式、添加文本和超链接、添加图片、表格处理、文档格式转化
转:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 1.新建Word文档 #region 新建Word文档/// &l ...
- c#操作word类,进行html和word文档的互相转换
实例引用:http://www.7es.cn/Software_development/171.shtml using Microsoft.Office.Core;using Word = Micro ...
- Word文档数据被误删了怎么办,还能恢复吗
很多时候由于时间紧张或者是思路不想被打断,我们在编辑Word时不能及时的手动保存,一旦遇到电脑意外断电的情况可能就会导致编辑好的Word文档内容丢失.或者是文档编辑好了之后,Word提示是否保存时,误 ...
- C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)
这篇博客将要讨论的是关于: 如何从C#的source以及注释, 生成一份Word格式的关于各个类,函数以及成员变量的说明文档. 他的大背景如下...... 最近的一个项目使用C#, 分N个模块, 在项 ...
- C# 设置word文档页面大小
我们知道,在MS word中,默认的页面大小是letter(8.5’’x11’’),除此之外,word还提供了其他一些预定义的页面大小,如Legal (5.4’’x14’’),A3 (11.69’’x ...
- ASP.NET生成WORD文档,服务器部署注意事项
网上转的,留查备用,我服务器装的office2007所以修改的是Microsoft Office word97 - 2003 文档这一个. ASP.NET生成WORD文档服务器部署注意事项 1.Asp ...
- Android中使用POI加载与显示word文档
最近打算实现一个功能:在Android中加载显示Word文档,当然这里不是使用外部程序打开.查看一些资料后,打算采用poi实现,确定了以下实现思路: 将ftp中的word文档下载到本地. 调用poi将 ...
- JSP利用freemarker生成基于word模板的word文档
利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器 ...
随机推荐
- 浅谈java发射机制
目录 什么是反射 初探 初始化 类 构造函数 属性 方法 总结 思考 什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意 ...
- 初学JVM
最近在读周志明的<深入理解Java虚拟机:JVM高级特性与最佳实践>,从中学到了很多,有些人可能会问为什么我们要学习JVM,他有什么用?在这里我想说一下,并不是这本书是大家都推荐的说有用处 ...
- msf 之 webshell 提权
首先建议一下到网上查查meterpreter的用法在看这篇文章,理解为什么要使用msf来提权(因为msf里边有个meterpreter很强大 ^_^)Metasploit 拥有msfpayload 和 ...
- less函数
问题描述: 在编写页面时,有以下几种按钮: 这时候我们CSS代码毫无疑问写一个公共类,然后再为每个按钮增加独自的样式如下: HTML: <div class="common a&quo ...
- 微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- 【原】vue单文件组件互相通讯
在vue中,我们可以把一个页面各个部分单独封装起来,做成各种小组件,然后加载,这样的好处是代码维护起来比较容易,重复的代码多处调用! 在一个vue项目中,单文件组件以.vue形式文件命名 每个组件之间 ...
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总
PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...
- navicat 连接oracle数据库报错:ORA-28547:connection to server failed,probable Oracle Net admin error
链接:http://pan.baidu.com/s/1dEO9qJR 密码:ye2c 用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通 ...
- 使用zabbix监控mysql的三种方式
使用zabbix监控mysql的三种方式 1.只是安装agent 2.启用模板监控 3.启用自定义脚本的模板监控 zabbix中默认有mysql的监控模板.默认已经在zabbix2.2及以上的版本中. ...
- 记一次使用搬瓦工VPS的经历
自己因为有需求上Google,以前是通过修改hosts的方法实现访问Google,但是最近不知道为什么改hosts后还是无法访问Google,于是决定搭建VPS来实现科学上网,看了一下价格,作为穷逼学 ...