以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么根据CheckedComboBox 多项选择框做饼图  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64487)

--  作者:oo黑暗中的灯
--  发布时间:2015/2/15 12:38:00
--  [求助]怎么根据CheckedComboBox 多项选择框做饼图
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:饼图.rar


图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/2/16 12:28:42编辑过]

--  作者:Bin
--  发布时间:2015/2/15 14:21:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:oo黑暗中的灯
--  发布时间:2015/2/15 15:40:00
--  
谢谢了。
--  作者:oo黑暗中的灯
--  发布时间:2015/2/16 12:26:00
--  继续求助
我又增加一了个Bar的图表,怎么不显图出来了,只显标题

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Chart2 As WinForm.Chart
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim Series2 As WinForm.ChartSeries
Dim t As Table = Tables("表B") \'定义一个变量t引用数据表
Dim money As Table=Tables("表A")
Dim tclist As new List(of String)
tclist.AddRange(e.sender.Text.split(","))
Dim sm As Integer = DataTables("表A").Compute("Sum(收入)")\',"套餐名称 in (\'" & e.Sender.Text.replace(",","\',\'") & "\')") \'计算收入
Chart= Forms("窗口1").Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie \'图表1类型改为pie
Chart.SeriesList.Clear()\'清除

Chart2=Forms("窗口1").Controls("Chart2") \' 引用窗口中的图表
Chart2.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart2.ChartType = ChartTypeEnum.Bar \'图表1类型改为pie
Chart2.SeriesList.Clear()\'清除
For Each r As Row In t.Rows
    If tclist.Contains(r("套餐名称")) Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Length = 1 \'一个系列只能包括一个值
        Series.Text = r("套餐名称") & "(" & r("套餐金额") & ")" \'设置图系的标题
        Series.Y(0) = r("套餐金额") \'指定值
        Series.DataLabelText = Math.Round(r("套餐金额")*100/sm,2) & "%" \'计算百分比
        Series2=Chart2.SeriesList.Add()
        Series2.Text= r("套餐名称") & "(" & r("套餐数量") & ")" \'设置图系的标题
        Series2.X.DataField="(套餐名称)"
        Series2.Y.DataField="(套餐数量)"
        
    End If
Next
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.East \'图列显示在东方(右方)
Chart2.LegendVisible = True \'显示图列
Chart2.LegendCompass= CompassEnum.East \'图列显示在东方(右方)


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar



[此贴子已经被作者于2015/2/16 14:00:26编辑过]

--  作者:有点甜
--  发布时间:2015/2/23 11:04:00
--  

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Chart2 As WinForm.Chart
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim Series2 As WinForm.ChartSeries
Dim t As Table = Tables("表B") \'定义一个变量t引用数据表
Dim money As Table=Tables("表A")
Dim tclist As new List(of String)
tclist.AddRange(e.sender.Text.split(","))
Dim sm As Integer = DataTables("表A").Compute("Sum(收入)")\',"套餐名称 in (\'" & e.Sender.Text.replace(",","\',\'") & "\')") \'计算收入
Chart= Forms("窗口1").Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie \'图表1类型改为pie
Chart.SeriesList.Clear()\'清除


Chart2=Forms("窗口1").Controls("Chart2") \' 引用窗口中的图表
Chart2.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart2.ChartType = ChartTypeEnum.Bar \'图表1类型改为pie
Chart2.SeriesList.Clear()\'清除
Series2=Chart2.SeriesList.Add()
For Each r As Row In t.Rows
    If tclist.Contains(r("套餐名称")) Then
        Series = Chart.SeriesList.Add() \'增加一个图系
        Series.Length = 1 \'一个系列只能包括一个值
        Series.Text = r("套餐名称") & "(" & r("套餐金额") & ")" \'设置图系的标题
        Series.Y(0) = r("套餐金额") \'指定值
        Series.DataLabelText = Math.Round(r("套餐金额")*100/sm,2) & "%" \'计算百分比
       
        series2.Length += 1
        Series2.X(series2.Length-1) = series2.Length
        Series2.Y(series2.Length-1) = r("套餐数量")
        Chart2.AxisX.SetValueLabel(series2.Length, r("套餐名称") & "(" & r("套餐数量") & ")") \'指定字符表示
    End If
Next
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.East \'图列显示在东方(右方)
Chart2.AxisX.AnnoWithLabels = True \'启用字符标示


--  作者:oo黑暗中的灯
--  发布时间:2015/2/25 11:42:00
--  还有一个小问题
多选几次后名称会花掉,一次选完就没有这种情况,要怎么弄才不会花。

图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2015/2/25 11:44:00
--  

加入代码

 

Chart2.AxisX.ClearValueLabel
Chart2.AxisY.ClearValueLabel