《利用UFO报表批处理制作合并报表》由会员分享,可在线阅读,更多相关《利用UFO报表批处理制作合并报表(6页珍藏版)》请在金锄头文库上搜索。
1、本文格式为Word版,下载可任意编辑利用UFO报表批处理制作合并报表 利用UFO报表批处理制作合并报表 2022-1-28 1. 报表路径:先把路径列出,大家稍微看一下。 D:合并报表 你的下载权限 0 低于此附件所需权限 1, 你无法查看此附件 主要有三个内容 你的下载权限 0 低于此附件所需权限 1, 你无法查看此附件 合并报表编程过程说明: 1. 由于第一次编合并报表,所以好多东西不知道,那么就查资料,主要参考三个资料,一个是UFO的二次开发扶助文件,其次个是孙勇写的UFO报表高级应用培训讲义,第三个是用友报表的PDF扶助 2. 客户的要求: 客户要求将12张资产负债表(当然还有好多其他
2、的表)做合并,这12张分别是不同的下属单位,由于在开头实施的时候,就考虑到合并报表的事情,所以但是在建立帐套的时候,要求全体单位的会计科目(包括辅佐核算),报表格式都务必一致,所以这12张表的格式都是一模一样的。 开头动手了 1. 现在第一步是建立一张合并报表模板,可以直接用现有的资产负债表模板,然后把公式清空,报表文件为“D:合并报表zt0032022资产负债表.rep” 2. 报表归类:我们假设合并两张报表就可以了,zt003和zt013,路径如下: D:合并报表 D:合并报表zt0032022资产负债表.rep D:合并报表zt0132022资产负债表.rep 简朴的合并方式:将zt01
3、3的资产负债表的对应的单元格与ZT003对应的单元格相加。 批处理放在以下文件夹: D:合并报表批处理2022 我们先简朴建立一个批处理,用以实现两个单元格的简朴合并,文件命名为“zt003zcfzb.shl” 批命令如下: LET C7=C7+合并报表zt0032022资产负债表.repRELA 年 WITH 合并报表zt0032022资产负债表.rep- 年,月 WITH 合并报表zt0032022资产负债表.rep- 月 起码知道以上的命令可以实现将C7单元格的数据加上“D:合并报表zt0032022资产负债表.rep”C7的数据。 但是假设这样做的话,每一个单元格就要一条语句,而且假设
4、有多张表的话,就更加繁杂,而且假设到时候要修改的话,譬如到了2022年的话,每一条都要改一下,甚至假设单元格发生变化,要改的话,那不是要疯掉! 所以在想能不能通过变量来实现,便于后续修改。 经过翻查资料,约莫知道了变量的应用,然后就来实现吧。 第一步,把报表路径变量化,可以直接设定一个变量&rep,然后赋值,语句如下: let &rep=合并报表zt0032022资产负债表.rep 那么单元格的赋值就可以这样来写: LET C7=C7+&rep-C7 RELA年 WITH &rep-年,月 WITH &rep-月 这样写可以裁减修改报表路径的问题,至少改个路径变量值,其他就不用改了,相对来说对
5、比便当一些,但是,问题是单元格也是对比麻烦,一条一来,有没有什么其他手段呢? 睡觉的时候突然想到能否用循环来处理,假设可以就好办多了,于是就开头实施,用while循环,但是问题是如何来表示列号和行号呢? 经过翻查资料,有一个意外的察觉: 你的下载权限 0 低于此附件所需权限 1, 你无法查看此附件 有了这个意外的察觉之后,我就想,干脆把路径、列号、行号都用变量表示算了,看看处境如何,代码如下: /设置报表路径、合并起始列、起始行 let &rep1=合并报表 let &rep2= let &rep3= let &rep4=资产负债表.rep let &col0=3 let &row0=7 /设
6、置报表路径 let &rep=&rep1+&rep2+&rep3+&rep4 /设置列号 let &col=&col0 /设置行号 let &row=&row0 /通过循环合并数据,合并C7while &col!&col#&row rela 年 with &rep-年,月 with &rep-月 let &row=&row+1 end let &row=&row0 let &col=&col+1 end 做了以上变动之后,至少修改起来事对比简朴,可以把这段代码保存为“zt003zcfzb.shl” 通过以上的批处理命令,我们在执行此批命令的时候,就可以实现把一个表的C7格与ZT003的对应的单
7、元格相加。 现在的处境有所变化,我们有两种需要合并的报表,譬如 D:合并报表zt0032022资产负债表.rep D:合并报表zt0132022资产负债表.rep 最终合并到以下表: D:合并报表01母公司2022资产负债表.rep 55的单元 55的单元格 你的下载权限 0 低于此附件所需权限 1, 你无法查看此附件 如何实现呢? 如何来利用之前做的批命令呢?莫非需要把批命令重复写一遍吗? 突然想到,能否通过调用批命令文件,相当于编程里面的“include”,那问题就可以解决了,也就是说,将一个合并的批命令写成一个批命令文件,然后来调用,只要有需要合并的时候,就调用此批命令,问题就可以解决了
8、,裁减重复工作,同时轻易修改。 在批处理里面是有一个调用批命令的命令,就是用”DO”命令。 我们把之前做的“zt003zcfzb.shl”重新另存为“zcfzb_hbbb.shl”,路径如下: DO 合并报表批命令2022 zcfzb_hbbb.shl 然后我们建立一个“zcfzb_main.shl”的批处理文件来调用。代码如下: /首先进入数据状态 DATA /报表取数 DO 合并报表批命令2022zcfzb_hbbb.shl 把此文件放在: D:合并报表00批命令01母公司2022 zcfzb_main.shl 为了能够在进入报表的时候,将最终合并的报表的数据先清空,同样我们做一个清空的批处理命令。 /清空数据,合并数据前先把数据清空。 CLEAR C7 55 6