當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 建筑OA系統(tǒng) > 建筑工程項(xiàng)目管理軟件
FOXPRO在三峽工程信息管理中的應(yīng)用
摘 要:三峽工程是世界級的巨型工程,專業(yè)門類多、技術(shù)復(fù)雜、信息管理工作量巨大,必須使用MIS系統(tǒng)對信息進(jìn)行收集、整理、存儲、統(tǒng)計(jì)、分析、制表。幾年來,我們先后用FOXBASE、FOXPRO編制了《工資管理系統(tǒng)》、《土石方工程量計(jì)算程序》、《工程支付管理系統(tǒng)》、《文檔管理系統(tǒng)》、《混凝土強(qiáng)度統(tǒng)計(jì)分析程序》等小型桌面系統(tǒng)。在編程過程中,經(jīng)歷了從低級平臺(DBASE)到高級平臺 (FOXPRO)、從字符界面(DOS)到圖形用戶界面(WINDOWS)的轉(zhuǎn)化,從中總結(jié)出了一些應(yīng)用經(jīng)驗(yàn)。
關(guān)鍵詞:三峽工程,F(xiàn)OXPRO,應(yīng)用,經(jīng)驗(yàn)
三峽工程是世界級的巨型工程,專業(yè)門類多、技術(shù)復(fù)雜、信息管理工作量巨大,必須使用MIS系統(tǒng)對信息進(jìn)行收集、整理、存儲、統(tǒng)計(jì)、分析、制表。目前,參建各單位的MIS系統(tǒng)相繼投入運(yùn)行,如長江三峽工程開發(fā)公司的TGPMIS系統(tǒng)、葛洲壩股份有限公司三峽建設(shè)承包公司的“施工檔案管理系統(tǒng)”等。這些系統(tǒng)功能較強(qiáng)、涉及面較廣,但不可能覆蓋信息管理的方方面畫,還需要桌面數(shù)據(jù)庫系統(tǒng)來補(bǔ)充。由于桌面數(shù)據(jù)庫的簡單易學(xué),因而有著巨大的用戶群。用桌面數(shù)據(jù)庫開發(fā)出功能較強(qiáng)的系統(tǒng)也有不少成功的先例,如1995~1997年三峽工地使用的“統(tǒng)計(jì)系統(tǒng)”、國家電力公司開發(fā)的概預(yù)算軟件等。
在桌面數(shù)據(jù)庫方面,幾年來,我們先后用FOXBASE、FOXPRO編制了《工資管理系統(tǒng)》、《土石方工程量計(jì)算程序》、《工程支付管理系統(tǒng)》、《文檔管理系統(tǒng)》、《混凝土強(qiáng)度統(tǒng)計(jì)分析程序》等小型桌面系統(tǒng)。在編程過程中,經(jīng)歷了從低級平臺(DBASE)到高級平臺(FOXPRO)、從字符界面(DOS)到圖形用戶界面(WINDOWS)的轉(zhuǎn)化,從中總結(jié)出了一些應(yīng)用經(jīng)驗(yàn)。如:在WINDOWS中繼續(xù)使用“字符型報(bào)表”、充分利用BROWSE快速制作錄入界面、利用“表達(dá)式生成器”建立查詢、利用FOXGRAPH建立直觀的柱狀圖、餅圖等等。
1 項(xiàng)目管理器
項(xiàng)目管理器引入項(xiàng)目概念后,使開發(fā)人員從應(yīng)用系統(tǒng)中各類文件繁瑣的管理中解脫出來,從而有更多的時(shí)間用于模塊開發(fā):項(xiàng)目管理器有如下優(yōu)點(diǎn):(1)只要將應(yīng)用系統(tǒng)的主控模塊(通常是菜單)放入項(xiàng)目管理器中,在生成項(xiàng)目時(shí),能將應(yīng)用系統(tǒng)中幾乎所有的文件都納入其中,方便程序模塊的修改、調(diào)試;(2)通過其可以方便地創(chuàng)建可執(zhí)行文件,并且在編譯時(shí)具有自動更新項(xiàng)目中各組成部分的版本的功能。
在使用項(xiàng)目管理器時(shí)應(yīng)注意:(1)盡可能地使用“原”文件(MNX、SCX等),而不使用由生成器轉(zhuǎn)換以后的程序文件(MPR、SPR等),以便在菜單、屏幕等更新后,執(zhí)行項(xiàng)目管理器中的“BUILD”按鈕時(shí)能自動作相應(yīng)的轉(zhuǎn)換;在程序中調(diào)用菜單或屏幕時(shí),調(diào)用擴(kuò)展名為MPX或SPX的文件而不是擴(kuò)展名為MPR或SPR的文件。(2)若一個(gè)應(yīng)用中的大部分模塊都已定型,只是個(gè)別模塊在使用中變化。如我們編制的《工資管理系統(tǒng)》中的統(tǒng)計(jì)模塊,該模塊的修改(二次開發(fā))較簡單,系統(tǒng)的使用人員也可以勝任。這要求在編譯的可執(zhí)行文件中不含該模塊,實(shí)現(xiàn)的方法是:利用FOXPRO“PROJECT”菜單中的“EXCLUDE”菜單條對項(xiàng)目管理器中的該模塊作標(biāo)記,然后執(zhí)行“PROJECT”菜單中的“PACK”功能,再重新編譯項(xiàng)目即可。外部模塊是FXP類型的文件,在安裝時(shí),注意將外部模塊文件放在應(yīng)用系統(tǒng)EXE文件所在的目錄中。
2 FOXPRO程序的龍頭——菜單
程序通常由多個(gè)功能模塊組成,可以通過屏幕中排列的一系列按鈕等對象來調(diào)用這些模塊,但通常用菜單將各功能模塊融合在一起形成整體。為此,我們用DELPHI編制了這種菜單的自動生成器。
FOXPRO中提供了與WINDOWS圖形用戶界面一致的條形菜單、彈出菜單,并提供了相應(yīng)的自動生成工具(GENMENU.FXP)。這種菜單的特點(diǎn)是:菜單容許是多層次的;運(yùn)行時(shí)菜單可以動態(tài)變化;功能模塊可以直接含在菜單中,使得由一個(gè)菜單程序構(gòu)成一個(gè)應(yīng)用系統(tǒng)成為可能;可以直接使用一些通用功能,如新建文件、復(fù)制、粘貼等。這種形式的菜單,初次使用時(shí)往往會產(chǎn)生只運(yùn)行一次就退出菜單的情況,可以用以下的辦法解決:
?。?)在菜單開始(SETUP)代碼最后加入如圖1所示循環(huán)起始語句:
do while.t.
(2)菜單的清楚(CLEANUP)代碼如下所示:
read valid.f.
enddo
?。?)退出菜單程序的代碼如下所示:
close database
clear all
set sysmenu to default
cancel
應(yīng)用系統(tǒng)中常常要用應(yīng)用的名稱代替FOXPROW主窗口中的標(biāo)題“microsoft foxprow”,實(shí)現(xiàn)方法是在菜單開始(SETUP)代碼的前面加入類似如下所示代碼:
modify window screen at 4,6 size 36,147;
title“物資材料管理程序”
font“ms sans serif”,8 float close minimize
move window screen center
zoom window screen max
FOXBASE的下拉菜單(meun bar.……read menu to)是一種單任務(wù)性質(zhì)的,在執(zhí)行一個(gè)具體的模塊時(shí),菜單隱去,控制權(quán)在所執(zhí)行的模塊,不會發(fā)生模塊的重復(fù)執(zhí)行。而FOXPRO的條形菜單具有多任務(wù)的性質(zhì),同一模塊,可重復(fù)執(zhí)行,有時(shí)需要利用這一功能,但多數(shù)情況下是不需要的,這是因?yàn)橥荒K或同時(shí)活動的多個(gè)模塊經(jīng)常處理的是同一類數(shù)據(jù)庫或表,這樣可能會因產(chǎn)生沖突而出錯。因此,通常要求在執(zhí)行一個(gè)模塊時(shí),不容許使用相同數(shù)據(jù)庫文件的其他模塊執(zhí)行。這可以通過在菜單開始(SETUP)代碼引入若干邏輯型內(nèi)存變量,在菜單條中使用SKIP屬性來實(shí)現(xiàn)。通過這種方式,可以使模塊之間產(chǎn)生關(guān)聯(lián)。
3 應(yīng)用程序的信息輸入
?。?)屏幕生成器
屏幕和菜單類似,都有開始 (SETUP)、清除(CLEANUP)兩個(gè)代碼段,通過他們可以設(shè)置相應(yīng)的環(huán)境或在屏幕(或菜單)退出時(shí)恢復(fù)環(huán)境。雖可以通過屏幕生成器中的 “ENVIRON-MEXT”按鈕中的“SAVE”功能保存開發(fā)時(shí)的環(huán)境,但此功能有限,不便于進(jìn)行復(fù)雜的設(shè)置,且其保存的開發(fā)時(shí)的環(huán)境可能與運(yùn)行時(shí)不同,導(dǎo)致程序運(yùn)行時(shí)出錯。所以,建議編程人員不要用此功能,而使用前者。
屏幕中編寫代碼時(shí),有兩個(gè)層次,即屏幕層和屏幕中的對象層。通常的處理均可在對象層次中解決。屏幕層次中通常只使用開始(SETUP)、清除(CLEANUP)兩個(gè)代碼段,其他的代碼段通常在多窗體、多屏幕中用到。在對象層次中,通常也只需要編寫“VALID”代碼。
?。?)功能強(qiáng)大的BROWSE
使用過EXCEL的人都習(xí)慣對縱橫表進(jìn)行操作,這樣操作直觀、自然。在FOXPROW中,用BROWSE可以實(shí)現(xiàn)類似的功能。若要用BROWSE對表進(jìn)行任意操作,用下面簡單的命令即可:
use
browse title
這樣的操作,表中的數(shù)據(jù)是不安全的,有必要對表的瀏覽操作加以限制。如在BROWSE命令中有選擇性的加入NODE-LETE、NOAPPEND、NOMODIFY,就可以對“加刪除標(biāo)志”或“追加記錄”或“修改記錄”加以限制。
borwse titile nodelete noappend nomodity
(注:這條命令只能顯示表的內(nèi)容,不容許對表進(jìn)行修改)
有時(shí),表的字段名是西文字段名,或雖是中文字段,但表達(dá)的意思不易理解時(shí),在瀏覽時(shí)需要給出易于識別的表頭,這時(shí)就需要使用“:H=”的字段名修飾如下所示:
browse field name:h=“姓名”
?。ㄗⅲ哼@里name是西文字段名,在顯示時(shí)用“姓名”替換)
在BROWSE命令中加入NOMODIFY將鎖定所有的字段,不容許修改。但通常的情況只要求鎖定關(guān)鍵字段、關(guān)聯(lián)字段,這時(shí)就不能用NOMODIFY,而要用“:W=.F.”字段名修飾功能。如下所示:
browse field name:h=“姓名”:w=.f.,
basic:h=“BASIC成績”
?。ㄗⅲ簄ame字段不讓修改
BROWSE的功能非常強(qiáng)大,讀者可參看BROWSE的幫助提示。靈活應(yīng)用BROWSE的子句以及一些修飾功能,可以實(shí)現(xiàn)極其強(qiáng)大的數(shù)據(jù)庫的錄入、編輯、修改功能。
4 應(yīng)用程序的檢索的實(shí)現(xiàn)
?。?)按例關(guān)系查詢
在開發(fā)環(huán)境或命令環(huán)境中,進(jìn)行查詢采用功能強(qiáng)大的RQBE是最優(yōu)的選擇,用他建立單表或多表查詢均比較簡單,介紹這方面內(nèi)容的資料較多,在此,限于篇幅,不再贅述。由于在運(yùn)行庫中未集成RQBE特性,在開發(fā)應(yīng)用時(shí),請不要包含該特性。但用RQBE功能生成的SQL語句可用于應(yīng)用系統(tǒng)中,減少編制查詢模塊占用的時(shí)間。將SQL語句中的字句的內(nèi)容設(shè)置成變量,用“宏替換”功能可以構(gòu)成某種程度上的通用查詢模塊。
?。?)表達(dá)式生成器
在運(yùn)行時(shí)能用表達(dá)式生成器(調(diào)用方法是GETEXPR TO)生成過濾條件,將查詢的記錄過濾出來,在瀏覽窗口或報(bào)表中顯示輸出。
(3)定制查詢屏幕
按例關(guān)系查詢以及表達(dá)式生成器均需要用戶有一定的FOXPRO運(yùn)用基礎(chǔ)。對于普通用戶,需要構(gòu)造出傻瓜是樣的查詢屏幕,用戶填幾個(gè)字符串或數(shù)值等,就可以找出相應(yīng)的記錄。
5 應(yīng)用程序的結(jié)果輸出
?。?)BROWSE
BROWSE功能強(qiáng)大,即既可用于信息的錄入,又可作為信息輸出的載體。
?。?)報(bào)表
FOXPRO的報(bào)表與FOXBASE中的報(bào)表相比增加了表格線的功能,更符合中文報(bào)表的習(xí)慣,制作報(bào)表較方便。但報(bào)表中的對象的定位稍顯麻煩,編制—個(gè)報(bào)表所花的時(shí)間較多,并且,所定制的報(bào)表是相劉于某種大小的紙張的,紙張大小改變后不能自適應(yīng)。
在FOXBASE以及在DOS下的FOXPRO中,要打印報(bào)表,通常是用“@.……SAY.……”語句編制程序?qū)崿F(xiàn),所生成的報(bào)表為文字型的報(bào)表。這種報(bào)表可以直接送往打印機(jī)輸出,也可以存入一文本文件中,經(jīng)其他字處理程序處理后輸出。在早期,編制程序生成報(bào)表是非常麻煩的,系統(tǒng)開發(fā)中,大量的時(shí)間是用來編制報(bào)表程序。為了加快報(bào)表程序的編制,我們在實(shí)踐中用DELPHI編制了自動生字符報(bào)表程序的工具。這些工具中,既有簡單報(bào)表的快速生成接口,也有生成復(fù)雜縱橫表頭報(bào)表程序的工具。
由于CCED2000使得在WINDOWS圖形用戶界面輸出字符型的報(bào)表非常方便,并且用我們自己的工具生成文字制表符型的報(bào)表的速度要比FOXPRO生成的圖形報(bào)表的速度快得多,所以即便是現(xiàn)在,我們大量的報(bào)表仍采用的是字符型的報(bào)表。若文字報(bào)表已存入文件AUTOPRN.PRN中,用CCED2000打開文字報(bào)表的方法如下所示:
filename=sys(5)+sys(2003)+“autoprn.prn”
run c:cced2000cced2000 & filename
(3)圖表
在FOXPROW中,可以直接從數(shù)據(jù)庫中提取數(shù)據(jù)生成柱狀圖、餅圖等圖表。方法是用COPY命令將圖表中要用到的字段復(fù)制到一個(gè)臨時(shí)數(shù)據(jù)庫中,然后調(diào)用 FOXGRAPH向?qū)Ъ纯?。例如?shù)據(jù)庫ABC.DBF中含有“月份”、“產(chǎn)值”等10個(gè)字段,要求用“月份”、“產(chǎn)值”字段的值生成一柱狀圖。完成要求所需的代碼如下所示:
use abc
copy to temp.dbf field 月份,產(chǎn)值
use temp
do(-foxgraph)
?。?)用EXCEL生成報(bào)表
EXCEL可以直接打開FOXPROW2.5B的數(shù)據(jù)庫進(jìn)行后處理。要在FOXPRO中能調(diào)用EXCEL,要求在DOS的PATH路徑中有EXCEL的搜索路徑。例如用EXCEL打開數(shù)據(jù)庫ABC.DBF(要求在FOXPRO中,先關(guān)閉該數(shù)據(jù)庫)的代碼如下:
filename=sys(5)+sys(2003)+“abc.dbf”
run excel & filename
6 結(jié)語
為了加快應(yīng)用系統(tǒng)的開發(fā),我們自編了幾個(gè)自動生成工具,使得開發(fā)一個(gè)應(yīng)用的時(shí)間從原來的幾個(gè)月的時(shí)間縮短半個(gè)月~1個(gè)月,開發(fā)效率成倍提高。桌面數(shù)據(jù)庫仍有著廣泛的市場,F(xiàn)OXPRO的應(yīng)用系統(tǒng)開發(fā)前景廣闊。
長江三峽工程建設(shè)監(jiān)理部·李方清
- 1一級建造師管理與實(shí)務(wù)復(fù)習(xí)要點(diǎn):連續(xù)梁體系轉(zhuǎn)換
- 2某住宅前安置房工程樁基施工組織設(shè)計(jì)方案16P
- 3聯(lián)合水泥發(fā)盈警2014年全年少賺40%左右
- 4報(bào)告事故應(yīng)當(dāng)包括的內(nèi)容
- 512噴錨支護(hù)作業(yè)指導(dǎo)書
- 6淺談廣州地鐵2號線鷺中區(qū)間隧道施工監(jiān)測
- 7【建筑資料】施工圖審查中常犯的錯誤!從一個(gè)老工程師的經(jīng)驗(yàn),實(shí)習(xí)或初學(xué)者必看?。?!
- 8甘肅省斥資8000億元暢通“絲綢之路”經(jīng)濟(jì)帶大通道
- 9屋面防水工程質(zhì)量影響因素及控制措施
- 10淺談城市歷史街區(qū)有效保護(hù)利用對策
- 11一級建造師復(fù)習(xí)資料:預(yù)制構(gòu)件與支承結(jié)構(gòu)
- 12中馬建筑實(shí)習(xí)報(bào)告
- 13造價(jià)工程師考試輔導(dǎo)資料:電氣調(diào)整試驗(yàn)(2)
- 142015年二級建造師《法規(guī)》復(fù)習(xí)重點(diǎn)(17)
- 15一級建造師管理與實(shí)務(wù)復(fù)習(xí)要點(diǎn):涂飾工程基層處理
- 162015年二級建造師輔導(dǎo)課程考后七天關(guān)課提醒
- 172015年二級建造師法規(guī)復(fù)習(xí)資料:用人單位不得解除合同
- 18監(jiān)理工程師考試監(jiān)理基本理論重點(diǎn)難點(diǎn)解答一
- 19某屋頂花園跨樓鋼橋變形縫滲漏治理
- 202015二級建造師考試輔導(dǎo):《機(jī)電工程管理與實(shí)務(wù)》(22)
- 21彼得·馬瑞諾的“品牌建筑”
- 22建筑工程安全工程管理
- 23科技支撐南京建筑節(jié)能再突破
- 24[江蘇]發(fā)電廠煙氣脫硫吸收塔基礎(chǔ)施工工藝
- 25一級建造師復(fù)習(xí)資料:公路選線的一般原則有哪些
- 26某項(xiàng)目洞口作業(yè)防護(hù)安全技術(shù)交底(07年)
- 27某電廠洪評報(bào)告 36P
- 28哈爾濱市某建筑企業(yè)土方(回填土)工程安全技術(shù)交底
- 29甘泉縣力促項(xiàng)目建設(shè) 積極完善城市功能提升品位
- 30園林施工五注意
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓