Foxtable(狐表)用户栏目专家坐堂 → 饼型图型如何实现跳过统计表


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

主题:饼型图型如何实现跳过统计表

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


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

 

具体实例发上来测试。

 

 


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


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

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("月报表") '定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("供应商") '获得产品名称集合
Dim sm As Integer = tbl.Compute("count(供应商)") '计算总数量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True
Chart.ChartType = ChartTypeEnum.pie '设置图表类型
For Each gys As String In lst
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = gys
    Series.Y(0) = tbl.Compute("count(供应商)", "供应商='" & gys & "'")
    Series.DataLabelText = Math.Round(Series.Y(0)*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

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


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

For i As Integer = 1 To 12
    Dim d1 As Date = new Date(1999, i,  1)
    Dim d2 As Date = d1.AddMonths(1)
    Dim filter As String = "日期 >= '" & Format(d1, "MM.dd") & "' and 日期 < '" & Format(d2, "MM.dd") & "'"
    Dim Chart As New ChartBuilder  '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim tbl As DataTable = DataTables("月报表") '定义一个变量tbl引用数据表
    Dim lst As List(Of String) = tbl.GetValues("供应商", filter) '获得产品名称集合
    Dim sm As Integer = tbl.Compute("count(供应商)", filter) '计算总数量
    Chart.VisualEffect = True
    Chart.ChartType = ChartTypeEnum.pie '设置图表类型
    Chart.HeaderText = i & "月"
    For Each gys As String In lst
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = gys
        Series.Y(0) = tbl.Compute("count(供应商)", "供应商='" & gys & "' and " & filter)
        Series.DataLabelText = Math.Round(Series.Y(0)*100/sm,2) & "%" '计算百分比
    Next
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)
    chart.width = 300
    Chart.left = 300*(i-1)
    Chart.height = 300
    e.Form.AddControl(Chart)
Next
e.Form.panel.autoscroll = True


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


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

 

那你就弄12个chart控件,一个一个的写代码生成。

 

 


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


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

Dim d As Date = Date.Today
Dim d1 As Date = new Date(1999, d.month,  1)
Dim d2 = d1.AddMonths(-1)
Dim filter As String = "日期 >= '" & Format(d2, "MM.dd") & "' and 日期 < '" & Format(d1, "MM.dd") & "'"
Dim Chart As WinForm.Chart = e.Form.Controls("Chart1")
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tbl As DataTable = DataTables("月报表") '定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("供应商", filter) '获得产品名称集合
Dim sm As Integer = tbl.Compute("count(供应商)", filter) '计算总数量
Chart.VisualEffect = True
Chart.ChartType = ChartTypeEnum.pie '设置图表类型
Chart.HeaderText = d2.month & "月"
For Each gys As String In lst
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = gys
    Series.Y(0) = tbl.Compute("count(供应商)", "供应商='" & gys & "' and " & filter)
    Series.DataLabelText = Math.Round(Series.Y(0)*100/sm,2) & "%" '计算百分比
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

 


 回到顶部