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


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

主题:饼图占比计算

帅哥,在线噢!
lgj716330
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
饼图占比计算  发帖心情 Post By:2016/1/2 20:11:00 [只看该作者]

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("利润表附表") '定义一个变量t引用数据表
Dim sm As Double = t.Compute("Sum(dic(主营业务收入))")
Chart= Forms("终端状态占比分析").Controls("占比1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t.Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = r("店铺状态") & "(" & r(dic("主营业务收入")) & ")" '设置图系的标题
    Series.Y(0) = r(dic("主营业务收入")) '指定值
    Series.DataLabelText = Math.Round(r(dic("主营业务收入"))*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

貌似标颜色的这句代码计算不出来

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

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2016/1/2 21:43:00 [只看该作者]

找到原因了
Dim sm As Double = t.Compute("Sum(" & dic("主营业务收入") & ")")

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


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2016/1/7 10:56:00 [只看该作者]

用一个按钮可以同时生成两个图表吗,如下代码

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table = Tables("利润表附表") '定义一个变量t引用数据表
Dim sm As Double = t.Compute("Sum(" & dic("主营业务收入") & ")")
Chart= Forms("终端状态占比分析").Controls("占比1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t.Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = r("店铺状态") & "(" & r(dic("主营业务收入")) & ")" '设置图系的标题
    Series.Y(0) = r(dic("主营业务收入")) '指定值
    Series.DataLabelText = Math.Round(r(dic("主营业务收入"))*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.TopMost = True '不同图表间切换
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.LegendCompass= CompassEnum.South '图列显示在东方(右方)


Dim Chart1 As WinForm.Chart '定义一个图表变量
Dim Series1 As WinForm.ChartSeries '定义一个图系变量
Dim t1 As Table = Tables("利润表附表") '定义一个变量t引用数据表
Dim sm1 As Double = t1.Compute("Sum(营业费用)")
Chart1= Forms("终端状态占比分析").Controls("占比2") ' 引用窗口中的图表
Chart1.SeriesList.Clear() '清除图表原来的图系
Chart1.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
For Each r As Row In t1.Rows
    Series1 = Chart.SeriesList.Add() '增加一个图系
    Series1.Length = 1 '一个系列只能包括一个值
    Series1.Text = r("店铺状态") & "(" & r("营业费用") & ")" '设置图系的标题
    Series1.Y(0) = r("营业费用") '指定值
    Series1.DataLabelText = Math.Round(r("营业费用")*100/sm1,2) & "%" '计算百分比
Next
Chart1.LegendVisible = True '显示图列
Chart1.TopMost = True '不同图表间切换
Chart1.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart1.LegendCompass= CompassEnum.South '图列显示在东方(右方)

我把上面这两段代码编在同一个按钮里,结果只生成一个图表

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

[此贴子已经被作者于2016/1/7 11:02:10编辑过]

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


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

1、单独测试是否可以;

 

2、单独可以,放在一起肯定可以。


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


加好友 发短信
等级:六尾狐 帖子:1388 积分:10698 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2016/1/7 13:16:00 [只看该作者]

嗯,找出错误地方了,有个地方变量没改过来,粗心了

 回到顶部