第一篇:利用UFO報表批處理制作合并報表
利用UFO報表批處理制作合并報表
2008-1-28 1.報表路徑:先把路徑列出,大家稍微看一下。D:合并報表
你的下載權(quán)限 0 低于此附件所需權(quán)限 1, 你無法查看此附件 主要有三個內(nèi)容
你的下載權(quán)限 0 低于此附件所需權(quán)限 1, 你無法查看此附件
合并報表編程過程說明: 1.由于第一次編合并報表,所以很多東西不知道,那么就查資料,主要參考三個資料,一個是UFO的二次開發(fā)幫助文件,第二個是孫勇寫的《UFO報表高級應用培訓講義》,第三個是用友報表的PDF幫助 2.客戶的要求:
客戶要求將12張資產(chǎn)負債表(當然還有很多其他的表)做合并,這12張分別是不同的下屬單位,由于在開始實施的時候,就考慮到合并報表的事情,所以但是在建立帳套的時候,要求所有單位的會計科目(包括輔助核算),報表格式都必須一致,所以這12張表的格式都是一模一樣的。
開始動手了 1.現(xiàn)在第一步是建立一張合并報表模板,可以直接用現(xiàn)有的資產(chǎn)負債表模板,然后把公式清空,報表文件為“D:合并報表zt0032008資產(chǎn)負債表.rep” 2.報表歸類:我們假設(shè)合并兩張報表就可以了,zt003和zt013,路徑如下: D:合并報表
D:合并報表zt0032008資產(chǎn)負債表.rep D:合并報表zt0132008資產(chǎn)負債表.rep
簡單的合并方式:將zt013的資產(chǎn)負債表的對應的單元格與ZT003對應的單元格相加。
批處理放在以下文件夾: D:合并報表批處理2008
我們先簡單建立一個批處理,用以實現(xiàn)兩個單元格的簡單合并,文件命名為“zt003zcfzb.shl” 批命令如下:
LET C7=C7+“D:合并報表zt0032008資產(chǎn)負債表.rep”->C7 RELA 年 WITH “D:合并報表zt0032008資產(chǎn)負債表.rep”-> 年,月 WITH “D:合并報表zt0032008資產(chǎn)負債表.rep”-> 月
起碼知道以上的命令可以實現(xiàn)將C7單元格的數(shù)據(jù)加上“D:合并報表zt0032008資產(chǎn)負債表.rep”C7的數(shù)據(jù)。
但是如果這樣做的話,每一個單元格就要一條語句,而且如果有多張表的話,就更加復雜,而且如果到時候要修改的話,比如到了2009年的話,每一條都要改一下,甚至如果單元格發(fā)生變化,要改的話,那不是要瘋掉!
所以在想能不能通過變量來實現(xiàn),便于后續(xù)修改。
經(jīng)過翻查資料,大概知道了變量的應用,然后就來實現(xiàn)吧。
第一步,把報表路徑變量化,可以直接設(shè)定一個變量&rep,然后賦值,語句如下:
let &rep=“D:合并報表zt0032008資產(chǎn)負債表.rep”
那么單元格的賦值就可以這樣來寫:
LET C7=C7+&rep->C7 RELA年 WITH &rep->年,月 WITH &rep->月
這樣寫可以減少修改報表路徑的問題,至少改個路徑變量值,其他就不用改了,相對來說比較方便一些,但是,問題是單元格也是比較麻煩,一條一來,有沒有什么其他辦法呢?
睡覺的時候突然想到能否用循環(huán)來處理,如果可以就好辦多了,于是就開始實施,用while循環(huán),但是問題是如何來表示列號和行號呢?
經(jīng)過翻查資料,有一個意外的發(fā)現(xiàn):
你的下載權(quán)限 0 低于此附件所需權(quán)限 1, 你無法查看此附件
有了這個意外的發(fā)現(xiàn)之后,我就想,干脆把路徑、列號、行號都用變量表示算了,看看情況如何,代碼如下:
//設(shè)置報表路徑、合并起始列、起始行 let &rep1=“D:合并報表” let &rep2=“zt003” let &rep3=“2008”
let &rep4=“資產(chǎn)負債表.rep” let &col0=3 let &row0=7
//設(shè)置報表路徑
let &rep=&rep1+&rep2+&rep3+&rep4
//設(shè)置列號 let &col=&col0
//設(shè)置行號 let &row=&row0
//通過循環(huán)合并數(shù)據(jù),合并C7while &col<=4
while &row<=55
let!&col#&row=!&col#&row+&rep->!&col#&row rela 年 with &rep->年,月 with &rep->月
let &row=&row+
1end
let &row=&row0
let &col=&col+1 end
做了以上變動之后,至少修改起來事比較簡單,可以把這段代碼保存為“zt003zcfzb.shl” 通過以上的批處理命令,我們在執(zhí)行此批命令的時候,就可以實現(xiàn)把一個表的C7格與ZT003的對應的單元格相加。
現(xiàn)在的情況有所變化,我們有兩種需要合并的報表,比如 D:合并報表zt0032008資產(chǎn)負債表.rep D:合并報表zt0132008資產(chǎn)負債表.rep 最終合并到以下表:
D:合并報表