集思人
路人甲
路人甲
  • 注册日期2004-10-15
  • 发帖数62
  • QQ
  • 铜币443枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:839回复:1

这个问题解决不了啊

楼主#
更多 发布于:2005-03-31 02:42
<P>专题图制作问题:
新建立了两个combo1读专题图类型  combo2读图层
  接着建立了两个list一个 做单独字段时用 一个用于多字段  下面把代码弄出来
Private Sub Combo1_Click()
        
     Select Case Combo1.ListIndex
      
       Case 0
          ThemeType = 0 'miThemeRanged   Ranges Theme
          SingleList.Visible = True
          MultiList.Visible = False
       Case 1
          ThemeType = 1 'miThemeBarChart Bar Chart Theme
          SingleList.Visible = False
          MultiList.Visible = True
       Case 2
          ThemeType = 2 'miThemeBarChart Pie Chart Theme
          SingleList.Visible = False
          MultiList.Visible = True
       Case 3
          ThemeType = 3 'miThemeGradSymbol   Graduated Symbol Theme
          SingleList.Visible = True
          MultiList.Visible = False
       Case 4
          ThemeType = 4 'miThemeDotDensity   Dot Density Theme
          SingleList.Visible = True
          MultiList.Visible = False
       Case 5
          ThemeType = 5 'miThemeIndividualValue  Individual Values Theme
          SingleList.Visible = True
          MultiList.Visible = False
       Case 6
          ThemeType = 6 'miThemeAuto
          SingleList.Visible = False
          MultiList.Visible = True
    End Select</P>
<P>Private Sub Combo2_Click()
Dim ds As MapXLib.Dataset
    Dim i As Integer
   If Trim(Combo2.Text) <> "" Then
       Set ds = frmmain.Map1.Datasets(Combo2.List(Combo2.ListIndex))
       For i = 1 To ds.Fields.Count
         If ds.Fields.Item(i).Type = miTypeNumeric Then
            SingleList.AddItem ds.Fields.Item(i).Name
            MultiList.AddItem ds.Fields.Item(i).Name
         End If
       Next i
      
       If SingleList.ListCount > 0 Then SingleList.ListIndex = 0
       If MultiList.ListCount > 0 Then MultiList.ListIndex = 0
  End If    
  End Sub  
  
Private Sub Form_Load()
    Dim ds As MapXLib.Dataset
    Dim i As Integer
    Dim j As Integer, nLayerCount As Integer
    Combo1.AddItem "范围图"
    Combo1.AddItem "直方图"
    Combo1.AddItem "饼图"
    Combo1.AddItem "等级符号图"
    Combo1.AddItem "点密度图"
    Combo1.AddItem "独立值图"
    Combo1.AddItem "默认"
    Combo1.ListIndex = 6
    
'加载图层列表
    
    If frmmain.Map1.Layers.Count > 0 Then
        nLayerCount = frmmain.Map1.Layers.Count
        For j = 1 To nLayerCount
           Combo2.AddItem frmmain.Map1.Layers.Item(j).Name, j - 1
        Next
    End If
 End Sub   </P>
<P> Dim TmpInt As Integer
    Dim I As Integer, J As Integer
    Dim ds As MapXLib.Dataset
    Dim ThemeFields() As String
    Dim ThemeType As Integer</P>
<P>Private Sub CommandOK_Click()
    ThemeLayer = Combo2.List(Combo2.ListIndex)
    Set ds = frmD.Map1.DataSets.Item(ThemeLayer)
    ThemeType = Combo1.ListIndex
    Select Case Combo1.ListIndex
        Case 0, 3, 4, 5
            ds.Themes.Add ThemeType, List0345.List(List0345.ListIndex)
        Case 1, 2, 6
            J = 0
         TmpInt = List126.SelCount
         ReDim ThemeFields(TmpInt - 1)
         For I = 0 To List126.ListCount - 1
           If List126.Selected(I) Then
              ThemeFields(J) = List126.List(I)
              J = J + 1
           End If
         Next I
         ds.Themes.Add ThemeType, ThemeFields
    End Select
    
    ds.Themes.Item(1).ThemeDlg
    
    Unload Me
End Sub
兄弟姐妹看看这段代码哪有错啊  新手啊  好多东西都不懂
    怎么也不能在两个list字段中把 字段读出来啊      所以专题图就做不出来哦
能解决的  帮忙给改一下呀    万分感谢啊</P>
喜欢0 评分0
chaimin1400
路人甲
路人甲
  • 注册日期2003-10-11
  • 发帖数315
  • QQ
  • 铜币533枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-03-31 21:40
<P>出在combo2</P>
<P>If ds.Fields.Item(i).Type = miTypeNumeric Then
            SingleList.AddItem ds.Fields.Item(i).Name
            MultiList.AddItem ds.Fields.Item(i).Name
End If
</P>
<P>这一句只允许miTypeNumeric加入List框,所以那些字符串的就无法加入,例如Name、州名等</P>
<P>有一些图层的字段只有字符形的,所以加不上去,为空
</P>
[此贴子已经被作者于2005-3-31 21:51:36编辑过]
举报 回复(0) 喜欢(0)     评分
游客

返回顶部