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


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

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

美女呀,离线,留言给我吧!
东方威思顿
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
饼型图型如何实现跳过统计表  发帖心情 Post By:2019/4/22 14:32:00 [只看该作者]

老师,您好,如何实现在饼型图型中直接在代码中加入统计代码,无需生成统计表?线型条型的都能实现,但是饼型的图型的时候代码一直显示代码错误。

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


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

 

具体实例发上来测试。

 

 


 回到顶部
美女呀,离线,留言给我吧!
东方威思顿
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
  发帖心情 Post By:2019/4/22 15:24:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 '图列显示在东方(右方)

 回到顶部
美女呀,离线,留言给我吧!
东方威思顿
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
  发帖心情 Post By:2019/4/22 16:32:00 [只看该作者]

甜老师,您好,实例是单独统计的3月份的数据形成的图表,如果一年的数据整合在一个数据表中,我想达到的效果是根据数据表中每月的数据能生成一个单独的每月的图表和生成一个全年的图表,这样的形式应该如何实现?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
美女呀,离线,留言给我吧!
东方威思顿
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
  发帖心情 Post By:2019/4/23 14:17:00 [只看该作者]

甜老师,您好,我想实现的是图型如图1所示,每个月都有一个单独的窗口图片,不想如图2所示这样并列在一块显示,这样的功能可以实现吗?

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

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


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


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

 

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

 

 


 回到顶部
美女呀,离线,留言给我吧!
东方威思顿
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:50 积分:445 威望:0 精华:0 注册:2018/8/27 17:33:00
  发帖心情 Post By:2019/4/23 17:10:00 [只看该作者]

甜老师,如果我的数据表中包括2019年1月份、2月份、3月份,现在的日期是4月份,我只想统计上个月的数据(即3月份),以此类推,5月份统计4月份,想实现这个功能如何更改编码?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 '图列显示在东方(右方)

 


 回到顶部