Foxtable(狐表)用户栏目专家坐堂 → 图表如何增加平均数,还有如何由高到低排序?


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

主题:图表如何增加平均数,还有如何由高到低排序?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/1 19:36:00 [显示全部帖子]

 试了一下,不能够在右上角显示你需要的那个总统计,你只能用其他方式来代替了。

 第一个按钮的代码,第二、三个按钮的代码,没理解透你是什么意思

Dim Chart  As WinForm.Chart  '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
'Tables("订单").Filter = "[部门] = '销售部'"
Tables("订单").Sort = "金额 DESC"
Dim tbl As DataTable =  DataTables("订单") '定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("销售", "", "金额 desc")'获得产品名称集合
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.Length = lst.Count + 1 '设置图系的长度
Dim flag As Integer = 0
For i As Integer =  0  To lst.Count -  1  '指定每个数据点的位置
    If i = Cint(lst.Count / 2) Then
        Series.X(i) = i '指定水平坐标
        'Series.Y(i) = tbl.Compute("Sum(金额)","[销售] = '" & lst(i) & "'") '指定垂直坐标
        Series.Y(i) = tbl.Compute("avg(金额)", "") '指定垂直坐标
        Chart.AxisX.SetValueLabel(i, "平均值")  '指定字符表示
        flag = 1
    End If
    Series.X(i+flag) = i + flag '指定水平坐标
    'Series.Y(i) = tbl.Compute("Sum(金额)","[销售] = '" & lst(i) & "'") '指定垂直坐标
    Series.Y(i+flag) = tbl.Compute("avg(金额)","[销售] = '" & lst(i) & "'") '指定垂直坐标
    Chart.AxisX.SetValueLabel(i+flag, lst(i))  '指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Series.DataLabelText = "{#YVAL}"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/1 21:50:00 [显示全部帖子]

 回复12楼。你的逻辑有问题:如果要做统计图表:步骤应该是这样的 1、生成所需要的统计表(生成以后可以方便对统计变排序、添加、修改);2、根据统计表生成图表

 第一个问题:你先生成统计表,插入一条平均值,排序;

 第二个问题:也是先生成统计表,统计总金额和订单数,之后生成图表就方便了。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/3/2 19:59:00 [显示全部帖子]

 第一个问题:

dim nr as row = tables("统计表").addnew
nr("xxx") = "123"
nr("yyy") = "456"

 第二个问题:

不需要插入平均单价的列,你只需要在生成图表的时候,用总金额/单数就行了;
插入一行平均值,参考第一个问题,平均值的值,你应该是会求的,用compute函数

 回到顶部