用友UFO解决合并报表_第1页
用友UFO解决合并报表_第2页
用友UFO解决合并报表_第3页
用友UFO解决合并报表_第4页
用友UFO解决合并报表_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2 0 0 8 - 11. 报表路径:先把路径列出,大家稍微看一下。合并报表±+ 3521|»na舷”-r ; h*丈*采X 0n-名惊亠话址 |n、合尹抵氐EJ上J日9别I函色Hi J圧 Oi匡 口 Rmcr* PiltKd Qi SOFTf O »jrst»+ J童瞪挣JKs 斗?S3?曰二Mlt(&辔5匸山脈益視 I O2®8画£咗并口栓 同lXj 0瑁理主悴 E二DL母鱼可 >1 J 0£合屛口顿 n _)aiwastf)测亍报巒a援 H _j咖报奁探施I孔叩1R表擢抵曰ntM3口 2007 已SOW

2、Q20WS 二)rtQ13田rtK3田artaai田rUM4JOC啦命令说菲栓 »管理王邯 二能!推割a绘jam推则顿Qit(B3QztmaJtUB3QrtOffiijEdfcLTiiil32310321亠囲Je«T3E.- L E.- t- L.- s- F- E.- £- t- t- F- £ E- t.- 5" 5.4 "PI - J- 3- ? 一5.4 IM" J- 3.- s.' ?. I I - ff件件件件件曲许件件件件件曲洋件件件 玄艾艾艾±立立立丈艾艾±克立文丈史艾20

3、4;-:5-Lfl W :S 20®-L-tl. H 13 aO®-l-JI 1413 EOOS-LTL J4 I3 ZtKH-L-31 14:93SOOT-L-ll <:I3am-L-Sl H.932D®-L-31 14.1320®-L-9rl 14 13M®-L-3r| 1413EOOS-L-31. J4 I3EDCH-L-31 14 93EOOB-L-ai <:I3 am-L-SL 4.93 20®-L-31 H.I3 20W-L-JI U IS 8TO-l-3r| 1413E008-L-3I. J4 I3EOOSh

4、L-31 14:13EOOB-L-ai 14:13 aOS-L-31 4.93 2OK-L-31 H.I3MKB-L-Jl U 13EOOB-L-SI. J4 IB3D0S-L-31 14 33S(KB-L-il «:!3主要有三个内容用于存放批处理文件(SHL文件)00批01母公司02合并口径合并1.用于存放取终合并后02合并口径03管理主体、乂ZT023放最终需要合并的报表由于第一次编合并报表,所以很多东西不知道,那么就查资料,主要参考三个资料 勺二次,第三个是用友报表的 PDF帮助ZT003报表编程过程说明ZT013开发帮助文件,第二个是孙勇写的UFO报表高级应用培训讲义客户的

5、要求:客户要求将12张资产负债表(当然还有很多其他的表)做合并,这 在开始实施的时候,就考虑到合并报表的事情,所以但是在建立帐套的时候,2.12张分别是不同的下属单位,由于 要求所有单位的会计科目(包括辅助核算),报表格式都必须一致,所以这12张表的格式都是一模一样的。开始动手了1. 现在第一步是建立一张合并报表模板,可以直接用现有的资产负债表模板,然后把公式清空,报表文件为“.repzt003和zt013,路径如下:合并报表资产负债表2. 报表归类:我们假设合并两张报表就可以了,合并报表资产负债表.rep资产负债表.repzt013的资产负债表的对应的单元格与ZT003对应的单元格相加。合并

6、报表 合并报表简单的合并方式:将批处理放在以下文件夹: 合并报表批处理2008zt003zcfzb.shl ”我们先简单建立一个批处理,用以实现两个单元格的简单合并,文件命名为“批命令如下:合并报表资产负债表.rep"->C7 RELA 年合并报表资产负债表.rep"-> 年,月合并报表资产负债表.rep"-> 月起码知道以上的命令可以实现将C7单元格的数据加上“合并报表资产负债表.rep ” C7的数据。但是如果这样做的话,每一个单元格就要一条语句,而且如果有多张表的话,就更加复杂,而且如果到 时候要修改的话,比如到了2009年的话,每一条都要

7、改一下,甚至如果单元格发生变化,要改的话,那不是要疯掉!所以在想能不能通过变量来实现,便于后续修改。经过翻查资料,大概知道了变量的应用,然后就来实现吧。第一步,把报表路径变量化,可以直接设定一个变量&rep,然后赋值,语句如下:合并报表资产负债表.rep"那么单元格的赋值就可以这样来写:LET C7=C7+&rep->C7 RELA 年 WITH &rep-> 年,月 WITH &rep-> 月这样写可以减少修改报表路径的问题,至少改个路径变量值,其他就不用改了,但是,问题是单元格也是比较麻烦,一条一来,有没有什么其他办法呢?相对来说

8、比较万便一些,while循环,但是经过翻查资料,有一个 意外的发现:有了这个意外的发现之 后,我就想,干脆把路径、 列号、行号都用变量表示算 了,看看情况如何,代码如 下:1 )变量使用关键字年、季、月、日为数值型,单位名称、单位编号为字符型。表示报表名:& REP_NAME单元格名表示表页号:& TAB表示仃号:#&ROW表示列号:!& COL睡觉的时候突然想到能否用循环来处理,如果可以就好办多了,于是就开始实施,用 问题是如何来表示列号和行号呢?/设置报表路径、合并起始列、起始行合并报表” 1let &rep2="zt003"le

9、t &rep3="2008"资产负债表.rep"let & col0=3let &row0=7/设置报表路径let &rep=&rep1+ &rep2+&rep3+&rep4/设置列号/通过循环合并数据,合并C7:D55的单元格while &col<=4while &row<=55let !&col#&row=!&col#&row+&rep->!&col#&row rela年 with &rep->

10、年,月 with &rep->月let &row=&row+1endlet &row=&row0zt003zcfzb.shllet & col=&col+1做了以上变动之后,至少修改起来事比较简单,可以把这段代码保存为通过以上的批处理命令,我们在执行此批命令的时候,就可以实现把一个表的C7:D55的单元格与ZT003的对应的单元格相加。现在的情况有所变化,我们有两种需要合并的报表,比如如何实现呢?如何来利用之前做的批命令呢?难道需要把批命令重复写一遍吗?突然想到,能否通过调用批命令文件,相当于编程里面的“in elude ”,那问题

11、就可以解决了,也就是说,将一个合并的批命令写成一个批命令文件,然后来调用,只要有需要合并的时候,就调用此批命令,问题就 可以解决了,减少重复工作,同时容易修改。在批处理里面是有一个调用批命令的命令,就是用”DO命令。我们把之前做的“ zt003zcfzb.shl ”重新另存为“ zcfzb_hbbb.shl ",路径如下: 合并报表 批命令2008 zcfzb_hbbb.shl "然后我们建立一个“ zcfzb_mai n. shl ”的批处理文件来调用。代码如下:/首先进入数据状态DATA/报表取数合并报表 批命令2008zcfzb hbbb.shl "把此文件

12、放在:合并报表00批命令01母公司2008 zcfzb main.shl为了能够在进入报表的时候,将最终合并的报表的数据先清空,同样我们做一个清空的批处理命令。/清空数据,合并数据前先把数据清空。CLEAR C7:D55CLEAR G7:H55把文件命名为“合并报表批命令2008zcfzb_clear.shl”以备调用然后我们对“ zcfzb_main.shl ”的批命令再次修改,加入清除数据的批处理。/首先进入数据状态DATA/清空数据合并报表批命令 2008zcfzb clear.shl"/报表取数合并报表 批命令2008zcfzb hbbb.shl "那么以后不管有多

13、少张表,资产负债表,损益表等等,只要每一张表都保存相应的三个批处理(主命令、 清空命令、合并命令)。只是每张表需要修改的地方就是将“zcfzb_hbbb.shl ”里面的参数做一些修改。比如路径、文件名称、年份,列名等等。但是能否有更好的办法呢?能否将合并数据作为一个通用的模板,用来调用呢?然后把变量的赋值放在 主程序中进行,这样不是更好吗?模型:主程序:定义变量、赋值子程序1:清空数据子程序2 :合并数据子程序3:数据整理这个时候,我们开始做统一规划了:合并报表批命令2008主程序(主批处理):zcfzb_main.shl子程序(清空数据):zcfzb_clear.shl子程序(合并报表):

14、zcfzb_hbbb.shl先把主程序列出:主程序(主批处理):zcfzb_main.shl/程序开始/合并报表/合并报表说明:zt003 广海本部/ 首先进入数据状态/-把变量清空,然后要求输入关键字。DATAfree allif 年=0disp "请先输入关键字”returnelse/-设置批处理命令的路径。合并报表00批命令”let &shl02="01 母公司”let &shl03="2008"let & shl04=&shl01+ &shl02+&shl03let & shlclr=&qu

15、ot;zcfzb_clear.shl"let &shlhb="zcfzb_hbbb.shl"let & shlclr= & shl04+&shlclrlet & shlhb= & shlO4+&shlhb/清空数据DO &shlclr/初始化取数 报表合并报表"1let &rep2=”zt003”/设置取数帐套let &rep3=”2008”资产负债表.rep"let & col01=3/设置列起始值Clet & colmax0 仁4/设置列循环最大

16、值Dlet & col02=7/设置列起始值 Glet &colmax02=8/设置列循环最大值Hlet & row01=7/设置行起始值7let &rowmax=55/设置行循环最大值55/报表取数-zt003let &rep2="zt003"/设置取数帐套let & row0=&row01/设置行起始值/01.分列取数1let & col0=& col01/设置列起始值Clet & colmax=&colmax01 /设置列循环最大值DDO &shlhb/02.分列取数2le

17、t & col0=& col02/设置列起始值Glet & colmax=&colmax02 /设置列循环最大值HDO &shlhb/end/保存报表/savefree allend /第一层IF的结尾清空命令:zcfzb_clear.shl/清空数据CLEAR c7:d55CLEAR g7:h5合并命令:zcfzb_hbbb.shl/ 合并报表/设置报表路径、合并起始列、起始行let &rep=&rep1+ &rep2+&rep3+&rep4let & col=&colOlet &row=

18、&rowO/通过循环合并数据while &col <=&colmaxwhile & row<=&rowmaxlet !&col#&row=!&col#&row+&rep->!&col#&row rela年 with &rep->年,月 with &rep->月let &row=&row+1endlet &row=&rowO/重新置位,否则行的循环无法进行let & col=&col+1end以上代码供参考,

19、已经做了必要的注释,相信应该可以知道是做什么的。以后如果需要合并报表,其实要改的就是zcfzb_mai n. shl文件里面的两个段落,一个是“路径设置”一个是“报表取数”。比如需要修改批命令的路径和批命令对应的文件名,则改以下蓝色部分。/-设置批处理命令的路径。let &shlO仁"合并报表00批命令”let &shl02="02 合并口径”let &shl03="2008 "let & shl04=&shl01+ &shl02+&shl03let &shlclr=" zcfzb

20、_clear.shl "let &shlhb=" zcfzb_hbbb.shl "let & shlclr= & shl04+&shlclrlet & shlhb= & shl04+&shlhb如果需要修改需要合并的报表,那么就改以下内容:/ 报表取数zt003let &rep2=" zt003 "/ 设置取数帐套let &row0=&row01/设置行起始值/01.分列取数1let &col0=&col01/设置列起始值Clet & colmax=&colmax01 /设置列循环最大值 DDO &shlhb/02.分列取数2let &col0=&col02/设置列起始值Glet & colmax=&colmax02 / 设置列循环最大值 HDO &shlhb/END如果需要合并的列和行需要修改,则改:/ 初 始 化 取 数 报 表合并报表"/设置取数帐套.rep"/设置列起始值C/设置列循环最大值D/设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论