阅读:839回复:1
这个问题解决不了啊
<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> |
|
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编辑过]
|
|