劉芮 方木云 王文成 王榮
[摘? ? 要] 利用計算機管理數(shù)據(jù)繁多的PPP項目財務(wù),是當(dāng)前PPP項目發(fā)展的必然趨勢。針對目前使用Excel處理PPP項目財務(wù)時存在的數(shù)據(jù)不共享、難管理、查詢困難等問題,設(shè)計與實現(xiàn)了基于ExtJS技術(shù)的PPP項目財務(wù)評價系統(tǒng)。該系統(tǒng)使用Microsoft visual Studio 2013作為開發(fā)環(huán)境,SQL Server 2008作為后臺數(shù)據(jù)庫,實現(xiàn)了項目管理、項目編制、基礎(chǔ)設(shè)置等功能。應(yīng)用實踐表明,ExtJS框架能夠?qū)崿F(xiàn)復(fù)雜交互的Web界面,開發(fā)出的軟件具有良好用戶體驗。
[關(guān)鍵詞] PPP項目;財務(wù)評價系統(tǒng);ExtJS;Web
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2019. 13. 021
[中圖分類號] F272;TP311? ? [文獻標(biāo)識碼]? A? ? ? [文章編號]? 1673 - 0194(2019)13- 0046- 05
0? ? ? 引? ? 言
PPP(Public-Private Partnership)項目是指政府部門在進行基礎(chǔ)設(shè)施建設(shè)的過程中,通過與企業(yè)之間的合作,充分利用政府部門的研發(fā)技術(shù)優(yōu)勢以及企業(yè)的經(jīng)營優(yōu)勢,開展國家基礎(chǔ)設(shè)施的建設(shè)。
近年來,隨著我國市場經(jīng)濟的不斷發(fā)展,我國采用PPP模式開展基礎(chǔ)建設(shè)的項目越來越多,但通常PPP項目的運作是一個十分復(fù)雜的系統(tǒng)工程,具有周期較長、涉及財務(wù)數(shù)據(jù)較多的特點。目前相當(dāng)多的單位在PPP項目的財務(wù)計算中,都還是采用原始的Excel編制公式的方式來解決復(fù)雜的計算,為了提高PPP項目的工作效率并充分保障其安全性,利用計算機技術(shù)開發(fā)PPP項目財務(wù)評價系統(tǒng)是非常有必要的。
1? ? ? ExtJS簡介
ExtJS是一個用JavaScript編寫的,與后臺開發(fā)技術(shù)無關(guān)的前端Ajax框架。它最開始基于YUI(Yahoo User Interface)技術(shù),并由JackSlocum開發(fā),包含高性能可定制的UI組件、可擴展的面向?qū)ο蠼M件模型以及更直觀更簡便的API使用方式,能夠?qū)崿F(xiàn)各組件之間的無縫隙調(diào)用。ExtJS可以直接應(yīng)用到Java、.Net、PHP開發(fā)語言中,前后臺之間通過JSON/XML實現(xiàn)數(shù)據(jù)傳遞。它完全采用面向?qū)ο蟮乃枷脒M行架構(gòu),框架中所有組件和工具都被定義為類,并分布在特定的命名空間中。ExtJS還提供了可重用的對象和部件,使開發(fā)人員從大量的Web UI操作及跨瀏覽器處理工作中脫離出來,令開發(fā)變得快速、輕松。
ExtJS的特點:首先,ExtJS對多種瀏覽器兼容性很好,可以兼容IE、Google Chrome、360、FireFox等瀏覽器;其次,ExtJS具有豐富的組件和控件庫,如容器、面板、表格、數(shù)等,用戶可以直接調(diào)用;最后,框架提供了控件的可擴展機制,可在繼承父類的基礎(chǔ)上,創(chuàng)建新的類構(gòu)造器,增加新的屬性、方法,從而構(gòu)造新的控件。
ExtJS基本功能:ExtJS的基本功能包括:對標(biāo)準(zhǔn)信息提示框的擴展、對標(biāo)準(zhǔn)表單組件的擴展、支持版面及各種布局方式、提供了大量的工具類和工具方法和各種組件。
2? ? ? 系統(tǒng)設(shè)計
2.1? ?架構(gòu)設(shè)計
系統(tǒng)架構(gòu)采用典型的MVC三層模型結(jié)構(gòu),MVC,是模型(Model)-視圖(View)-控制器(Controller)的縮寫,一種軟件設(shè)計典范,用于組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法。MVC設(shè)計提高了ExtJS的代碼編寫的獨立性和代碼修改的方便性。
模型(Model):主要用于管理數(shù)據(jù),模型是字段與數(shù)據(jù)的結(jié)合,模型知道如何持久化自己的數(shù)據(jù),并且可以與其他模型關(guān)聯(lián),它用于封裝業(yè)務(wù)邏輯。業(yè)務(wù)邏輯的處理過程對于其他層來說屬于暗箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的結(jié)果給控制器,最后提交相應(yīng)的視圖進行顯示。模型的設(shè)計可以說是MVC的核心。
視圖(View):視圖屬于展示層,專注于圖形界面的顯示,通過瀏覽器展示給用戶,接收用戶的請求,在新的Web應(yīng)用程序中,又增加了許多腳本語言,如JavaScript等。
控制器(Controller):主要負責(zé)轉(zhuǎn)發(fā)請求,并對請求進行業(yè)務(wù)邏輯的處理,根據(jù)不同的用戶請求調(diào)用視圖、模型,在相關(guān)業(yè)務(wù)處理完成后再由模型中的數(shù)據(jù)更新視圖。通??刂破髫撠?zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。
該模型由表現(xiàn)層、控制層和模型層構(gòu)成,每一層采用不同的技術(shù)實現(xiàn)。處理主流程:用戶從瀏覽器發(fā)出的請求(異步請求)至服務(wù)層;服務(wù)層根據(jù)請求調(diào)用實現(xiàn)層業(yè)務(wù)處理模塊進行業(yè)務(wù)處理;業(yè)務(wù)處理完成后,一方面通過數(shù)據(jù)訪問層接口與數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)進行持久化處理;另一方面,實現(xiàn)層將用戶請求結(jié)果回傳給服務(wù)器,并經(jīng)由服務(wù)層規(guī)范化后,返回給瀏覽器并呈現(xiàn)給用戶。
2.2? ?業(yè)務(wù)功能設(shè)計
首先,在形式上,傳統(tǒng)的PPP項目財務(wù)報表大多采用Excel文件形式存放,隨著PPP項目的進行,尤其是在項目建成投產(chǎn)后漫長的運營階段,所要處理的項目會逐漸增多,文件管理的難度便會迅速增大。長此以往,數(shù)據(jù)冗余程度高,查詢也會十分困難。
其次,在功能實現(xiàn)上,PPP項目財務(wù)計算通常需要收集很多基礎(chǔ)數(shù)據(jù),包括建設(shè)期、運營期、投資估算、資金籌措等。與此同時,由于PPP項目建設(shè)經(jīng)營風(fēng)險相對較高,及時準(zhǔn)確地評價和監(jiān)控運營項目是否達到預(yù)期的財務(wù)經(jīng)濟目標(biāo)也是PPP項目中的一個重要問題。所以在設(shè)計系統(tǒng)功能時,考慮到以上兩點,將系統(tǒng)功能細化到能夠直接提取和評價的三十個子項,其中包含項目投標(biāo)假設(shè)、鋪底流動資金、借還款計劃表(累計現(xiàn)金凈流量)、盈利能力評價(靜態(tài)投資回收期、動態(tài)投資回收期)、資產(chǎn)負債估算等具有代表性的財務(wù)指標(biāo)。
考慮到系統(tǒng)用戶對于整個系統(tǒng)的管理需求,結(jié)合以上PPP項目的特點以及財務(wù)評價相關(guān)的業(yè)務(wù)流程分析,將本系統(tǒng)主要功能分為項目管理、項目投標(biāo)編制以及基礎(chǔ)設(shè)置三個模塊。
3? ? ? 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計在系統(tǒng)設(shè)計中十分重要,設(shè)計不合理或完善都會為后期開發(fā)工作造成很多麻煩,甚至需要重新設(shè)計開發(fā),重做已完成的工作。為了可靠地保證數(shù)據(jù)的安全,本系統(tǒng)使用的數(shù)據(jù)庫系統(tǒng)是SQL Server 2008。
根據(jù)對系統(tǒng)面向用戶、提供服務(wù)類型以及提供的功能進行分析,總結(jié)出如下數(shù)據(jù)庫設(shè)計方案。數(shù)據(jù)庫共包括32張表,主要有基礎(chǔ)設(shè)置表、項目要素列表、稅費政策假設(shè)表、項目投標(biāo)假設(shè)表、計算模式設(shè)置表等等。表1-3展示了部分重要表字段設(shè)計。
4? ? ? 系統(tǒng)功能實現(xiàn)
下面結(jié)合上海寶冶集團有限公司某PPP項目財務(wù)評價系統(tǒng)報表,來說明本系統(tǒng)的具體實現(xiàn)方式。由于表格基本框架大致相同,所以每張表格均可首先配置生成一個表格框架,然后在框架的基礎(chǔ)上進行具體的數(shù)據(jù)處理,從而得到具體完整的表格。
4.1? ?基礎(chǔ)設(shè)置
系統(tǒng)中每張表格都可以看作是一系列的單元格、行、列組成的區(qū)域。這些組成表格區(qū)域的每個單元格、行、列都可以定義為一個數(shù)據(jù)規(guī)則,據(jù)此劃分,每張表格的內(nèi)容是由一系列數(shù)據(jù)規(guī)則組成。
根據(jù)數(shù)據(jù)規(guī)則中數(shù)據(jù)來源的不同,數(shù)據(jù)規(guī)則又可以劃分為靜態(tài)、運算、數(shù)據(jù)庫三類。靜態(tài)來源,即表格的標(biāo)題、表頭、表尾以及表體中用于表示行、列名稱或其他說明性含義的部分。由于每張表格的靜態(tài)來源均不相同,于是均采用預(yù)先配置的方式,每張表格的靜態(tài)來源經(jīng)過自主配置后保存,讀取到對應(yīng)表格框架中。
4.2? ?生成表格框架
以資金籌措計劃表為例。該頁面基于Ext.grid.Panel控件開發(fā),并包含一個工具欄用于實現(xiàn)表格的保存和打印等功能的實現(xiàn)。用戶通過鼠標(biāo)點擊左側(cè)控件中的報表節(jié)點即可調(diào)用相應(yīng)的報表。報表數(shù)據(jù)由后臺數(shù)據(jù)處理和數(shù)據(jù)查詢模塊完成,然后展示在頁面中。
4.3? ?數(shù)據(jù)處理
表格保存時,將當(dāng)前表格中所包含的信息轉(zhuǎn)換成JSON字符串發(fā)送到后臺進行數(shù)據(jù)處理。后臺按照前臺發(fā)送的請求內(nèi)容,從數(shù)據(jù)庫中獲取需要的數(shù)據(jù),并進行邏輯處理,執(zhí)行相關(guān)數(shù)據(jù)的統(tǒng)計和運算。具體算法根據(jù)實際需要擴展。
5? ? ? 結(jié)? ? 語
經(jīng)實際應(yīng)用測試,利用ExtJS技術(shù)開發(fā)出的PPP項目財務(wù)評價系統(tǒng)具有良好的實用性和可擴展性,且界面友好、操作方便、統(tǒng)計分析結(jié)果準(zhǔn)確,能達到預(yù)期功能和性能目標(biāo),滿足用戶管理工作的需要,具有較好的實際應(yīng)用價值。實踐表明,采用ExtJS技術(shù)實現(xiàn)基于B/S模式的Web應(yīng)用系統(tǒng),能縮短開發(fā)周期,提高Web應(yīng)用系統(tǒng)的可維護性和可擴展性。
主要參考文獻
[1]黃曉.基礎(chǔ)建設(shè)PPP項目財務(wù)評價指標(biāo)體系的構(gòu)建及其應(yīng)用研究[J].成都師范學(xué)院學(xué)報, 2017, 33(5):89-95.
[2]陶李.PPP投資項目的物有所值評價研究[D].聊城:聊城大學(xué), 2016.
[3]蔡一磊,王志心,李佑文,等.基于EXTJS的城市軌道交通能源管理系統(tǒng)[J].交通節(jié)能與環(huán)保,2016, 12(5):87-92.
[4]王志心,顏儒彬, 褚紅健,等.一種監(jiān)控軟件平臺中web報表系統(tǒng)實現(xiàn)方法[J].江蘇科技信息,2018,35(20):59-62.
[5]彭春富.基于ExtJS的科研項目申報及評審系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)與軟件工程,2017(20):173-175.
[6]宋云飛,郭彩蓮,趙冰燕.基于ExtJS的氣象資料管理系統(tǒng)設(shè)計[J].科技視界,2016(23):384-385,398.