用FineReport報表系統(tǒng)構(gòu)建資金監(jiān)管平臺
Posted on 2015-08-25 14:52 FineReport——報表技術(shù)領(lǐng)跑者 閱讀(88) 評論(0) 編輯 收藏一、應(yīng)用背景
計算機(jī)的應(yīng)用已經(jīng)滲透到日常工作的許多方面,無論是其自身還是所發(fā)揮的作用,計算機(jī)都標(biāo)志著一種高科技,使工作高效率和高水平。為了能更方便,更輕松,更好的管理,信息化建設(shè)正在日益發(fā)展壯大,更加完善。2007年11月,財政部黨組明確提出了“一體化建設(shè)”指導(dǎo)思想,要求做到管理一體化、業(yè)務(wù)一體化和技術(shù)一體化。近兩年來,始終堅持貫徹落實一體化建設(shè)指導(dǎo)思想,不斷加快建設(shè)步伐,信息化建設(shè)正逐步由“分散”走向“統(tǒng)一”,取得明顯進(jìn)展。
二、工具
資金監(jiān)管系統(tǒng)采用PHP網(wǎng)站架構(gòu),iframe方式嵌入了,使用FinReport6.5.3版本報表軟件,連接相關(guān)業(yè)務(wù)系統(tǒng)ORACLE數(shù)據(jù)庫,制作出圖形分析和報表分析,最終通過appserv訪問資金監(jiān)管系統(tǒng)。
三、數(shù)據(jù)源
資金監(jiān)管系統(tǒng)來源數(shù)據(jù)來于相關(guān)多個業(yè)務(wù)系統(tǒng)ORACLE數(shù)據(jù)庫。
(一)總體發(fā)放分析
FFDW表,是發(fā)放單位表,字段分為,單位代碼和單位名稱。
FFLX表,是發(fā)放類型表,字段分為,發(fā)放類型代碼、發(fā)放類型名稱、單位代碼、備注。
FFXM表,是發(fā)放項目表,字段為,發(fā)放項目代碼、發(fā)放項目名稱、發(fā)放類型、發(fā)放單位代碼、預(yù)警金額、備注、項目備注。
HM_AREA表,是單位表,字段分為,區(qū)域代碼和區(qū)域名稱。
HM_DATA表,是發(fā)生數(shù)據(jù)表,字段分為,ID號、部門代碼、發(fā)放項目代碼、身份證號、姓名、區(qū)域代碼、賬號、金額、日期、備注、發(fā)放日期。
RYXX表,是人員信息表,字段分為,身份證號、姓名、性別、聯(lián)系地址、聯(lián)系電話、狀態(tài)、日期、單位代碼。
(二)賬務(wù)分析
Sjzw_dw表,是財務(wù)單位表,字段分為單位代碼和單位名稱。
Sjzw_dwkm表,是單位科目表,字段分為單位代碼,科目代碼,科目名稱。
Sjzw_pz表,是憑證表,字段分為單位代碼、憑證ID、憑證日期、憑證號、憑證類型、用途、科目代碼、借方金額、貸方金額、審核員、財務(wù)主管、制單員、記賬員,記賬日期。
四、需求分析
對全區(qū)資金進(jìn)行資金監(jiān)管,包括區(qū)、鎮(zhèn)、街道財政和行政事業(yè)單位的所有資金收入和支出過程,銀行賬戶資金變動狀況進(jìn)行實時監(jiān)督、管理、分析,并通過各類圖表等方式實時展示反映、預(yù)警控制和實時互動交流分析管理。
. 各類報表可以自由組合并預(yù)測
每張報表在特定的條件下可以由指定用戶自由組合、定義組成相關(guān)的報表,并有多種查詢方式,同時需要有預(yù)測分析功能。
. 各類報表需要有預(yù)警功能
. 每張報表都需要有預(yù)警功能,而預(yù)警值可以由用戶自行定義,在預(yù)警范圍內(nèi)有數(shù)據(jù)為正常情況而無需做任何動作時,可以以打標(biāo)記的方式讓這條數(shù)據(jù)不出現(xiàn)在預(yù)警中。
. 各類報表的靈活性
. 每張報表的圖形分析要直觀明了,聯(lián)動性強(qiáng),數(shù)據(jù)報表需要逐層挖掘至最底層明細(xì)數(shù)據(jù)。報表的操作靈活性要強(qiáng),需要可以如EXCEL一樣可以隨意指定對齊方式、文本數(shù)字格式、多列排序,便于所有業(yè)務(wù)管理人員操作。
(一)資金總體發(fā)放分析
資金總體發(fā)放圖形分析分三塊統(tǒng)計圖,第一部分為部門發(fā)放比例,點(diǎn)擊部委傳參聯(lián)動第二部分部門發(fā)放類型比例,點(diǎn)擊發(fā)放類型傳參聯(lián)動第三部分部門發(fā)放類型的趨勢。
資金總體發(fā)放報表分析也分為三塊,第一部分是發(fā)放匯總總表,以交叉報表形式展現(xiàn),橫向為部門,縱向為區(qū)域,金額以部門和區(qū)域交叉顯示。橫向縱向每個金額都可以點(diǎn)擊,傳不同條件展現(xiàn)出不同數(shù)據(jù)報表。第二部分是定位查詢,輸入框輸入信息點(diǎn)擊查詢,得到關(guān)于當(dāng)前輸入框內(nèi)信息的報表。第三部分為預(yù)警分析報表,每張報表設(shè)置好預(yù)警值,可以查看預(yù)警信息。
(二)賬務(wù)分析(資產(chǎn)負(fù)債表)
資產(chǎn)一般是按各種資產(chǎn)變化先后順序逐一列在表的左方,反映單位所有的各項財產(chǎn)、物資、債權(quán)和權(quán)利;所有的負(fù)債和所有者權(quán)益則逐一列在表的右方。負(fù)債一般列于右上方分別反映各種長期和短期負(fù)債的項目,業(yè)主權(quán)益列在右下方,反映業(yè)主的資本和盈余。左右兩方的數(shù)額相等。資產(chǎn)負(fù)債表在制作過程中分為2類:第一類為有規(guī)則資產(chǎn)負(fù)債表,取數(shù)據(jù)全部取每一個一級科目的金額,一個一個科目單列在資產(chǎn)負(fù)債表上;第二類為無規(guī)律資產(chǎn)負(fù)債表,取數(shù)據(jù)全部取每一個一級科目的金額,單個科目或多個科目相加列在資產(chǎn)負(fù)債表上。
五、數(shù)據(jù)分析
(一)資金總體發(fā)放分析
資金總體發(fā)放分析的內(nèi)容:資金發(fā)放分析、資金發(fā)放對比分析、資金發(fā)放預(yù)警分析。
資金總體發(fā)放分析的目的:揭示單位發(fā)放每個發(fā)放類型的內(nèi)涵、了解單位發(fā)放資金變動情況及變動原因、調(diào)整發(fā)放異常數(shù)據(jù)、為下一年預(yù)算做調(diào)整。
(二)賬務(wù)分析(資產(chǎn)負(fù)債表)
資產(chǎn)負(fù)債表分析的內(nèi)容:資產(chǎn)負(fù)債表水平分析、資產(chǎn)負(fù)債表垂直分析、資產(chǎn)負(fù)債表項目分析。
資產(chǎn)負(fù)債表分析的目的:揭示資產(chǎn)負(fù)債表及相關(guān)項目的內(nèi)涵、了解單位財務(wù)狀況的變動情況及變動原因、評價單位會計對單位收支狀況的反映程度、評價單位的會計政策、修正資產(chǎn)負(fù)債表的數(shù)據(jù)。
六、報表制作
①傳統(tǒng)的圖形分析及報表制作方法
難點(diǎn)1、圖形界面中無法制作中文字定位查詢,輸入中文字系統(tǒng)不識別。
難點(diǎn)2、圖形界面中表格無法自定義合并單元格居左、居中、居右。
難點(diǎn)3、圖形界面中統(tǒng)計圖分析模塊單獨(dú)最大化,數(shù)據(jù)多時,數(shù)據(jù)緊湊無法看清楚數(shù)據(jù)。
難點(diǎn)4、報表中無法行列凍結(jié)顯示,數(shù)據(jù)橫向和縱向數(shù)據(jù)多時,向下向上無法知道當(dāng)前單元格字段意思。
難點(diǎn)5、報表中定位查詢無法在整張報表中定位查詢,只能查詢定位到當(dāng)前頁報表數(shù)據(jù)。
難點(diǎn)6、報表中無法屏蔽無意義數(shù)據(jù),報表數(shù)據(jù)為零的條目屏蔽顯示難;
難點(diǎn)7、報表中無法在線打印,只能導(dǎo)出EXCL再打印。
難點(diǎn)8、報表中數(shù)據(jù)無法自動刷新,每次只能人工手動刷新數(shù)據(jù)。
難點(diǎn)9、通過SQL語句查詢出數(shù)據(jù),無法再報表內(nèi)自定義取數(shù)和排列,無法制作無規(guī)則報表(自定義報表)。
②利用FineReport報表工具
1、新建一個報表模板,模板內(nèi)新建一個參數(shù),在參數(shù)設(shè)計中,按鈕控件事件中添加定位查詢后報表超鏈接代碼
連接FineReport報表JS腳本中添加代碼:
var XM = this.options.form.getWidgetByName("XM").getValue();
window.open("/WorkSpace1/ReportServer?reportlet=[60e0][6c11]/[5d07][660e][53bf][60e0][6c11][8d44][91d1][603b][4f53][53d1][653e][5206][6790][ff08][4e2a][4eba][67e5][8be2][62a5][8868][ff09].cpt&xm="+FR.cjkEncode(XM));
如果連接第三方報表JS腳本可以修改編碼轉(zhuǎn)換方式。
2、表格每一列可以任意合并單元格,居左、居中、居右,還可以調(diào)整不同格式。
3、圖形分析界面模板中,每個模塊都用網(wǎng)頁框控件嵌入,如第一部分圖形分析制作2份,一份嵌入在網(wǎng)頁框控件中,另一份放大版通過超鏈接寫在最大化圖片上面。
4、報表凍結(jié)設(shè)置,文件—頁面設(shè)置—其他中輸入重復(fù)標(biāo)題起始行和重復(fù)標(biāo)題結(jié)束行,再凍結(jié)重復(fù)標(biāo)題結(jié)束行打鉤。
5、FineReport報表查詢過濾,針對當(dāng)前報表所有數(shù)據(jù)進(jìn)行查詢過濾,不存在無法查詢過濾翻頁數(shù)據(jù)。
6、報表中屏蔽無意義數(shù)據(jù),在需要屏蔽無意義數(shù)據(jù)關(guān)鍵單元格中,右擊條件屬性,添加條件屬性,增加行高屬性,高度為0,輸入屏蔽無意義數(shù)據(jù)條件。
7、FineReport報表含多種打印方式,其中FLASH打印模式操作最為方便簡潔。
8、FineReport報表每次打開都是最新數(shù)據(jù),打開FR報表時,實時刷新當(dāng)前報表中數(shù)據(jù)集中的SQL語句,得到最新數(shù)據(jù)。
9、制作無規(guī)律資產(chǎn)負(fù)債表,資產(chǎn)負(fù)債表分2類數(shù)據(jù)資產(chǎn)類和負(fù)債類,新建2個數(shù)據(jù)集,一個為資產(chǎn)類科目借方減去貸的數(shù)據(jù),另一個為負(fù)債科目貸方減去借方的數(shù)據(jù)。
數(shù)據(jù)集中唯一值取數(shù)用公式replace(UNIQUEARRAY(數(shù)據(jù)集名稱select(字段名)),",","")如:月份、單位名稱、單位負(fù)責(zé)人、財務(wù)主管、制單人、審核員都可以用此公式取數(shù)據(jù)。
資產(chǎn)負(fù)債表取無規(guī)律值通過用公式=MAP(符合條件的值, "數(shù)據(jù)集名稱", "符合條件的列數(shù)","取值的列數(shù)")如:取科目“應(yīng)收在院病人醫(yī)藥費(fèi)”的年初數(shù),公式輸入=MAP(111, "科目1-5", "1", "3"),公式表示取數(shù)據(jù)集“科目1-5”中第一列值等于111對應(yīng)的第三列的值。多個科目合計數(shù)可以使用公式=MAP(符合條件的值, "數(shù)據(jù)集名稱","符合條件的列數(shù)", "取值的列數(shù)")+MAP(符合條件的值, "數(shù)據(jù)集名稱","符合條件的列數(shù)", "取值的列數(shù)"),如:去科目“貨幣資金”的年初數(shù),輸入公式=MAP(101, "科目1-5","1", "3")+MAP(102, "科目1-5","1", "3")+MAP(109, "科目1-5","1", "3"),公式表示取數(shù)據(jù)集“科目1-5”第一列值等于101、102、109對應(yīng)的第三列的值的合計數(shù)。
10、在報表頁面設(shè)置,其他中報表設(shè)置居中對齊,設(shè)置凍結(jié)重復(fù)行,目前版本設(shè)置凍結(jié)后報表分頁預(yù)覽無法居中顯示,通過在報表WEB屬性中添加JS代碼彌補(bǔ)此問題使用以下方法,但還存在缺陷,WEB預(yù)覽報表時看不到上下滾動條和在數(shù)據(jù)量多網(wǎng)速慢的情況下,系統(tǒng)先刷新了數(shù)據(jù)在最大化,無法完成居中效果。
在報表WEB屬性,分頁預(yù)覽報表中使用默認(rèn)工具欄,添加“起始加載”在JS腳本中輸入
setTimeout(‘top.moveTo(0,0)’,5);
setTimeout(‘top.resizeTo(screen.availWidth,screen.availHeight)’,5);
此腳本打開報表起最大化作用;
再添加“加載結(jié)束”在JS腳本中輸入
varslmargin=($(‘.content-container’).width()-$(‘.pageContentDIVdiv:first-child’).width())/2
if (slmargin>0) $(‘.content-container’).css(‘margin-left’,slmargin);
此腳本彌補(bǔ)報表凍結(jié)后無法居中的缺陷。
七、成果展示
(一)資金總體發(fā)放圖形分析
“資金總體發(fā)放分析”點(diǎn)擊“點(diǎn)擊查看明細(xì)表”得到“資金發(fā)放匯總表”,數(shù)據(jù)以部門橫向擴(kuò)展顯示,以區(qū)域縱向擴(kuò)展顯示以交叉表形勢匯總數(shù)據(jù),橫向縱向交叉金額數(shù)據(jù)可以點(diǎn)擊,傳相關(guān)條件可以得到更明細(xì)數(shù)據(jù)。
“資金發(fā)放匯總表”點(diǎn)擊部門匯總合計金額,得到“部門資金發(fā)放匯總表”,數(shù)據(jù)以資金發(fā)放類型橫向擴(kuò)展顯示,以區(qū)域縱向擴(kuò)展顯示以交叉表形勢匯總數(shù)據(jù),橫向縱向交叉金額數(shù)據(jù)可以點(diǎn)擊,傳相關(guān)條件可以得到更明細(xì)數(shù)據(jù)。
“
部門資金發(fā)放匯總表”點(diǎn)擊資金發(fā)放類型匯總合計金額,得到“資金發(fā)放類型資金發(fā)放明細(xì)表”,數(shù)據(jù)以月份橫向擴(kuò)展顯示,區(qū)域、姓名、身份證、地址以列表縱向擴(kuò)展顯示以交叉表形勢匯總數(shù)據(jù)。區(qū)域以分組顯示,能方便查看某區(qū)域有多少人信息,報表添加了統(tǒng)計行數(shù)功能,能明確數(shù)量的多與少。
“資金總體發(fā)放分析”點(diǎn)擊“10天內(nèi)到期”得到符合當(dāng)前報表條件報表。
“資金總體發(fā)放分析”點(diǎn)擊“金額大于10萬”得到符合當(dāng)前報表條件報表。
“資金總體發(fā)放分析”點(diǎn)擊“金額大于等于1萬小于10萬”得到符合當(dāng)前報表條件報表。
“資金總體發(fā)放分析”點(diǎn)擊“享受兩項以上惠民政策”得到符合當(dāng)前報表條件報表。
點(diǎn)擊身份證,得到此身份證的詳細(xì)明細(xì)發(fā)放數(shù)據(jù)。
(二)賬務(wù)分析(資產(chǎn)負(fù)債表)
有規(guī)則資產(chǎn)負(fù)債表,同一張報表傳不同單位,默認(rèn)當(dāng)前月日期顯示數(shù)據(jù)。
有規(guī)則資產(chǎn)負(fù)債表單位1
有規(guī)則資產(chǎn)負(fù)債表單位2
無規(guī)則資產(chǎn)負(fù)債表(自定義報表),默認(rèn)當(dāng)前月日期顯示數(shù)據(jù)。