




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上2008-1-281. 報表路徑:先把路徑列出,大家稍微看一下。D:合并報表用于存放批處理文件 (SHL文件)主要有三個內(nèi)容D:合并報表03管理主體02合并口徑01母公司00批命令用于存放最終合并后的報表03管理主體02合并口徑01母公司用于存放最終需要合并的報表ZT023ZT003ZT013合并報表編程過程說明:1. 由于第一次編合并報表,所以很多東西不知道,那么就查資料,主要參考三個資料,一個是UFO的二次開發(fā)幫助文件,第二個是孫勇寫的UFO報表高級應(yīng)用培訓(xùn)講義,第三個是用友報表的PDF幫助2. 客戶的要求:客戶要求將12張資產(chǎn)負債表(當然還有很多其他的表)做合并
2、,這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)負債表的對應(yīng)的單
3、元格與ZT003對應(yīng)的單元格相加。批處理放在以下文件夾: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ù)。但是如果這樣做的話,每一個單元格就要一條語句,而且如果有多張表的話,
4、就更加復(fù)雜,而且如果到時候要修改的話,比如到了2009年的話,每一條都要改一下,甚至如果單元格發(fā)生變化,要改的話,那不是要瘋掉!所以在想能不能通過變量來實現(xiàn),便于后續(xù)修改。經(jīng)過翻查資料,大概知道了變量的應(yīng)用,然后就來實現(xiàn)吧。第一步,把報表路徑變量化,可以直接設(shè)定一個變量&rep,然后賦值,語句如下:let &rep=D:合并報表zt0032008資產(chǎn)負債表.rep那么單元格的賦值就可以這樣來寫:LET C7=C7+&rep-C7 RELA年 WITH &rep-年,月 WITH &rep-月這樣寫可以減少修改報表路徑的問題,至少改個路徑變量值,其他就不用改了,相對來說比較方便一些,但是,問題是
5、單元格也是比較麻煩,一條一來,有沒有什么其他辦法呢?睡覺的時候突然想到能否用循環(huán)來處理,如果可以就好辦多了,于是就開始實施,用while循環(huán),但是問題是如何來表示列號和行號呢?經(jīng)過翻查資料,有一個意外的發(fā)現(xiàn):1) 變量使用關(guān)鍵字年、季、月、日為數(shù)值型,單位名稱、單位編號為字符型。表示報表名:&REP_NAME-單元格名表示表頁號:&TAB表示行號:#&ROW表示列號:!&COL有了這個意外的發(fā)現(xiàn)之后,我就想,干脆把路徑、列號、行號都用變量表示算了,看看情況如何,代碼如下:/設(shè)置報表路徑、合并起始列、起始行l(wèi)et &rep1=D:合并報表let &rep2=zt003let &rep3=2008
6、let &rep4=資產(chǎn)負債表.replet &col0=3let &row0=7/設(shè)置報表路徑let &rep=&rep1+&rep2+&rep3+&rep4 /設(shè)置列號let &col=&col0/設(shè)置行號let &row=&row0/通過循環(huán)合并數(shù)據(jù),合并C7:D55的單元格while &col=4 while &row!&col#&row rela 年 with &rep-年,月 with &rep-月 let &row=&row+1 end let &row=&row0 let &col=&col+1end做了以上變動之后,至少修改起來事比較簡單,可以把這段代碼保存為“zt003zc
7、fzb.shl”通過以上的批處理命令,我們在執(zhí)行此批命令的時候,就可以實現(xiàn)把一個表的C7:D55的單元格與ZT003的對應(yīng)的單元格相加?,F(xiàn)在的情況有所變化,我們有兩種需要合并的報表,比如D:合并報表zt0032008資產(chǎn)負債表.rep D:合并報表zt0132008資產(chǎn)負債表.rep最終合并到以下表:D:合并報表01母公司2008資產(chǎn)負債表.repZt003 資產(chǎn)負債表Zt003 資產(chǎn)負債表01母公司 資產(chǎn)負債表合并如何實現(xiàn)呢?如何來利用之前做的批命令呢?難道需要把批命令重復(fù)寫一遍嗎?突然想到,能否通過調(diào)用批命令文件,相當于編程里面的“include”,那問題就可以解決了,也就是說,將一個合并
8、的批命令寫成一個批命令文件,然后來調(diào)用,只要有需要合并的時候,就調(diào)用此批命令,問題就可以解決了,減少重復(fù)工作,同時容易修改。在批處理里面是有一個調(diào)用批命令的命令,就是用”DO”命令。我們把之前做的“zt003zcfzb.shl”重新另存為“zcfzb_hbbb.shl”,路徑如下:DO D:合并報表批命令2008 zcfzb_hbbb.shl 然后我們建立一個“zcfzb_main.shl”的批處理文件來調(diào)用。代碼如下:/首先進入數(shù)據(jù)狀態(tài)DATA /報表取數(shù)DO D:合并報表批命令2008zcfzb_hbbb.shl 把此文件放在:D:合并報表00批命令01母公司2008 zcfzb_main
9、.shl為了能夠在進入報表的時候,將最終合并的報表的數(shù)據(jù)先清空,同樣我們做一個清空的批處理命令。/清空數(shù)據(jù),合并數(shù)據(jù)前先把數(shù)據(jù)清空。CLEAR C7:D55CLEAR G7:H55把文件命名為“D:合并報表批命令2008zcfzb_clear.shl”以備調(diào)用然后我們對“zcfzb_main.shl”的批命令再次修改,加入清除數(shù)據(jù)的批處理。/首先進入數(shù)據(jù)狀態(tài)DATA /清空數(shù)據(jù)DO D:合并報表批命令2008zcfzb_clear.shl/報表取數(shù)DO D:合并報表批命令2008zcfzb_hbbb.shl 那么以后不管有多少張表,資產(chǎn)負債表,損益表等等,只要每一張表都保存相應(yīng)的三個批處理(主
10、命令、清空命令、合并命令)。只是每張表需要修改的地方就是將“zcfzb_hbbb.shl”里面的參數(shù)做一些修改。比如路徑、文件名稱、年份,列名等等。但是能否有更好的辦法呢?能否將合并數(shù)據(jù)作為一個通用的模板,用來調(diào)用呢?然后把變量的賦值放在主程序中進行,這樣不是更好嗎?模型:主程序:定義變量、賦值子程序1:清空數(shù)據(jù)子程序2:合并數(shù)據(jù)子程序3:數(shù)據(jù)整理這個時候,我們開始做統(tǒng)一規(guī)劃了:D:合并報表批命令2008主程序(主批處理):zcfzb_main.shl子程序(清空數(shù)據(jù)):zcfzb_clear.shl子程序(合并報表):zcfzb_hbbb.shl先把主程序列出:主程序(主批處理):zcfzb
11、_main.shl/-程序開始-/合并報表/合并報表說明:/zt003廣海本部/-首先進入數(shù)據(jù)狀態(tài)-/-把變量清空,然后要求輸入關(guān)鍵字。DATA free allif 年=0 disp 請先輸入關(guān)鍵字returnelse/-設(shè)置批處理命令的路徑。let &shl01=D:合并報表00批命令let &shl02=01母公司let &shl03=2008let &shl04=&shl01+&shl02+&shl03let &shlclr=zcfzb_clear.shllet &shlhb=zcfzb_hbbb.shllet &shlclr= &shl04+&shlclrlet &shlhb= &s
12、hl04+&shlhb/-清空數(shù)據(jù)-DO &shlclr/-初始化取數(shù)報表-let &rep1=D:合并報表let &rep2=zt003 / 設(shè)置取數(shù)帳套let &rep3=2008let &rep4=資產(chǎn)負債表.replet &col01=3/設(shè)置列起始值 Clet &colmax01=4 /設(shè)置列循環(huán)最大值Dlet &col02=7 /設(shè)置列起始值 Glet &colmax02=8 /設(shè)置列循環(huán)最大值Hlet &row01=7/設(shè)置行起始值7let &rowmax=55 /設(shè)置行循環(huán)最大值55/-報表取數(shù)-zt003let &rep2=zt003 / 設(shè)置取數(shù)帳套let &row0=&r
13、ow01/設(shè)置行起始值/-01.分列取數(shù)1let &col0=&col01/設(shè)置列起始值 Clet &colmax=&colmax01 /設(shè)置列循環(huán)最大值 DDO &shlhb/-02.分列取數(shù)2let &col0=&col02/設(shè)置列起始值 Glet &colmax=&colmax02 /設(shè)置列循環(huán)最大值HDO &shlhb/-END-/-保存報表-/savefree allend/第一層IF的結(jié)尾清空命令:zcfzb_clear.shl/清空數(shù)據(jù)CLEAR c7:d55CLEAR g7:h5合并命令:zcfzb_hbbb.shl/-合并報表-/設(shè)置報表路徑、合并起始列、起始行l(wèi)et &re
14、p=&rep1+&rep2+&rep3+&rep4let &col=&col0let &row=&row0/通過循環(huán)合并數(shù)據(jù)while &col=&colmax while &row!&col#&row rela 年 with &rep-年,月 with &rep-月 let &row=&row+1 end let &row=&row0/重新置位,否則行的循環(huán)無法進行 let &col=&col+1end以上代碼供參考,已經(jīng)做了必要的注釋,相信應(yīng)該可以知道是做什么的。以后如果需要合并報表,其實要改的就是zcfzb_main.shl文件里面的兩個段落,一個是“路徑設(shè)置”,一個是“報表取數(shù)”。比如
15、需要修改批命令的路徑和批命令對應(yīng)的文件名,則改以下藍色部分。/-設(shè)置批處理命令的路徑。let &shl01=D:合并報表00批命令let &shl02=02合并口徑let &shl03=2008let &shl04=&shl01+&shl02+&shl03let &shlclr=zcfzb_clear.shllet &shlhb=zcfzb_hbbb.shllet &shlclr= &shl04+&shlclrlet &shlhb= &shl04+&shlhb如果需要修改需要合并的報表,那么就改以下內(nèi)容:/-報表取數(shù)-zt003let &rep2=zt003 / 設(shè)置取數(shù)帳套let &row0
16、=&row01/設(shè)置行起始值/-01.分列取數(shù)1let &col0=&col01/設(shè)置列起始值 Clet &colmax=&colmax01 /設(shè)置列循環(huán)最大值 DDO &shlhb/-02.分列取數(shù)2let &col0=&col02/設(shè)置列起始值 Glet &colmax=&colmax02 /設(shè)置列循環(huán)最大值HDO &shlhb/-END-如果需要合并的列和行需要修改,則改:/-初始化取數(shù)報表-let &rep1=D:合并報表let &rep2=zt003 / 設(shè)置取數(shù)帳套let &rep3=2008let &rep4=資產(chǎn)負債表.replet &col01=3/設(shè)置列起始值 Clet &colmax01=4 /設(shè)置列循環(huán)最大值Dlet &col02=7 /設(shè)置列起始值 Glet &colmax02=8 /設(shè)置列循環(huán)最大值Hlet &row01=7/設(shè)置行起始值7let &rowmax=55 /設(shè)置行循環(huán)最大值55如果需要添加合并的報表,比如添加zt013,那么就在zt003的合并代碼下,添加以下代碼,其實就是復(fù)制。/-報表取數(shù)-zt013let &rep2=zt013 / 設(shè)置取數(shù)帳套let &row0=&row01/設(shè)置行起始值/-01.分列取數(shù)1let &col0=&col01/設(shè)置列起始值 Clet &c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年創(chuàng)意產(chǎn)業(yè)管理研究生入學(xué)考試試題及答案
- 2025年工商管理與創(chuàng)新思維考試試題及答案
- 2025年圖書館員資格考試試題及答案
- 2025鋼管租賃合同范本
- 2025關(guān)于版權(quán)轉(zhuǎn)讓合同的樣本
- 急診醫(yī)療質(zhì)量管理計劃
- 促進班級學(xué)習(xí)的共同體計劃
- 模具定做合同協(xié)議書
- 水產(chǎn)企業(yè)合作協(xié)議書
- 樓上墻體裂縫協(xié)議書
- 提高大面積混凝土地面表面平整度課件
- 活動板房材料規(guī)格表大全
- 臺區(qū)線損綜合分析臺區(qū)線損分類及計算方法
- 城市園林綠化養(yǎng)護方案
- 人民幣收藏培訓(xùn)知識
- 籍貫對照表完整版
- 中興基站設(shè)備故障處理指導(dǎo)書
- 公路工程地質(zhì)試卷A
- 渤海大學(xué)在線自助繳費平臺操作流程
- 2023年山東省大學(xué)生朋輩心理輔導(dǎo)技能大賽筆試題庫
- 聯(lián)合利華POSM展策劃案
評論
0/150
提交評論