以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  饼图占比计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79482)

--  作者:lgj716330
--  发布时间: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
--  发布时间:2016/1/2 21:43:00
--  
找到原因了
Dim sm As Double = t.Compute("Sum(" & dic("主营业务收入") & ")")

--  作者:lgj716330
--  发布时间: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编辑过]

--  作者:大红袍
--  发布时间:2016/1/7 11:13:00
--  

1、单独测试是否可以;

 

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


--  作者:lgj716330
--  发布时间:2016/1/7 13:16:00
--  
嗯,找出错误地方了,有个地方变量没改过来,粗心了