Attribute VB_Name = "mapModule"'/**************mapMoudule全局模塊,定義了關(guān)于MapX的地圖大小,尺寸以及在整個(gè)程序中要用到的層信息的全局變量***/'/**************和一組得到這些信息的函數(shù)************/'/**************它們用在frmMapPrev窗體中*********/'/***************代碼編寫(xiě)人:肖兵.編寫(xiě)日期:2002-1-16************************/Global MapZoom As Double 'MAPX控件的地圖視野屬性Global MapWid As Double 'MAPX控件的寬度Global MapHei As Double 'MAPX控件的高度Global MapCenX As Double 'MAPX控件的地圖中心點(diǎn)X坐標(biāo)Global MapCenY As Double 'MAPX控件的地圖中心點(diǎn)Y坐標(biāo)Global MapLayFields() As String '經(jīng)過(guò)MAPX數(shù)據(jù)綁定的地圖層字段名稱(chēng)Global MapLayFieldVal() As String '經(jīng)過(guò)MAPX數(shù)據(jù)綁定的地圖層字段值Global MapLayFieldCnt As Integer '經(jīng)過(guò)MAPX數(shù)據(jù)綁定的地圖層字段個(gè)數(shù)Global MapLayRowCnt As Integer '經(jīng)過(guò)MAPX數(shù)據(jù)綁定的地圖層的屬性記錄個(gè)數(shù)Global MapLayerName() As String '經(jīng)過(guò)MAPX數(shù)據(jù)綁定的數(shù)據(jù)集Dataset名稱(chēng)'****************此函數(shù)用于得到MAPX的Dataset的屬性信息***************'***************其返回值是BOOL型,如果Dataset中沒(méi)有屬性記錄就返回FALSE;不然就返回TRUE**********'***************它需要兩個(gè)參數(shù)MapObj是程序中MAPX對(duì)象的名稱(chēng);DatasetName是要預(yù)覽其屬性的MAPX中綁定的一個(gè)數(shù)據(jù)集的名稱(chēng)*********Public Function GetMapLayerAttr(ByVal MapObj As Object, ByVal DatasetName As String) As BooleanDim RowCount As Integer, FldCount As Integer 'RowCount是屬性記錄的個(gè)數(shù);FldCount是屬性記錄的字段個(gè)數(shù)Dim i As Integer, k As Integer '用在循環(huán)中的計(jì)數(shù)器Dim DataSet As Object 'MAPX的數(shù)據(jù)集對(duì)象Set DataSet = MapObj.Datasets.Item(DatasetName) '根據(jù)數(shù)據(jù)集名稱(chēng)得到數(shù)據(jù)集對(duì)象實(shí)例FldCount = DataSet.Fields.count '得到數(shù)據(jù)集的字段個(gè)數(shù)MapLayFieldCnt = FldCount '將字段個(gè)數(shù)賦給全局變量 MapLayFieldCnt進(jìn)行保存'以下If語(yǔ)句判斷是否有字段,若無(wú)則返回FALSE并退出函數(shù)If FldCount = 0 ThenGetMapLayerAttr = FalseSet DataSet = NothingExit FunctionEnd If'給MapLayFields全局?jǐn)?shù)組按字段個(gè)數(shù)分配大小,注意它是以0為基數(shù)ReDim MapLayFields(0 To FldCount - 1)'以下For循環(huán)語(yǔ)句來(lái)得到字段的名稱(chēng)For i = 0 To FldCount - 1MapLayFields(i) = DataSet.Fields.Item(i + 1).NameNext'得到數(shù)據(jù)集的記錄個(gè)數(shù)RowCount = DataSet.RowCount'將記錄個(gè)數(shù)賦給全局變量MapLayRowCnt進(jìn)行保存MapLayRowCnt = RowCount'以下If語(yǔ)句判斷記錄個(gè)數(shù)是否為0,若是返回FALSE并退出函數(shù)If RowCount = 0 ThenGetMapLayerAttr = FalseSet DataSet = NothingExit FunctionEnd If'給MapLayFieldVal全局?jǐn)?shù)組按記錄個(gè)數(shù)和字段個(gè)數(shù)聲明成二維數(shù)組并分配大小ReDim MapLayFieldVal(RowCount, FldCount)'以下For語(yǔ)句得到各記錄的字段值For i = 1 To RowCountFor k = 1 To FldCountMapLayFieldVal(i, k) = DataSet.Value(i, k) & ""Next kNext i'函數(shù)返回TRUEGetMapLayerAttr = TrueEnd Function'*********************這個(gè)函數(shù)用來(lái)得到MAPX對(duì)象中數(shù)據(jù)集的名稱(chēng)便于在列表中顯示和用戶(hù)選擇數(shù)據(jù)集進(jìn)行預(yù)覽*****************'********************它的返回值是BOOL型,如果沒(méi)有數(shù)據(jù)集函數(shù)返回FALSE;若有則返回TRUE**********************'******************它有一個(gè)參數(shù)---MapObj代表程序所用的MAPX對(duì)象的名稱(chēng)*************************Public Function GetMapLayersName(ByVal MapObj As Object) As BooleanDim DataCnt As Integer '數(shù)據(jù)集的個(gè)數(shù)Dim k As IntegerDataCnt = MapObj.Datasets.count '得到MAPX的數(shù)據(jù)集個(gè)數(shù)'以下If語(yǔ)句來(lái)得到數(shù)據(jù)集的名稱(chēng)并存在MapLayerName全局?jǐn)?shù)組中If DataCnt > 0 ThenReDim MapLayerName(DataCnt)For k = 1 To DataCntMapLayerName(k) = MapObj.Datasets.Item(k).NameNext kGetMapLayersName = TrueExit FunctionEnd If'若沒(méi)有數(shù)據(jù)集函數(shù)返回FALSEGetMapLayersName = FalseEnd Function
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。