最近遇到一個很頭疼的事情,客戶馬上要接受保監會的驗收,但是他們對Oracle EBS系統中的財務三大報表的格式不滿意。我們項目組考慮在很短的時間內要寫出三個報表,是要花費大量精力的,同時現在考慮到人力有限,所以,我們商量在標准報表的基礎上修改,看客戶能否接受。
修改標准的FSG模板真不好弄,裡面的代碼我們是看不到的,要控制格式只能通過不斷的對FSG定義上和利用FSG標准模板上的窗體域寫入代碼來嘗試。千回百轉,當我們第一次將雛形打印出來拿給客戶看的時候,客戶說可以接受。由於工作原因,項目經理去另一個項目上去,剩下我一個人在客戶公司,客戶最近不斷地要求我更改格式,主要遇到以下幾個問題:
1. 標准的“發布 FSG 報表”本身是不帶邊框的,客戶要求對報表的每一項都要用邊框;
2. 標准的三大財務報表(損益表、資產負債表、現金流量表)的項目條目中有不帶數值的行,客戶需要不帶數值的行也要有邊框;
3. 標准的FSG報表的輸出數值只能超過千位的數字有標示位".00",客戶需要所有數值都要有".00"標示,比如,1034,332,32.00 230.00 1.00的格式;
4. 列名需要加粗黑體並且居中
大體上就上面四個要求,剛聽到客戶提這些需求的時候,我還覺得很簡單的,我們項目經理說這個可能不好弄。在確定用更改標准FSG模板的前提下,從服務器上下載模板名為“FSGXML 基本模板”的模板,開始著手更改。
對要求1,我們在標准模板的相應地方加上邊框,更新模板(這時發現此模板不能更新,於是終止此模板,重新定義新的模板),將加上邊框後的模板上傳至新定義的模板上,跑請求看結果。效果是這樣的,整個正文內容部分是加上了邊框,但是對沒有數值的地方,邊框不會自動添加,就顯示出“缺省”的地方,十分不美觀,客戶也不能接受。之前我是這樣解決的,對原來不需要顯示的地方用"0"填充或者用多項的和填充,的確這樣做了以後,不再用空缺的行,相對之前是好看了許多,於是我打印出來給客戶看這部分的效果,客戶說:“這個樣子改比之前那種“缺省”的外觀來說是好美觀了,但是卻犯了一個原則的性才錯誤,比如資產負債表中,第一行是項目,按照你的做法是將項目這行的數值設為所有的條目的和(我自己以為是正確的),但是保監會要求的不會有這樣的顯示,項目這行在任何情況下都是不能有數值的。”於是重新思考方式來滿足要求1。因為不是客戶化的功能,很難從細節上控制格式,萬般無奈的時候,我試著將整個表格外面再加一層表格,上傳測試,奇跡般的在“缺省的”地方竟然加上了外邊框。這間單元格的邊框線目前未能解決,客戶已經接受此部分的修改。
對要求2的解決方法在第一步已經順帶解決,在解決這個要求的時候,對FSG的定義一定要很熟悉,這對格式的修改非常重要,一個空格,對少縮進,都需通過設置設定,同時目前報表列頭采用的是左對齊,且用trim()函數去掉空格。
對要求3,我咨詢過老的功能顧問,他說這個系統默認對千位以上的數字會自動加上,如果客戶實在要將千位以下的數字也顯示成那樣的效果,可以在定義FSG報表的時候,在定義列集的時候,有個數字格式,在裡面加上任意一個字符即可,但是這個字符會在報表中顯示出來,於是經過測試,的確是這樣,但是溝通後客戶不同意這樣做,於是繼續找方法,對定義FSG報表任何一個選項都反復測試,發現在定義行集的時候,在顯示選項中,有個系數設置,感覺像是控制此問題的,但是結果不是,目前還在尋找方法。
對要求4,正尋找方法中……
未完待續……
最後還是完美解決。