版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科生畢業(yè)論文(設(shè)計(jì))</p><p> 題 目:基于MAPX的房屋測(cè)繪</p><p> 管理系統(tǒng)設(shè)計(jì) </p><p> 專業(yè)代碼: 070703 </p><p> 作者姓名: 歐陽(yáng)任彬 </p><p> 學(xué) 號(hào):
2、 2007202065 </p><p> 單 位: 環(huán)境與規(guī)劃學(xué)院 </p><p> 指導(dǎo)教師: 肖 燕 </p><p> 2011年5月31日</p><p><b> 原創(chuàng)性聲明</b></p><p> 本人鄭重聲明:所提交的學(xué)位論文
3、是本人在導(dǎo)師指導(dǎo)下,獨(dú)立進(jìn)行研究取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,論文中不含其他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得聊城大學(xué)或其他教育機(jī)構(gòu)的學(xué)位證書(shū)而使用過(guò)的材料。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人承擔(dān)本聲明的相應(yīng)責(zé)任。</p><p> 學(xué)位論文作者簽名: 日期 .</p><p> 指導(dǎo)教
4、師簽名: 日期 .</p><p><b> 目錄</b></p><p><b> 1 前言1</b></p><p> 1.1 系統(tǒng)設(shè)計(jì)背景1</p><p> 1.2 系統(tǒng)開(kāi)發(fā)相關(guān)技術(shù)1</p><p> 1.2.1 V
5、isual Basic 6.0中文版介紹1</p><p> 1.2.2 MapX 5.0中文版簡(jiǎn)介1</p><p><b> 2 系統(tǒng)總功能2</b></p><p> 2.1繪制房屋平面圖2</p><p> 2.2平面圖屬性設(shè)置2</p><p> 2.3平面面積的計(jì)算
6、2</p><p> 2.4系統(tǒng)輔助功能2</p><p><b> 2.5系統(tǒng)維護(hù)2</b></p><p> 3 系統(tǒng)程序?qū)崿F(xiàn)3</p><p> 3.1主界面設(shè)計(jì)3</p><p> 3.2 圖層控制功能設(shè)計(jì)4</p><p> 3.3 平面圖
7、屬性設(shè)置功能設(shè)計(jì)4</p><p> 3.4 平面圖面積計(jì)算功能設(shè)計(jì)7</p><p> 3.5 系統(tǒng)輔助功能設(shè)計(jì)15</p><p> 3.6 系統(tǒng)維護(hù)功能設(shè)計(jì)16</p><p><b> 4 結(jié)語(yǔ)16</b></p><p><b> 參考文獻(xiàn)17</b
8、></p><p><b> 致 謝18</b></p><p><b> 摘 要</b></p><p> 房屋測(cè)繪管理是對(duì)房屋屬性描述的有效系統(tǒng),針對(duì)房屋管理中需要解決的如何實(shí)現(xiàn)測(cè)繪平面圖、屬性設(shè)置、房屋面積計(jì)算、輔助功能和系統(tǒng)維護(hù)等管理功能,文章提出建立基于MAPX的房屋測(cè)繪管理系統(tǒng),以數(shù)據(jù)庫(kù)為基礎(chǔ),在
9、計(jì)算機(jī)軟硬件支持下,運(yùn)用系統(tǒng)工程和信息科學(xué)的理論和方法,綜合地、動(dòng)態(tài)地獲取、存儲(chǔ)、管理、分析和應(yīng)用地理信息的多媒體信息系統(tǒng)。該系統(tǒng)的建立,將以其快速高效收集、存儲(chǔ)、整理、輸出、查詢、檢索等功能來(lái)提高房屋測(cè)繪管理效率,更以其優(yōu)越的空間分析功能使房屋測(cè)繪管理更為科學(xué)。</p><p> 關(guān)鍵詞:MAPX;房屋測(cè)繪;管理系統(tǒng);設(shè)計(jì)</p><p><b> Abstract<
10、/b></p><p> Houses of surveying and mapping management is the effective system house property description .Aimed at building management of how to realize the need to be solved in surveying and mapping p
11、lan,attribute set ,building area calculation,the auxiliary function and system maintenance management function.This paper based on the house MAPX surveying and mapping management system, based on database, in support of
12、computer software and hardware , uses system engineering and information science, the the</p><p> Key words: MAPX;housing surveying and mapping;management system;design</p><p> 基于MAPX的房屋測(cè)繪管理系統(tǒng)
13、設(shè)計(jì)</p><p><b> 1 前言</b></p><p> 1.1 系統(tǒng)設(shè)計(jì)背景 </p><p> 隨著房?jī)r(jià)日益上漲,房屋測(cè)繪管理系統(tǒng)顯得尤為重要。房屋測(cè)繪管理系統(tǒng)包括測(cè)繪平面圖、屬性設(shè)置、房屋面積計(jì)算、輔助功能和系統(tǒng)維護(hù)五大管理功能,實(shí)現(xiàn)了房屋測(cè)繪的全面管理,是各種房地產(chǎn)公司進(jìn)行電腦信息化管理的理想選擇。最重要的就是利用Map
14、x控件進(jìn)行房屋圖層的管理和控制.并將數(shù)據(jù)庫(kù)同圖層緊密的結(jié)合在一起。該系統(tǒng)可以廣泛的應(yīng)用于各種測(cè)繪企業(yè)以及房地產(chǎn)公司。以空間信息處理為核心的地理信息系統(tǒng)(GIS) 技術(shù), 因具有強(qiáng)大的空間信息管理、空間信息分析、空間信息查詢及三維影像顯示等功能 [1]。而成為房屋測(cè)繪信息化的首選平臺(tái)。</p><p> 基于VB+MapX的房屋測(cè)繪管理系統(tǒng)是以數(shù)據(jù)庫(kù)為基礎(chǔ),在計(jì)算機(jī)軟硬件支持下,運(yùn)用系統(tǒng)工程和信息科學(xué)的理論和方法
15、,綜合地、動(dòng)態(tài)地獲取、存儲(chǔ)、管理、分析和應(yīng)用地理信息的多媒體信息系統(tǒng)。該系統(tǒng)的建立,將以其快速高效收集、存儲(chǔ)、整理、輸出、查詢、檢索等功能來(lái)提高房屋測(cè)繪管理效率,更以其優(yōu)越的空間分析功能使房屋測(cè)繪管理更為科學(xué) [2]。</p><p> 1.2 系統(tǒng)開(kāi)發(fā)相關(guān)技術(shù)</p><p> 1.2.1 Visual Basic 6.0中文版介紹</p><p> Vis
16、ual Basic是在原有Basic語(yǔ)言基礎(chǔ)上的進(jìn)一步發(fā)展,它包含了數(shù)百條語(yǔ)句、函數(shù)及關(guān)鍵詞,其中很多與Windows GUI有直接的關(guān)系??梢暂p易的使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或者輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序[3]。</p><p> 1.2.2 MapX 5.0中文版簡(jiǎn)介</p><p> MapX是一種集MapIn
17、fo強(qiáng)大功能于一身的性價(jià)比非常高的ActiveX控件,MapX支持用戶將地圖功能添加到任何應(yīng)用中,提供了一種高度可視化的方法,來(lái)顯示和分析基于位置的數(shù)據(jù),它和眾多的可視化編程工具例如Visual Basic、Visual c++、PowerBuilder、Delphi等緊密結(jié)合,使得眾多的用戶利用它可以很快的開(kāi)發(fā)出非常專業(yè)的地理信息系統(tǒng)應(yīng)用軟件[4]。</p><p><b> 2 系統(tǒng)總功能<
18、/b></p><p> 2.1繪制房屋平面圖</p><p> 在這個(gè)功能模塊中,包括基本信息設(shè)置、平面圖文件操作、繪制房屋平面圖、設(shè)置平面圖屬性和編輯平面圖5個(gè)方面。通過(guò)一系列正確的操作,可以方便地生成房屋平面圖。</p><p> 2.2平面圖屬性設(shè)置</p><p> 在這個(gè)圖形屬性設(shè)置中,包括層數(shù)設(shè)置、類型設(shè)置、分?jǐn)偤?/p>
19、陽(yáng)臺(tái)閣樓歸屬4個(gè)方面。類型設(shè)置和分?jǐn)偸欠课菝娣e計(jì)算中關(guān)鍵的參數(shù),是是否能夠計(jì)算出房屋面積的關(guān)鍵。類型設(shè)置中的功能模塊以準(zhǔn)確的類型基礎(chǔ),提供了對(duì)各封閉平面的類型設(shè)定,類型包括戶室、封閉陽(yáng)臺(tái)、陽(yáng)臺(tái)、閣樓、墻體、分?jǐn)偯娣e和未知類型幾種,按封閉面和不同種類分別給予設(shè)定。</p><p> 2.3平面面積的計(jì)算</p><p> 能否準(zhǔn)確合理地計(jì)算所需的平面圖的數(shù)據(jù),是評(píng)價(jià)系統(tǒng)好壞的關(guān)鍵。為了達(dá)
20、到一個(gè)比較好的計(jì)算效果,系統(tǒng)中綜合運(yùn)用了數(shù)據(jù)庫(kù)的后臺(tái)備份技術(shù)及其MapX空間強(qiáng)大的前臺(tái)繪圖機(jī)計(jì)算機(jī)技術(shù),較好地實(shí)現(xiàn)了計(jì)算機(jī)平面圖面積的功能。</p><p><b> 2.4系統(tǒng)輔助功能</b></p><p> 在這個(gè)模塊中,包括轉(zhuǎn)成區(qū)域、區(qū)域合并、生成墻體、三角形角度計(jì)算和計(jì)算器5個(gè)方面。該模塊用來(lái)實(shí)現(xiàn)平面圖統(tǒng)一集中的管理,為其他幾個(gè)管理系統(tǒng)提供了基本信息,用
21、以提高工作效率。</p><p><b> 2.5系統(tǒng)維護(hù)</b></p><p> 在這個(gè)模塊中,包括系統(tǒng)日志、數(shù)據(jù)庫(kù)整理、數(shù)據(jù)庫(kù)備份、數(shù)據(jù)庫(kù)還原4個(gè)方面。系統(tǒng)維護(hù)中的功能模塊用來(lái)保障數(shù)據(jù)庫(kù)和系統(tǒng)的安全。</p><p> 綜上所述,系統(tǒng)的功能需求框圖如圖1所示。</p><p> 圖1 系統(tǒng)總功能需求框圖&l
22、t;/p><p> Fig.1 system's total functional requirements diagram</p><p><b> 3 系統(tǒng)程序?qū)崿F(xiàn)</b></p><p><b> 3.1主界面設(shè)計(jì)</b></p><p> 本程序采用流行的界面設(shè)計(jì)技術(shù),符合商業(yè)化
23、軟件設(shè)計(jì)的要求。采用菜單、工具欄、狀態(tài)條相結(jié)合的方法,使得用戶能夠在主界面上快速的進(jìn)入所需要的程序模塊,具體的程序運(yùn)行界面如圖2所示。</p><p><b> 圖2 系統(tǒng)主界面</b></p><p> Fig.2 system interface</p><p> 3.2 圖層控制功能設(shè)計(jì)</p><p>
24、圖層控制,最主要的就是能夠新建圖層或者打開(kāi)現(xiàn)有的圖層。打開(kāi)圖層以后,能夠選取或者刪除圖層中的元素等。</p><p> 3.3 平面圖屬性設(shè)置功能設(shè)計(jì)</p><p> 平面圖屬性設(shè)置主要包括層數(shù)設(shè)置、類型設(shè)置、分?jǐn)傇O(shè)置和陽(yáng)臺(tái)、閣樓歸屬設(shè)置4個(gè)功能模塊。上圖形繪制完成了,才對(duì)各個(gè)封閉面進(jìn)行各種設(shè)置,以便以后的面積計(jì)算。</p><p> 在對(duì)封閉面進(jìn)行層數(shù)設(shè)置
25、時(shí),點(diǎn)擊選區(qū)域或框選后選中一個(gè)或幾個(gè)封閉面,如圖3所示。</p><p> 圖3選定封閉面后窗體</p><p> Fig.3 after selecting areas form</p><p> 在“屬性”菜單中選中“層數(shù)設(shè)置”,在其中輸入基層和結(jié)束層數(shù)。完成對(duì)剛才選定的封閉的層數(shù)的設(shè)定。</p><p> 在對(duì)封閉面進(jìn)行分?jǐn)傇O(shè)置
26、時(shí),應(yīng)先畫(huà)好平面圖,點(diǎn)擊選區(qū)域或框選后選中多個(gè)封閉面(一定要有一個(gè)封閉面的類型為戶屋),在“屬性”菜單中選中“分?jǐn)傇O(shè)置”,選擇是一次分?jǐn)傔€是多次分?jǐn)偂t對(duì)剛才選定的封閉的分?jǐn)傔M(jìn)行了設(shè)定,被分?jǐn)偯娴念愋桶l(fā)生了變化。</p><p> 對(duì)陽(yáng)臺(tái)、閣樓歸屬的設(shè)置和分?jǐn)傇O(shè)置基本相同,不再贅述。</p><p> 下面就屬性設(shè)置中重要的功能模塊的設(shè)計(jì)和核心代碼實(shí)現(xiàn)進(jìn)行分析。</p>
27、<p> 菜單“屬性 類型設(shè)置”單擊事件代碼,用于進(jìn)行圖層類型設(shè)置,類型設(shè)置界面如圖4所示。</p><p> 圖4 類型設(shè)置窗體</p><p> Fig.4 type settings form</p><p><b> 類型設(shè)置代碼如下:</b></p><p> Private Sub
28、mnuProperties_Click()</p><p> Dim fs As Features</p><p> Dim f As MapXLib.Feature</p><p> Dim txtLyrF As New MapXLib.Feature</p><p> Dim rs As ADODB.Recordset</p
29、><p> Dim szSQL As String</p><p> Dim frm As frmSProperies</p><p> Dim ct As Long</p><p> Dim ret As Long</p><p> Dim OldType As Long '老的類型</p>
30、<p> On Error GoTo ErrHandler</p><p> Set fs = Map1.Layers.Item(REGION_LAYER).Selection</p><p> '---------</p><p> ct = GetCountFromFeatures(fs)</p><p>
31、 If ct <= 0 Then</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> '如果不是所有類型都是未知類型,則報(bào)警</p><p> If NotAllIsWZType(fs) = True Then&
32、lt;/p><p> ret = MsgBox("你的操作將導(dǎo)致數(shù)據(jù)庫(kù)中相關(guān)信息的丟失。要繼續(xù)嗎?", vbYesNo + vbQuestion, Me.Caption)</p><p> If ret = vbNo Then</p><p><b> Exit Sub</b></p><p>&l
33、t;b> End If</b></p><p><b> End If</b></p><p><b> '顯示屬性對(duì)話框</b></p><p> Set frm = New frmSProperies</p><p><b> Load frm<
34、;/b></p><p> frm.Show vbModal, Me</p><p> If frm.IsCanceled = True Then</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p>
35、; '1:對(duì)單個(gè)Feature</p><p> Set rs = New ADODB.Recordset</p><p> For Each f In fs</p><p> '--------------------------------------------------</p><p> szSQL = &
36、quot;SELECT jchh,ftype FROM tbFeature WHERE tbName='" & REGION_LAYER & "' AND FtKey='" & CStr(f.FeatureKey) & "'"</p><p> rs.Open szSQL, MAP_CONN, ad
37、OpenKeyset, adLockPessimistic, adCmdText</p><p> If rs.RecordCount >= 1 Then</p><p> '先從數(shù)據(jù)庫(kù)刪除數(shù)據(jù)</p><p> DeleteFromTBFir REGION_LAYER, f.FeatureKey</p><p>
38、39;將新類型寫(xiě)入tbFeature</p><p> szSQL = "UPDATE tbFeature " & _</p><p> "SET jchh='" & CStr(frm.HuHao) & "', " & _</p><p> "
39、ftype=" & CStr(frm.Htype) & _</p><p> " WHERE tbName='" & REGION_LAYER & "' AND ftkey='" & f.FeatureKey & "'"</p><p>
40、 MAP_CONN.Execute szSQL</p><p> '改變Feature的顏色</p><p> f.Style.RegionPattern = miPatternSolid</p><p> Select Case frm.Htype</p><p> Case 0 '未知類型</p>&
41、lt;p> f.Style.RegionColor = lblWZ.BackColor</p><p> Case 1 '戶室</p><p> f.Style.RegionColor = lblHS.BackColor</p><p> Case 2 '陽(yáng)臺(tái)</p><p> f.Style.RegionCo
42、lor = lblYT.BackColor</p><p> Case 3 '封閉陽(yáng)臺(tái)</p><p> f.Style.RegionColor = lblFBYT.BackColor</p><p> Case 4 '閣樓</p><p> f.Style.RegionColor = lblGL.BackColor&
43、lt;/p><p> Case 5 '未分?jǐn)偯?lt;/p><p> f.Style.RegionColor = lblFT.BackColor</p><p> Case 6 '墻體</p><p> f.Style.RegionColor = lblQT.BackColor</p><p><
44、b> Case Else</b></p><p> End Select</p><p><b> f.Update</b></p><p><b> End If</b></p><p> '-----------</p><p> I
45、f Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p><p><b> End If</b&
46、gt;</p><p><b> Next</b></p><p> 'close the rs</p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b>
47、 rs.Close</b></p><p><b> End If</b></p><p> Set rs = Nothing</p><p><b> End If</b></p><p><b> Exit Sub</b></p><
48、;p> ErrHandler:</p><p> Screen.MousePointer = 0</p><p> Set rs = Nothing</p><p> Set frm = Nothing</p><p> ErrMessageBox "mnuProperties_Click()", Me.C
49、aption</p><p><b> End Sub</b></p><p> 3.4 平面圖面積計(jì)算功能設(shè)計(jì)</p><p> 既然是房屋測(cè)量系統(tǒng),那么面積計(jì)算的功能是不可少的,下面介紹面積測(cè)量模塊中的重要代碼。</p><p> (l)菜單“屬性 面積計(jì)算”單擊事件代碼,用于樓層面積計(jì)算,面積計(jì)算的結(jié)果
50、如圖5所示。</p><p> 菜單單擊事件代碼如下:</p><p> Private Sub mnuCalcArea_Click()</p><p><b> '面積計(jì)算</b></p><p> Call CalculateArea</p><p><b>
51、39;顯示計(jì)算結(jié)果</b></p><p> Call mnuAreaDisp_Click</p><p><b> End Sub</b></p><p> 其中函數(shù)CalculateArea用于計(jì)算面積,rnnuAreaDispes-Click用于顯示計(jì)算窗體。</p><p> 圖5 面積計(jì)算
52、窗體</p><p> Fig.5 calculate area form</p><p> (2)計(jì)算面積的核心函數(shù)CalculateArea</p><p><b> '面積計(jì)算</b></p><p> Private Sub CalculateArea()</p><p>
53、 Dim frm As Form</p><p> Dim fs As MapXLib.Features</p><p> Dim f As MapXLib.Feature</p><p> Dim szSQL As String</p><p> Dim szCydy As String '參與分?jǐn)偟膯卧?lt;/p>
54、;<p> Dim rs As ADODB.Recordset</p><p> Dim rs1 As ADODB.Recordset</p><p> Dim MaxCS As Long '最大層數(shù)</p><p> Dim MinCS As Long '最小層數(shù)</p><p> Dim Zjzmj
55、 As Double '總建筑面積</p><p> Dim ZGymj As Double '部共用面積</p><p> Dim Ztljzmj As Double '總套內(nèi)建筑面積</p><p> Dim Zglmj As Double '總閣樓面積</p><p> Dim Zftxs As
56、Double '總分?jǐn)傁禂?shù)</p><p> Screen.MousePointer = 11</p><p> Set rs = New ADODB.Recordset</p><p> Set frm = New frmBusy</p><p> frm.Message = "正在進(jìn)行面積計(jì)算,請(qǐng)稍候...&qu
57、ot;</p><p><b> Load frm</b></p><p> frm.Show vbModeless, Me</p><p><b> DoEvents</b></p><p> On Error GoTo ErrHandler</p><p> &
58、#39;10:在進(jìn)行面積計(jì)算之前,做一些初始化的工作</p><p> MAP_CONN.Execute "DELETE FROM tbHS"</p><p> '20:先計(jì)算幾何面積并存入tbFeature中</p><p> Set fs = Map1.Layers.Item(REGION_LAYER).AllFeatures&
59、lt;/p><p> For Each f In fs</p><p> If f.Type = miFeatureTypeRegion Then</p><p> szSQL = "UPDATE tbFeature SET Farea=" & CStr(f.Area) & _</p><p> &qu
60、ot; WHERE tbName='" & REGION_LAYER & "' " & _</p><p> " AND FtKey='" & CStr(f.FeatureKey) & "'"</p><p> MAP_CONN.Execute
61、szSQL</p><p><b> End If</b></p><p><b> Next</b></p><p> '25:將戶室數(shù)據(jù)轉(zhuǎn)入tbHS中</p><p> MAP_CONN.Execute "INSERT INTO tbHS SELECT * FROM t
62、bFeature " & _</p><p> " WHERE tbFeature.tbName='" & REGION_LAYER & "'" & _</p><p> " AND tbFeature.FType=1"</p><p>
63、39;30:計(jì)算戶室面積(實(shí)用面積),包括陽(yáng)臺(tái)和封閉陽(yáng)臺(tái)</p><p> '30.10#:將戶室的幾何面積存入tbArea中</p><p> MAP_CONN.Execute "DELETE FROM tbArea"</p><p> MAP_CONN.Execute "INSERT INTO tbArea(tbNam
64、e,FtKey,CH,Harea) " & _</p><p> "SELECT tbHS.tbName,tbHS.FtKey," & _</p><p> " (CSTR(jc) & ""-"" & Cstr(JC+CS-1)) as CH," &am
65、p; _</p><p> " tbHS.Farea FROM tbHS"</p><p> '30.20#:計(jì)算陽(yáng)臺(tái)的幾何面積并加到tbArea.Harea中去</p><p> rs.Open "SELECT * FROM qryYT", MAP_CONN, adOpenKeyset, adLoc
66、kPessimistic, adCmdText</p><p> Do While Not rs.EOF</p><p> MAP_CONN.Execute "UPDATE tbArea " & _</p><p> "Set tbArea.Harea = tbArea.Harea + " & CStr(
67、rs!YTArea) & "," & _</p><p> " tbArea.YT=tbArea.YT+" & CStr(rs!YTArea) & _</p><p> " Where tbArea.tbName ='" & CStr(rs!tbName) & &q
68、uot;' And " & _</p><p> " tbArea.FtKey = '" & CStr(rs!FTKey) & "'"</p><p> rs.MoveNext</p><p><b> Loop</b></p
69、><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p><p><b&
70、gt; End If</b></p><p> '30.30#:計(jì)算封閉陽(yáng)臺(tái)的幾何面積并加到tbArea.Harea中去</p><p> rs.Open "SELECT * FROM qryFBYT", MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText</p><p&
71、gt; Do While Not rs.EOF</p><p> MAP_CONN.Execute "UPDATE tbArea " & _</p><p> "Set tbArea.Harea = tbArea.Harea + " & CStr(rs!YTArea) & "," & _<
72、;/p><p> " tbArea.YT=tbArea.YT+" & CStr(rs!YTArea) & _</p><p> " Where tbArea.tbName ='" & CStr("" & rs!tbName) & "' And " &
73、amp; _</p><p> " tbArea.FtKey ='" & CStr("" & rs!FTKey) & "'"</p><p> rs.MoveNext</p><p><b> Loop</b></p>
74、;<p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p><p><b>
75、 End If</b></p><p> '40:計(jì)算一次分?jǐn)傁禂?shù)及面積</p><p> rs.Open "SELECT tbName,FtKey,Sum(YCFTMJ) as FTMJ FROM qryHSYCFT GROUP BY tbName,FtKey", MAP_CONN, adOpenKeyset, adLockPessimist
76、ic, adCmdText</p><p> Do While Not rs.EOF</p><p> ' MAP_CONN.Execute "UPDATE tbArea " & _</p><p> ' "SET tbArea.ycftxs=&
77、quot; & CStr(rs!YCFTXS) & "," & _</p><p> ' " TbArea.YCFTMJ =" & CStr(rs!YCFTMJ) & _</p><p> '
78、 " WHERE tbArea.tbName='" & CStr(rs!tbName) & "' AND " & _</p><p> ' " tbArea.FTKey ='" & CStr(rs!FtKey) &a
79、mp; "'"</p><p> MAP_CONN.Execute "UPDATE tbArea " & _</p><p> "SET tbArea.YCFTMJ =" & CStr(rs!FTMJ) & _</p><p> " WHERE tbArea.
80、tbName='" & CStr(rs!tbName) & "' AND " & _</p><p> " tbArea.FTKey ='" & CStr(rs!FTKey) & "'"</p><p> rs.MoveNext<
81、/p><p><b> Loop</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b&
82、gt; End If</b></p><p><b> End If</b></p><p> '50:計(jì)算多次分?jǐn)傁禂?shù)及面積</p><p> rs.Open "SELECT tbName,FtKey,Sum(DCFTMJ) as FTMJ FROM qryHSDCFT GROUP BY tbName,F
83、tKey", MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText</p><p> Do While Not rs.EOF</p><p> MAP_CONN.Execute "UPDATE tbArea " & _</p><p> "SET tbArea.
84、dcftmj =" & CStr(rs!FTMJ) & _</p><p> " WHERE tbArea.tbName='" & CStr(rs!tbName) & "' AND " & _</p><p> " tbArea.FTKey ='&quo
85、t; & CStr(rs!FTKey) & "'"</p><p> rs.MoveNext</p><p><b> Loop</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateO
86、pen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p><p><b> End If</b></p><p> '55:計(jì)算墻體分?jǐn)傁禂?shù)及面積(已經(jīng)納入一次分?jǐn)傆?jì)算中去了)</p>
87、;<p><b> '60:閣樓面積</b></p><p> rs.Open "SELECT * FROM qryGL", MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText</p><p> Do While Not rs.EOF</p><p
88、> MAP_CONN.Execute "UPDATE tbArea " & _</p><p> "SET tbArea.GLmj = " & CStr(rs!GLArea) & " " & _</p><p> " WHERE tbArea.tbName='"
89、; & CStr(rs!tbName) & "' AND " & _</p><p> " tbArea.ftKey ='" & CStr(rs!FTKey) & "'"</p><p> rs.MoveNext</p><p>
90、<b> Loop</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b
91、></p><p><b> End If</b></p><p> '70:計(jì)算建筑面積</p><p> MAP_CONN.Execute "UPDATE tbArea " & _</p><p> "SET jzmj = Harea + ycftmj +
92、dcftmj + glmj"</p><p> '75:處理報(bào)表數(shù)據(jù)</p><p> '75.10#:清空分?jǐn)偯娣e表tbFTarea</p><p> MAP_CONN.Execute "DELETE FROM tbFTarea"</p><p> '75.20#:插入一次分?jǐn)偯?/p>
93、面積</p><p> szSQL = "INSERT INTO tbFTarea ( FtKey, CH, Jhmj, zmj, HSzmj, ftlx ) " & _</p><p> "SELECT tbFeature.FtKey AS Ftkey, " & _</p><p> "
94、 (CStr(tbFeature.Jc) & ""-"" & CStr(tbFeature.JC + tbFeature.CS - 1)) AS CH," & _</p><p> " tbFeature.Farea AS Jhmj, (tbFeature.Farea * tbFeature.CS) AS zm
95、j," & _</p><p> " qryYCFTZMJ.YCZMJ AS HSzmj, ""一次分?jǐn)?quot;" AS Ftlx " & _</p><p> "From tbFeature, qryYCFTZMJ " & _</p><p
96、> "WHERE qryYCFTZMJ.tbName=tbFeature.tbName AND " & _</p><p> " qryYCFTZMJ.FtKey=tbFeature.FtKey"</p><p> MAP_CONN.Execute szSQL</p><p> '7
97、5.30#:插入多次分?jǐn)偯娣e</p><p> szSQL = "INSERT INTO tbFTarea(FtKey,CH,Jhmj,zmj,HSzmj,Ftlx) " & _</p><p> "SELECT tbFeature.FtKey AS Ftkey, " & _</p><p> "
98、; (CStr(tbFeature.Jc) & ""-"" & CStr(tbFeature.JC + tbFeature.CS - 1)) AS CH, " & _</p><p> " tbFeature.Farea AS Jhmj, (tbFeature.Farea * tbFeature.CS)
99、AS zmj," & _</p><p> " qryDCFTZMJ.DCZMJ, ""多次分?jǐn)?quot;" AS Ftlx " & _</p><p> "From qryDCFTZMJ, tbFeature " & _</p><p>
100、 "WHERE qryDCFTZMJ.tbName=tbFeature.tbName AND " & _</p><p> " qryDCFTZMJ.FtKey=tbFeature.FtKey"</p><p> MAP_CONN.Execute szSQL</p><p> '75.40#
101、:更新分?jǐn)傁禂?shù)、參與分?jǐn)偟膯卧?lt;/p><p><b> '分?jǐn)傁禂?shù)</b></p><p> MAP_CONN.Execute "UPDATE tbFTarea SET Ftxs=zmj/HSzmj"</p><p><b> '參與分?jǐn)偟膯卧?lt;/b></p>&l
102、t;p> rs.Open "SELECT FtKey,Cydy FROM tbFTarea", MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText</p><p> Set rs1 = New ADODB.Recordset</p><p> Do While Not rs.EOF</p>
103、<p> szSQL = "SELECT (""A"" & H_FtKey) as HFK FROM tbFir WHERE F_TbName="""</p><p> szSQL = szSQL & REGION_LAYER & """ AND F_FtKey=&q
104、uot;"" & "" & rs("FtKey") & """"</p><p> 'rs1.Open szSQL, MAP_CONN, adOpenKeyset, adLockPessimistic, adCmdText</p><p> Set rs1
105、 = MAP_CONN.Execute(szSQL)</p><p> szCydy = ""</p><p> Do While Not rs1.EOF</p><p> szCydy = szCydy & "" & rs1("HFK") & ","<
106、;/p><p> rs1.MoveNext</p><p><b> Loop</b></p><p> If Right(szCydy, 1) = "," Then</p><p> szCydy = Left(szCydy, Len(szCydy) - 1)</p><p&
107、gt;<b> End If</b></p><p> 'update the recordset</p><p> rs.Update Array("Cydy"), Array(szCydy)</p><p> '---------</p><p> If Not rs1
108、Is Nothing Then</p><p> If rs1.State = adStateOpen Then</p><p><b> rs1.Close</b></p><p><b> End If</b></p><p><b> End If</b><
109、/p><p> '-----------------</p><p> rs.MoveNext</p><p><b> Loop</b></p><p> 'release the pointer</p><p> If Not rs1 Is Nothing Then<
110、;/p><p> If rs1.State = adStateOpen Then</p><p><b> rs1.Close</b></p><p><b> End If</b></p><p> Set rs1 = Nothing</p><p><b>
111、 End If</b></p><p><b> '77:統(tǒng)計(jì)</b></p><p> '77.10#:計(jì)算層數(shù)</p><p> Set rs = MAP_CONN.Execute("SELECT Max(jc+cs-1) as MaxC FROM tbFeature WHERE tbName=
112、'" & REGION_LAYER & "'")</p><p> If Not rs.EOF Then</p><p> MaxCS = rs("MaxC")</p><p><b> End If</b></p><p> If
113、 Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p><p><b> End If</b&g
114、t;</p><p> Set rs = MAP_CONN.Execute("SELECT Min(jc) as MinC FROM tbFeature WHERE tbName='" & REGION_LAYER & "'")</p><p> If Not rs.EOF Then</p><
115、p> MinCS = rs("MinC")</p><p><b> End If</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.C
116、lose</b></p><p><b> End If</b></p><p><b> End If</b></p><p> If MinCS < 0 Then</p><p> MaxCS = MaxCS - MinCS</p><p>&l
117、t;b> End If</b></p><p><b> '77.20#:</b></p><p> ' Dim Zjzmj As Double '總建筑面積</p><p> ' Dim ZGymj As Double '總共用面積</p><p
118、> ' Dim Ztljzmj As Double '總套內(nèi)建筑面積</p><p> ' Dim Zglmj As Double '總閣樓面積</p><p> ' Dim Zftxs As Double '總分?jǐn)傁禂?shù)</p><p><b> '總共用面積</
119、b></p><p> Set rs = MAP_CONN.Execute("SELECT Sum(Zmj) as GYMJ FROM rptFT")</p><p> If Not rs.EOF Then</p><p> If Not IsNull(rs("GYMJ")) Then</p><
120、;p> ZGymj = rs("GYMJ")</p><p><b> End If</b></p><p><b> End If</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adS
121、tateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p><p><b> End If</b></p><p><b> '總套內(nèi)建筑面積</b></p&
122、gt;<p> szSQL = "SELECT Sum(tbArea.Harea*tbFeature.cs) as TLMJ FROM tbArea,tbFeature " & _</p><p> " WHERE tbArea.Tbname=tbFeature.tbName AND tbArea.FtKey=tbFeature.FtKey"<
123、;/p><p> Set rs = MAP_CONN.Execute(szSQL)</p><p> If Not rs.EOF Then</p><p> If Not IsNull(rs("TLMJ")) Then</p><p> Ztljzmj = rs("TLMJ")</p>
124、<p><b> End If</b></p><p><b> End If</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs
125、.Close</b></p><p><b> End If</b></p><p><b> End If</b></p><p><b> '總建筑面積</b></p><p> Zjzmj = ZGymj + Ztljzmj</p>
126、<p><b> '總閣樓面積</b></p><p> szSQL = "SELECT Sum(cs*farea) as GLMJ FROM tbFeature WHERE tbName='" & REGION_LAYER & "' AND Ftype=4"</p><p&
127、gt; Set rs = MAP_CONN.Execute(szSQL)</p><p> If Not rs.EOF Then</p><p> If Not IsNull(rs("GLMJ")) Then</p><p> Zglmj = 0 + rs("GLMJ")</p><p><
128、;b> End If</b></p><p><b> End If</b></p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b&
129、gt;</p><p><b> End If</b></p><p><b> End If</b></p><p><b> '總分?jǐn)傁禂?shù)</b></p><p> If Ztljzmj <> 0 Then</p><p>
130、; Zftxs = ZGymj / Ztljzmj</p><p><b> End If</b></p><p><b> '寫(xiě)入數(shù)據(jù)庫(kù)</b></p><p> szSQL = "UPDATE tbTable SET Cs=" & CStr(MaxCS) & &quo
131、t;," & _</p><p> "Zjzmj=" & CStr(Zjzmj) & "," & _</p><p> "Zgymj=" & CStr(ZGymj) & "," & _</p><p> "
132、Ztljzmj=" & CStr(Ztljzmj) & "," & _</p><p> "Zglmj=" & CStr(Zglmj) & "," & _</p><p> "Zftxs=" & CStr(Zftxs) & _<
133、/p><p> " WHERE LyrName='" & REGION_LAYER & "'"</p><p> MAP_CONN.Execute szSQL</p><p> '80:計(jì)算結(jié)束,顯示計(jì)算結(jié)果</p><p> Screen.MousePoin
134、ter = 0</p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End If</b></p>&l
135、t;p> Set rs = Nothing</p><p><b> End If</b></p><p> Unload frm</p><p> '-----------------------------------</p><p><b> Exit Sub</b>&
136、lt;/p><p> ErrHandler:</p><p> Screen.MousePointer = 0</p><p> If Not frm Is Nothing Then</p><p> Unload frm</p><p><b> End If</b></p>
137、<p> '---------------</p><p> If Not rs Is Nothing Then</p><p> If rs.State = adStateOpen Then</p><p><b> rs.Close</b></p><p><b> End I
138、f</b></p><p> Set rs = Nothing</p><p><b> End If</b></p><p> '-------------------</p><p> If Not rs1 Is Nothing Then</p><p> If
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《房屋租賃管理系統(tǒng)》畢業(yè)論文設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))房屋銷售管理系統(tǒng)設(shè)計(jì)
- 房屋租賃管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文(設(shè)計(jì))基于.net畢業(yè)論文管理系統(tǒng)
- 畢業(yè)論文--房屋費(fèi)用收繳管理系統(tǒng)
- 畢業(yè)論文基于jsp的畢業(yè)論文管理系統(tǒng)的設(shè)計(jì)
- 龍湖地產(chǎn)房屋銷售管理系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文——基于bs結(jié)構(gòu)的房屋租售管理系統(tǒng)的實(shí)現(xiàn)
- 測(cè)繪畢業(yè)論文
- 測(cè)繪畢業(yè)論文
- 畢業(yè)論文范文——房屋租賃管理系統(tǒng)
- 畢業(yè)論文范文——房屋租賃管理系統(tǒng)
- 房屋中介管理系統(tǒng)畢業(yè)論文
- 房屋中介管理系統(tǒng)畢業(yè)論文
- jsp房屋出租管理系統(tǒng)畢業(yè)論文
- 房屋中介管理系統(tǒng)畢業(yè)論文
- 房屋租賃系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-房屋中介管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文(設(shè)計(jì))基于web的畢業(yè)設(shè)計(jì)管理系統(tǒng)
- 畢業(yè)論文---基于jsp的在線畢業(yè)論文管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論