单据类报表的制作
在银行、财务、销售等系统中,常常会看到这样一类报表,它们一般是从原来的手工报表年代沿袭而来,需要打印在固定大小的纸张上,有着固定的样式要求。具体的形式包括各种登记本册和票据等。
在没有报表工具之前,这类报表大部分使用Excel进行制作,费时费力还不易维护,每次都独自加班到很晚(一首凉凉送给自己)。今天,我要带一带新的节奏,展现一下神操作来制作这类单据报表。
这次我们拿公积金单据来进行具体操作演示。下图就是公积金管理中心为各单位提供的缴纳单据,一般要求单据的每一页上方都有单位信息,中间填写单位工作人员的具体公积金缴纳明细,最下面是合计和签章信息。一个手工年代的怀旧特点是,每页只显示7条数据,多了填到下一页,一页不够7行也要补上空行,而且要和纸质单据格式大小完全对应上:
单据报表效果图
好吧,为了按时下班,让我们用润乾报表赶紧开始吧:
首先,根据效果图绘制报表样式和框架,如下图:
单据报表框架图
【实用小技巧】因为单据类报表基本都需要打印在固定格式的单据上,也就是俗称的“套打”,所以在设计报表的时候就需要根据实际的单据来设计。具体做法是:用扫描仪扫描单据图片,然后把图片调好大小,设置为报表背景图(报表属性–>其他–>背景图),这样就可以比着图片的边框来调整报表的单元格。
接着,设计固定数据区域:
根据业务需求,要求第1行到第8行、第11行到14行的内容每页都显示,那么我们需要通过行属性设置实现此效果:
1-8行需要设计为分组表头。11行到14行设置为报表尾。
设置完后如下图所示:
单据报表行属性设置图
然后,明细数据关联计算
业务要求按照流水号分组显示明细,所以我们添加上对应单元格表达式,并做数据关联
单据报表数据关联配置图
其中,
A1:=hnszgrkhdjqc.group(流水号;流水号:1),合并单元格后前八行数据都跟随流水号动态取数显示记录,D4、D5单元格如需从数据集取数,直接用取值表达式即可
B9:=hnszgrkhdjqc.select(id),并设置左主格为A1,表示跟随流水号动态取数
C9:=&B9,并设置左主格为B9,为序号实现方式的固定用法
D9之后的单元格表达式我们可以直接使用取值表达式,即:数据集.字段名称
最后,完美实现空行效果
实现每页固定显示7条明细数据,且不足7行时进行行补足,这需要分成两步:
单据报表补足空行设置图
1.补足空行:
我们在第10行位置插入一行,编辑补足空行表达式C10:=to((hnszgrkhdjqc.count()%7)+1,7),根据记录数判断是否补足,这里是需要跟随流水号进行判断的,所以需要设置A10的左主格为A1。
特殊的,当记录数够7行的时候,也会进行扩展,这个时候需要将多余扩展行隐藏掉,具体实现方法如下图所示(利用隐藏行表达式):
隐藏行设置图
2.对于每页固定7行的效果,我们可以通过行后分页+按纸分页效果实现:
<1>在报表属性–》分页中设置为按纸分页,纸张大小根据实际业务需求进行设置
<2>在C10单元格右侧单元格属性中找到“行后分页”属性配置,并增加表达式:if(D1%7==0,TRUE,FALSE),表示如果分组内的数据记录数能被7整除,那么就隐藏,否则就显示扩展后的数据
行后分页设置图
好了,一个完美的单据类报表就完成了,我们来回顾一下其中遇到的问题和解决的技巧:
1.每页的固定表头表尾显示
【技巧】设置行属性为分组表头和报表尾
2.补足空白行,保证每页固定条数明细数据
【技巧】使用to()函数和动态隐藏行实现补足空白行,使用行后分页功能实现固定行数分页效果
至此,单据类报表制作就完成了,我们仅仅使用了润乾报表的左主格和行后分页功能就做好了单据报表,这一波操作6不6?神马银行汇款单、开户单、仓库出入库单·····都so easy,快来加入润乾大家庭,从此和加班say byebye。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Java应用性能调优
性能诊断工具 性能诊断一种是针对已经确定有性能问题的系统和代码进行诊断,还有一种是对预上线系统提前性能测试,确定性能是否符合上线要求。本文主要针对前者,后者可以用各种性能压测工具(例如 JMeter)进行测试,不在本文讨论范围内。针对 Java 应用,性能诊断工具主要分为两层:OS 层面和 Java 应用层面(包括应用代码诊断和 GC 诊断)。 OS 诊断OS 的诊断主要关注的是 CPU、Memory、I/O 三个方面。 CPU 诊断对于 CPU 主要关注平均负载(Load Average),CPU 使用率,上下文切换次数(Context Switch)。 通过 top 命令可以查看系统平均负载和 CPU 使用率,图 2 为通过 top 命令查看某系统的状态。 平均负载有三个数字:63.66,58.39,57.18,分别表示过去 1 分钟、5 分钟、15 分钟机器的负载。按照经验,若数值小于 0.7*CPU 个数,则系统工作正常;若超过这个值,甚至达到 CPU 核数的四五倍,则系统的负载就明显偏高。图 2 中 15 分钟负载已经高达 57.18,1 分钟负载是 63.66(系统为 16...
-
下一篇
Python爬虫如何快速上手,并达到爬取大规模数据的水平
互联网的数据爆炸式的增长,而利用 Python 爬虫我们可以获取大量有价值的数据: 1.爬取数据,进行市场调研和商业分析 爬取知乎优质答案,筛选各话题下最优质的内容; 抓取房产网站买卖信息,分析房价变化趋势、做不同区域的房价分析;爬取招聘网站职位信息,分析各行业人才需求情况及薪资水平。 2.作为机器学习、数据挖掘的原始数据 比如你要做一个推荐系统,那么你可以去爬取更多维度的数据,做出更好的模型。 3.爬取优质的资源:图片、文本、视频 爬取商品(店铺)评论以及各种图片网站,获得图片资源以及评论文本数据。 掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现。 但建议你从一开始就要有一个具体的目标,在目标的驱动下,你的学习才会更加精准和高效。这里给你一条平滑的、零基础快速入门的学习路径: 1.了解爬虫的基本原理及过程 2.Requests+Xpath 实现通用爬虫套路 3.了解非结构化数据的存储 4.应对特殊网站的反爬虫措施 5.Scrapy 与 MongoDB,进阶分布式 01 了解爬虫的基本原理及过程 大部分爬虫都是按“发送请求——获得页面——解析页面——抽取并储存内...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL数据库在高并发下的优化方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19