摘 要: 城市建設(shè)與城市管理是一對(duì)密不可分的關(guān)系,忽略任何一個(gè)方面都將對(duì)城市造成很大損失。如何最大限度地?fù)]發(fā)城市管理的水平,這是廣大城市管理者關(guān)心的問題,同時(shí)也是廣大工程技術(shù)人員關(guān)心的問題。只要開發(fā)出較好的管理程序,計(jì)算機(jī)就可以幫助提高城市管理水平,并做到管理資料和各種數(shù)據(jù)準(zhǔn)確無誤,它不但能滿足城市管理的要求,而且能進(jìn)一步規(guī)范城市建設(shè)與施工行為,能做好政府的幫手。
關(guān)鍵詞: 建設(shè)工程 城建檔案 管理系統(tǒng) 數(shù)據(jù)庫查詢
一、設(shè)計(jì)概況
1.系統(tǒng)的重要性
建設(shè)城市必須真正做到了解城市,了解城市必須熟悉城市的“神經(jīng)系統(tǒng)”。建國以來,我國的城市管理與建設(shè)資料,以人工操作與手工記錄為主,因此在城市建設(shè)中經(jīng)常發(fā)生不明情況的斷水、斷電、斷通訊的事件。
隨著信息化時(shí)代的到來,計(jì)算機(jī)的發(fā)展,如何使計(jì)算機(jī)在城市建設(shè)中發(fā)揮作用,這是計(jì)算機(jī)應(yīng)用領(lǐng)域中工程技術(shù)人員關(guān)心的問題,同時(shí)也是本文的重點(diǎn)。
各工程單位在施工前必須到城建檔案部門查閱相關(guān)建設(shè)資料,掌握已驗(yàn)收工程、相鄰工程、在建工程和待建工程的各種關(guān)系。同時(shí),在有關(guān)政策和規(guī)定的支持下,各級(jí)城建檔案部門必須定期向社會(huì)提供出現(xiàn)斷水、斷電、斷通訊事故單位的名單。
2.相關(guān)建設(shè)資料管理流程簡圖
施工中形成的建設(shè)資料工程完成后上交
和工程設(shè)計(jì)資料 相關(guān)建設(shè)資料
城建檔案部門檔案管理并為下一建設(shè)周期
上門指導(dǎo) 提供準(zhǔn)確、可靠的相關(guān)資料
經(jīng)調(diào)查得知,一個(gè)省會(huì)城市在一年中收集到的各種城市建設(shè)相關(guān)資料不少于10000卷,每卷最少也有500頁以上,最大的施工圖頁面有0號(hào)圖紙大。面對(duì)這樣龐大的數(shù)據(jù),為完成資料的收集、整理、保管等工作,首先要有政府的支持和與之配套的政策,另一個(gè)就是要有計(jì)算機(jī)的支持,再一個(gè)是城建檔案部門要有一批不怕困難、敢于吃苦的管理人員。
3.計(jì)算機(jī)管理的特點(diǎn)
所有工程建設(shè)資料的目錄由“數(shù)據(jù)庫”進(jìn)行收集,這個(gè)數(shù)據(jù)庫中不許作刪除操作,要充分保證資料的原始性,為了保證資料的準(zhǔn)確性和可靠性,并達(dá)到建設(shè)部和實(shí)際情況的要求,在數(shù)據(jù)庫中設(shè)置了滿足需要的字段,當(dāng)然也有記錄不常出現(xiàn)事故的能力。另外,該數(shù)據(jù)庫可根據(jù)相關(guān)權(quán)限進(jìn)行相應(yīng)訪問,操作的結(jié)果可輸出相對(duì)應(yīng)的報(bào)表。
數(shù)據(jù)庫不在網(wǎng)上運(yùn)行也不進(jìn)行任何共享操作,這個(gè)數(shù)據(jù)庫中設(shè)置多張表,城建檔案部門的各相關(guān)職能部門按規(guī)定操作自己的表并更新自己的表。
操作人員根據(jù)計(jì)算機(jī)提供的程序界面進(jìn)行操作,界面的設(shè)計(jì)原則是操作盡量簡單,不要或少要操作人員輸入字符,界面的字符全部為中文字符。
計(jì)算機(jī)程序的運(yùn)行環(huán)境為Windows 9X、Windows XP,計(jì)算機(jī)程序可用Visual C++或Visual Basic編制,數(shù)據(jù)庫可用PowerBuilder、SQL Serven或Access等工具進(jìn)行設(shè)計(jì)。
本文應(yīng)用程序使用Visual Basic編制,數(shù)據(jù)庫使用Access進(jìn)行設(shè)計(jì)。
二、軟件設(shè)計(jì)
1.開發(fā)模型
數(shù)據(jù)庫模型:在模型中有一個(gè)數(shù)據(jù)庫名稱為Manager,在數(shù)據(jù)庫中有五張表,各表的作用與操作對(duì)象如模型所示。
Manager庫Position表作用:查詢所要資料在檔案庫中的位置,
操作:由檔案收集部門管理。Borrow表作用:向有關(guān)部門提供原始檔案資料,
操作:由檔案收集部門管理Password表作用:提供數(shù)據(jù)庫訪問所需的密碼,
操作:需要向數(shù)據(jù)庫進(jìn)行添加操作的有關(guān)部門。Report表作用:工程報(bào)建時(shí)取得檔案收集部門的認(rèn)可,
操作:業(yè)務(wù)指導(dǎo)部門。Other表作用:記錄不常出現(xiàn)的事件,
操作:各有關(guān)職能部門。
系統(tǒng)應(yīng)用程序模型:為多窗體程序;
使用DataGrid控件顯示和操作數(shù)據(jù);
各種操作由菜單完成;
使用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行查詢;
在數(shù)據(jù)環(huán)境中設(shè)置、完成報(bào)表的打印。
2.軟件的實(shí)現(xiàn)
①程序由多窗體組成
Begin.frm:本程序的歡迎界面;Frist.frm:程序的操作主窗體;MyOutput.frm:檔案外調(diào)要事記錄窗體;Password.frm:進(jìn)入數(shù)據(jù)庫操作時(shí)必須輸入的密碼窗體;Second.frm:第一次申報(bào)窗體;DataEnvironment:數(shù)據(jù)環(huán)境;DataFind:查詢報(bào)表;DataMemer數(shù)據(jù)庫瀏覽報(bào)表。
②查詢工作的主要流程
Private Sub Form_Load()Set_agree.Enabled=False不能打印Set_data.Enabled=False不能瀏覽Set_outwrok.Enabled=False不能調(diào)閱打開程序主窗體first.frm
End Sub
數(shù)據(jù)庫查詢(菜單)按單位名稱查詢(Set_name)激活Label1和inputname按工程地點(diǎn)查詢(Set_position)激活Label4和Text1激話按鍵Command7.Enabled=True
檔案調(diào)閱(菜單)
調(diào)閱次數(shù)操作(Set_outwrok)
激活Set_outwrok.Enabled=True
打印(菜單)
按查詢結(jié)果預(yù)覽(Set_data)
激活Set_data.Enabled=True
按查詢結(jié)果打印(Set_agree)
激活Set_agree.Enabled=True
③程序主操作界面
④程序查詢的實(shí)現(xiàn)
Private Sub Command7_Click()查詢
Dim MyUse As String
MyInput1=\"\"+Text1.Text+\"\" 構(gòu)造查詢條件
MyInput2=\" \"+inputname.Text+\"\"構(gòu)造查詢條件
If Myquery Then 按單位名稱“或”工程地點(diǎn)查詢
MySQL=\"SELECT序號(hào),單位名稱,項(xiàng)目類型,項(xiàng)目地點(diǎn),檔案存放地點(diǎn),工程建設(shè)時(shí)間,類型中的分項(xiàng),檔案調(diào)閱次數(shù)\"_
\"FROM Myposition\"_
\"WHERE單位名稱\"\"=\" MyInput2
Adodc1.RecordSource=MySQL 設(shè)置數(shù)據(jù)源
Adodc1.Refresh刷新
DataGrid1.Caption=\"數(shù)據(jù)庫按單位查詢表\"
DataGrid1.Refresh 刷新
Else
MySQL=\"SELECT序號(hào),單位名稱,項(xiàng)目類型,項(xiàng)目地點(diǎn),檔案存放地點(diǎn),工程建設(shè)時(shí)間,類型中的分項(xiàng),檔案調(diào)閱次數(shù)\"_
\"FROM Myposition\"_
\"WHERE 項(xiàng)目地點(diǎn)\"\"=\" MyInput1
Adodc1.RecordSource=MySQL
Adodc1.Refresh
DataGrid1.Caption=\"數(shù)據(jù)庫按工程地點(diǎn)查詢表\"
DataGrid1.Refresh
End If
Set_agree.Enabled=True能打印
Set_data.Enabled=True 能瀏覽
Set_outwrok.Enabled=True 能調(diào)閱
EndSub
⑤密碼確定
Private Sub Command2_Click()密碼輸入
Dim MyStr As String
If old.Text=Data1.Recordset.Fields(\"newpass\") Then
Unload password
second.Show
Else
MsgBox\"密碼錯(cuò),請(qǐng)重新輸入,您只能輸入三次!\",vbOKOnly,\"密碼校驗(yàn)\"
old.Text=\"\"
old.SetFocus
MyInt=MyInt+1
MyStr=Str(MyInt)
MsgBox\"您已經(jīng)輸入\"+MyStr+\"次!\",vbOKOnly,\"提示信息\"
End If
If MyInt=3 Then恢復(fù)變量
MyInt=0
End
End If
End Sub
⑥跟蹤數(shù)據(jù)庫記錄條數(shù)
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum,ByVal pError As ADODB.Error,adStatus As ADODB.EventStatusEnum,ByVal pRecordset As ADODB.Recordset)
Text1.Text=\"第\" Adodc1.Recordset.AbsolutePosition \"條。\"
End Sub
⑦查詢結(jié)果的瀏覽
Private Sub Set_data_Click()按查詢結(jié)果瀏覽
DataEnvironment1.rsmyprint.Source=MySQL
DataEnvironment1.rsmyprint.Open
DataFind.Refresh 報(bào)表刷新
DataFind.Show報(bào)表瀏覽
DataEnvironment1.rsmyprint.Close
End Sub
高校計(jì)算機(jī)軟件專業(yè)一般設(shè)置了數(shù)據(jù)庫開發(fā)與應(yīng)用、SQL Servien、VC、VB、軟件工程等專業(yè)課程,如何將這些課程的核心思想與現(xiàn)實(shí)生活中的實(shí)際工程結(jié)合,讓學(xué)生充分發(fā)揮自己的能力與才能,在實(shí)踐中提高自己的動(dòng)手能力,是每個(gè)教授計(jì)算機(jī)軟件的教師所關(guān)心的問題。通過簡單、實(shí)用的工程設(shè)計(jì)與開發(fā)可以促進(jìn)師生相動(dòng)。
參考文獻(xiàn):
[1]柳青等.Visual Basic程序設(shè)計(jì)教程.北京:高等教育出版社,2002.
[3]郝蘊(yùn)等.Visual C++ 6.0開發(fā)與實(shí)例.北京:電子工業(yè)出版社,1999.
[4]張君等.InstallShield 6.X.北京:北京希望電子出版社.