首页 > 其他 > 详细

单据类报表的制作

时间:2019-12-27 14:38:06      阅读:91      评论:0      收藏:0      [点我收藏+]

在银行、财务、销售等系统中,常常会看到这样一类报表,它们一般是从原来的手工报表年代沿袭而来,需要打印在固定大小的纸张上,有着固定的样式要求。具体的形式包括各种登记本册和单据等。

在没有报表工具之前,这类报表大部分使用 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() 函数和动态隐藏行实现补足空白行,使用行后分页功能实现固定行数分页效果

单据类报表的制作

原文:https://www.cnblogs.com/xiaohuihui-11/p/12106965.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!