Foxtable(狐表)用户栏目专家坐堂 → 饼图


  共有2427人关注过本帖树形打印复制链接

主题:饼图

帅哥哟,离线,有人找我吗?
cqlistone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:713 威望:0 精华:0 注册:2015/5/11 20:47:00
饼图  发帖心情 Post By:2016/1/24 21:20:00 [只看该作者]

表A 有两列,

产品名称   数量
A1            30
A2            50
A3            20
A1            15
An            60

跳过统计表如何编写饼图代码


 回到顶部
帅哥,在线噢!
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/1/24 21:36:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
cqlistone
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:713 威望:0 精华:0 注册:2015/5/11 20:47:00
  发帖心情 Post By:2016/1/26 10:05:00 [只看该作者]

按产品列生成饼图,代码哪里出错了,请帮忙改下。

 

Dim Chart As WinForm.Chart                                                             

Dim Series As WinForm.ChartSeries                                                       
Dim t As DataTable = DataTables("订单")                                                 
Dim pds() As String = t.GetValues("产品")                                               
Dim qq() As Single = = val(t.Compute("Sum(" & pds & ")", "产品 is not null"))
Dim sm As Integer = t.Compute("Sum(数量)")                                           
Chart= Forms("窗口1").Controls("Chart1")                                            
Chart.SeriesList.Clear()                                                                
Chart.VisualEffect = True                                                               
Chart.ChartType = ChartTypeEnum.Pie                                                                                                           
For i As Integer = 0 to pds.length -1
    Series = Chart.SeriesList.Add()
    Series.Length = 1
    Series.Text = pds(i) & "(" & qq(i) & ")"
    Series.Y(0) = qq(i)                                                                  
    Series.DataLabelText = Math.Round(qq(i)*100/sm,1) & "%"
Next
Chart.LegendVisible = True                                                             
Chart.LegendCompass= CompassEnum.South 


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/1/26 10:12:00 [只看该作者]

Dim Chart As WinForm.Chart                                                             
Dim Series As WinForm.ChartSeries                                                        
Dim t As DataTable = DataTables("订单")                                                  
Dim pds() As String = t.GetValues("产品")                                                
'Dim qq() As Single = = val(t.Compute("Sum(" & pds & ")", "产品 is not null"))
Dim sm As Integer = t.Compute("Sum(数量)")                                           
Chart= Forms("窗口1").Controls("Chart1")                                            
Chart.SeriesList.Clear()                                                                 
Chart.VisualEffect = True                                                                
Chart.ChartType = ChartTypeEnum.Pie                                                                                                            
For i As Integer = 0 To pds.length -1
    Series = Chart.SeriesList.Add() 
    Series.Length = 1 
    Dim sum = val(t.Compute("Sum(" & pds(i) & ")", "产品 is not null"))
    Series.Text = pds(i) & "(" & sum & ")" 
    Series.Y(0) = sum                                                                   
    Series.DataLabelText = Math.Round(sum * 100 / sm,1) & "%" 
Next 
Chart.LegendVisible = True                                                             
Chart.LegendCompass= CompassEnum.South 

 回到顶部
帅哥哟,离线,有人找我吗?
cqlistone
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:713 威望:0 精华:0 注册:2015/5/11 20:47:00
  发帖心情 Post By:2016/1/26 18:17:00 [只看该作者]

你好!
代码报错
无法将类型为“System.Collections.Generic.List`1[System.String]”的对象强制转换为类型“System.String[]”。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/26 22:07:00 [只看该作者]

Dim pds() As String = t.GetValues("产品")      

 

改成

 

Dim pds As List(of String) = t.GetValues("产品")      


 回到顶部
帅哥哟,离线,有人找我吗?
cqlistone
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:713 威望:0 精华:0 注册:2015/5/11 20:47:00
  发帖心情 Post By:2016/1/27 9:09:00 [只看该作者]

你好!

还是不行


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/1/27 9:14:00 [只看该作者]

什么地方不行,贴出完整代码和出错提示

 回到顶部
帅哥哟,离线,有人找我吗?
cqlistone
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:58 积分:713 威望:0 精华:0 注册:2015/5/11 20:47:00
  发帖心情 Post By:2016/1/27 9:23:00 [只看该作者]

你好!

聚合函数错误

Dim Chart As WinForm.Chart                                                             
Dim Series As WinForm.ChartSeries                                                        
Dim t As DataTable = DataTables("订单")                                                  

Dim pds As List(of String) = t.GetValues("产品")                                                     

Dim sm As Integer = t.Compute("Sum(数量)")                                           
Chart= Forms("窗口1").Controls("Chart1")                                            
Chart.SeriesList.Clear()                                                                 
Chart.VisualEffect = True                                                                
Chart.ChartType = ChartTypeEnum.Pie                                                                                                            
For i As Integer = 0 To pds.count -1
    Series = Chart.SeriesList.Add() 
    Series.Length = 1 
    Dim sum = val(t.Compute("Sum(" & pds(i) & ")", "产品 is not null"))
    Series.Text = pds(i) & "(" & sum & ")" 
    Series.Y(0) = sum                                                                   
    Series.DataLabelText = Math.Round(sum * 100 / sm,1) & "%" 
Next 
Chart.LegendVisible = True                                                             
Chart.LegendCompass= CompassEnum.South 

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/1/27 9:58:00 [只看该作者]

Dim sum = val(t.Compute("Sum(数量)", "产品 = '" & pds(i) & "'"))


 回到顶部