摘要:工程預算是有線電視工程建設中必須的一項工作。敘述了有線電視工程預算編制的方法和步驟,設計了一種基于Access數據庫的有線電視工程預算系統,并介紹了預算系統的設計方案和基本的功能。詳細介紹了系統關鍵表和預算窗體的設計、材料表和機械臺班表的數據追加、總計數額的計算、報表的設計和主界面的設計等建立系統所用到的關鍵技術。實踐說明該系統可滿足有線電視工程預算工作的需求。
關鍵詞:工程預算;定額;Access數據庫;查詢;窗體
中圖分類號:TP311.132文獻標識碼:A 文章編號:1009-3044(2008)33-1298-03
The Design and Implementation of Cable Television Project Budget System
GONG Hong-lei
(China Cable Network Co. LTD. Yangzhou Branch, Yangzhou 225009,China)
Abstract: Project budget is a necessary part of CATV(Cable Television)network construct. A kind of CATV project budget system based on Access database was developed. The technique and processes of completing CATV project budget sheet, the design scheme and basic function of this system were introduced. Those key techniques of construcing budget system, such as the ways of setting up key tables and budget forms, using addition query to refresh the material table and machine table, calculating the sum and designing report forms and main forms were introduced in detail in this paper. The practice result showed that this system met the needs of CATV project budgeteering.
Key words: project budget; estimate norm; Access; query; forms
1 引言
工程預算是確定工程造價、組織材料供應和簽訂施工合同的依據,是有線電視工程建設和管理不可或缺的一項工作。
市場上通信概預算軟件較多,而有線電視工程預算相關軟件很少。有線電視工程預算所用的定額庫和通信工程定額庫不同,各種費率計算方法也不相同,所以無法使用通信概預算軟件編制有線電視工程預算。
我們根據有線電視工程預算編制的方法和步驟,基于ACCESS數據庫,編寫了有線電視工程預算軟件,有效地提高了工作效率。
2 工程預算的編制
工程預算書是在施工方案已確定的前提下,按照頒發的現行預算定額和費用標準等有關規定,確定單位工程造價的技術經濟文件。有線電視網絡工程預算書所遵循的定額是廣播電影電視部所頒發的《有線廣播電視系統安裝工程預算定額》(GY5212-1997)。
一般有線電視工程預算的編制步驟如下:1)資料收集:主要收集編制預算的依據文件。2)計算工程量:工程量是編制施工預算的基礎數據。在有線電視工程預算編制工作中,我們采用按施工先后順序依次計算工程量。3)套用預算定額基價:將匯總后的分項工程量錄入工程預算表內,并把相應定額編號、計量單位、預算定額基價以及其中的人工工日、材料費、機械臺班使用費填入工程預算表內。 4)材料計算:計算出該單位工程所需要的各種材料用量和人工工日總數,并填入材料匯總表中。5)計取各項費用:以人工工日為基礎按取費標準計算間接費、計劃利潤等費用,和先前計算出的材料費和機械臺班使用費一起求和并計算稅金后得出工程預算價值。6)編寫封面并匯總:預算書封面通常需填寫的內容有:工程編號及名稱、工程造價、編制單位及日期等[1]。將封面、總表、費用預算表,預決算表(表三)甲,決算表(表三)乙和材料預算表,按順序編排并裝訂,一份有線電視工程的預算便完成了編制[2]。五張預算表的完成次序如下:預決算表(表三)甲,決算表(表三)乙,材料預算表(表四),費用預算表(表二)和總表(表一)。
3 設計思路
在實際工作中,我們發現有線電視工程預算編制工作中,最為煩瑣的是計算工作,上述步驟中,二至五項工作均是計算。而且,工作量、材料和各類費用的計算都要求準確,一個數字的錯誤,往往導致許多數據要重新計算,費時費力。除計算外,還有查找定額、填寫工程項目、重復填寫數據和填寫材料表等煩瑣工作。
根據有線電視工程預算的編制步驟,我們設計各表完成的方法。所有相關數據均在表三窗口中輸入,表三甲中的定額標準由定額表中讀入,表三甲中只需填入工程類別,工程量數據即可;表三乙中的機械臺班數據通過追加查詢由機械臺班表和表三甲讀入并追加,由系統自動完成;表四中的材料數據通過追加查詢由機械臺班表和表三甲讀入并追加,由系統自動完成;表二中的費率由費率表讀入,其實數據通過總計查詢由系統自動完成;表一是表二各項數據的總計,由系統自動完成。封面填寫也根據輸入數據由系統自動完成。
我們編寫的有線電視工程預決算軟件可實現下列功能:1)按工程內容排序的有線工程定額庫,可自動查詢并填寫;2)材料和機械臺班庫,可編輯材料和機械臺班的價格;3)工程類別和各種費率可設置;4)填寫人工表后,可自動生成材料數量,機械臺班數量,材料表和機械臺班表;5)自動計算匯總;6)打印并導出符合標準的工程預決算書。上述功能基本滿足了有線電視工程預算工作的需要。
4 系統的設計
我們使用ACCESS2003數據庫來編寫這一系統。使用Access2003,可以在單一的數據庫文件中管理所有的信息。在這個文件中,可以使用窗體來查看、添加及更新表中的數據;使用查詢來查找并檢索所要的數據;也可以使用報表以特定的版面布置來分析及打印數據。
4.1 表的設計
確定表可能是數據庫設計過程中最初的步驟。我們在此數據庫中共設計了十一個表,功能如下:
1) 定額表:用以記錄定額數據,在此表中,我們輸入了最常用的五大項,374條定額條目;
2) 材料表:各定額子目單位工程量所需各類材料的數量;
3) 機械臺班表:各定額子目單位工程量所需各機械臺班的數量;
4) 費率表:一、二、三類工程間接費、計劃利潤和稅金等取費費率;
5) 材料價格表:各類材料的規格和價格;
6) 機械臺班表:各類機械臺班的規格和價格;
7) 單項工程表:各單項工程名稱,預算日期,工程設計人員,預算編制人員,工程類別等,工程總造價,即預算表中表一和封面的數據;
8) 單項工程定額表:各單項工程所有工程量和套用定額數據,即預算表中表三甲的數據;
9) 單項工程材料表:各單項工程所需材料明細和價格總計,即預算表中表四的數據;
10) 單項工程機械臺班表:各單項工程所需機械臺班明細和總計,即預算表中表三乙的數據;
11) 單項工程費率表:各單項工程其它直接費,現場經費,間接費、計劃利潤和稅金等費用數據,即預算表中表二的數據;
“預決算”數據庫中的每個表都存儲了關于特定類別的信息;例如,“單項工程定額”表存儲了關于單項工程所有工程量和套用定額的所有信息。表中設置的字段為:工程編號、定額編號、項目名稱、單位、數量、單位定額人工、單位定額輔材和單位定額機械費。表中的字段除“數量”字段需填入外,其余各字段均可由定額表中的相關字段讀入,無需預算編制人員手工錄入。
在數據庫中為每個主題都設置了不同的表后,我們要定義表間的關系,然后創建查詢、窗體及報表以從多個表中顯示各類所需信息。在“預決算”數據庫中,最重要的關系是定額表中定額編號,和材料表及機械臺班表中定額編號之間的“一對多”關系;單項工程表中工程編號,和單項工程定額表,單項工程材料表及單項工程機械臺班表中工程編號之間的“一對多”關系;以及單項工程表中工程編號和單項工程費率表中工程編號之間的“一對一”關系。
4.2 窗體的設計
“預決算”數據庫中單項工程窗體使用了“子窗體”技術。子窗體是窗體中的窗體。基本窗體稱為主窗體,窗體中的窗體稱為子窗體。在顯示具有一對多關系的表的數據時,子窗體特別有效。主窗體和子窗體彼此鏈接,使得子窗體只顯示與主窗體當前記錄相關的記錄[3]。
圖1表明了“預決算”數據庫中“預決算表三”窗體和子窗體的顯示狀況,子窗體顯示為數據表,主窗體只可以顯示為單個窗體。主窗體和子窗體彼此鏈接,鏈接字段為項目編號。
從列表中選擇一個值比記住一個值后鍵入它更快更容易。組合框中的列表是由數據行組成的。這些數據行可以有一個或多個字段,如果多列組合框是綁定的組合框,數據庫會將數值保存到其中一列[4]。
為了方便定額項目的查找,我們將常用定額分成管道,干線,光纜,分配網和其他等五類,在組合框下拉菜單中選定類別后,工程項目名稱的組合框中就只會顯示該類別中的工程項目名稱。類別這一字段只是我們為方便定額查找而設定的,在標準報表輸出是,該字段不包含在報表內。
為實現除“數量”字段需填入外,其余各字段可由定額表中的相關字段讀入,我們編寫了下列代碼:
Private Sub 工程項目名稱_AfterUpdate()
Dim intbh As Variant
Dim intdv As Variant
Dim intrg As Variant
Dim intfc As Variant
Dim intjx As Variant
Dim frm As Form
Dim ctl As Control
Dim varItm As Variant
Dim intI As Integer
Dim strItems As Integer
Set frm = Forms!預決算表三
Set ctl = frm! 預決算表三子窗體! 工程項目名稱
strItems = ctl.ListIndex
intbh = ctl.Column(1, strItems)
intdv = ctl.Column(2, strItems)
intrg = ctl.Column(3, strItems)
intfc = ctl.Column(4, strItems)
intjx = ctl.Column(5, strItems)
Me!定額編號 = intgg
Me!單位 = intdv
Me!定額人工 = intrg
Me!定額輔材 = intfc
Me!定額機械費 = intjx
Me!數量.SetFocus
End Sub
當這段程序編譯通過以后,將這段程序保存在Access中的一個模塊里,并通過類似在窗體中激發宏的操作那樣來啟動這個“模塊”,從而實現相應的功能。上述代碼段就是一個事件過程,用來響應工程項目名稱AfterUpdate(更新后)。
4.3 查詢的設計
預算表中表三甲還有預算人工值,預算輔材值和預算機械費,這些數值是由數量和定額人工值,定額輔材值和定額機械費相乘得到,這項工作可以由查詢來完成。下列查詢語句可實現預算人工值,預算輔材值和預算機械費的計算:
SELECT單項工程定額表.名稱, 單項工程定額表.規格, 單項工程定額表.單位, 單項工程定額表.數量, 單項工程定額表. 單位定額人工, 單項工程定額表. 單位定額輔材, 單項工程定額表. 單位定額機械費, [數量]*[ 單位定額人工] AS 預算人工, [數量]*[ 單位定額輔材] AS預算輔材, [數量]*[ 單位定額機械費] AS 預算機械費FROM 單項工程定額表;
上述查詢是選擇查詢,在“預決算”數據庫中,還用到了追加查詢。追加查詢是操作查詢,它能從一個或多個表將一組記錄追加到一個或多個表的尾部。例如,我們通過預算表中表三甲中數量和材料表及機械臺班表中相關定額編號下的材料和機械臺班數據就可獲得單項工程材料表和單項機械臺班表中的數據,為了避免鍵入所有這些內容,我們可以將它追加到“單項工程材料”表和“單項機械臺班”表。下列查詢語句可實現向材料表中追加數據:
INSERT INTO 單項工程材料表 (項目編號,名稱, 數量, 規格, 價格)
SELECT單項工程定額表.編號, 材料表.名稱, 單項工程定額表.數量, 材料表. 規格, 材料表. 價格,
FROM單項工程定額表RIGHT JOIN材料表ON單項工程定額表.項目編號=材料表.定額編號;

圖1 “預決算表三”窗體

圖2 預決算表二

圖3 “有限電視工程預算系統”主界面
4.4 報表的設計
報表是以打印的格式表現用戶數據的一種有效的方式。因為用戶可以控制了報表上每個對象的大小和外觀,所以可以按照所需的方式顯示信息以便查看信息。
在“預決算”數據庫中,報表的設計比較簡單,只要按照廣播電視工程預決算表的式樣一一設定就可以了。
4.5 切換面板
根據實際工作需要,我們在系統中設置了四大功能模塊,分別是編制預算、查詢預算、參數設置和打印報表。編制預算實現工程預算編制;查詢預算實現對已完成工程預算的查詢、修改和工程造價總計;參數設置實現定額條目、費率、材料和機械臺班等項目的設定和修改;打印報表實現工程預算書的打印和導出成EXCEL表。這些功能是上述窗體、查詢和報表的綜合。
運用切換面板窗體可以將所有的實現上述功能的子窗體集成到一起。切換面板窗體運用新建一個窗體并在其上放置各命令按鈕來集成各子系統窗體的方法來建立。切換面板窗體可以說就是一個系統主窗體。我們通過運用Access中的“切換面板面板管理器”來建立切換面板窗體。
5 結束語
“有線電視工程預算”系統編寫完成后,已在工作中使用了一年多時間,在使用過程中,我們收集了使用人員的意見,進行了一些修改。到目前為至,我們已使用這一系統完成了二百多項工程的預算和決算,實踐表明系統滿足了有線電視工程預算工作的需要。
參考文獻:
[1] 朱維益. 建筑工程預決算[M]. 北京:中國建筑工業出版社,2001
[2] GY5212-1997,有線廣播電視系統安裝工程預算定額[S].
[3] 高英,張曉冬. Access 數據庫應用系統開發與實例[M]. 北京:人民郵電出版社,2006.
[4] 李雁翎. Access數據庫應用技術[M].北京:中國鐵道出版社,2003.