Foxtable(狐表)用户栏目专家坐堂 → 圆饼图表生成


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

主题:圆饼图表生成

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


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

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("图表学习2").Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
Dim nms() As String = {"支出汇总","经营汇总","负载汇总"}
Dim nms2() As String = {"支出金额","变动金额","欠款金额"}
Dim sum As Double = 0
For i As Integer = 0 To nms.Length - 1
    Dim r As Row = Tables(nms(i)).Rows(Tables(nms(i)).count-1)
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = nms(i) & "(" & r(nms2(i)) & ")"
    Series.Y(0) = r(nms2(i))
    Series.DataLabelText = r(nms2(i))
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

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


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

上传具体实例测试。

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


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

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("财务汇总窗口").Controls("Chart5") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
Dim nms() As String = {"企业档案","投资资产","现金明细","供应系统","欠款明细"}
Dim nms2() As String = {"财务_待收款","资产时态_在投资金","可控金额","未支付合计","欠款合计"}
Dim nms3() As String = {"现金明细","欠款明细"}
Dim nms4() As String = {"可控金额","欠款合计"}
Dim sum As Double = 0
For i As Integer = 0 To nms.Length - 1
    sum += Tables(nms(i)).Compute("sum(" & nms2(i) & ")")
Next
For i As Integer = 0 To nms.Length - 1
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = nms(i)
    Dim cnt = Tables(nms(i)).Compute("sum(" & nms2(i) & ")")
    Series.Y(0) = cnt
    Series.DataLabelText = Math.Round(cnt*100/sum ,2) & "%"
Next
For i As Integer = 0 To nms3.Length - 1
    Dim r As Row = Tables(nms3(i)).Rows(Tables(nms3(i)).count-1)
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = nms3(i) & "(" & r(nms4(i)) & ")"
    Series.Y(0) = r(nms4(i))
    Series.DataLabelText = r(nms4(i))
Next
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)

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


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

上传具体项目说明你的问题。

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


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

参考代码,自己组合

 

Dim t As Table = Tables("表A")
Dim sum As Double = 0
For Each s As String In t.DataTable.GetValues("第一列", "第一列 is not null")
    Dim fdr As DataRow = t.DataTable.find("第一列='" & s & "'", "_sortkey desc")
    If fdr IsNot Nothing Then
        msgbox(fdr("第二列"))
        sum += fdr("第二列")
    End If
Next
msgbox(sum)

 


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


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

以下是引用yangwenghd在2018/8/30 9:41:00的发言:
感谢 感谢 可以让图表显示的大小在控件设置的大小相差不大吗?感谢 感谢 

 

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=120084&skin=0

 


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


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

测试了一下,做不到你所需要的效果。

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


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

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
Dim t As Table = Tables("表A")
Dim sum As Double = 0
For Each s As String In t.DataTable.GetValues("第一列", "第一列 is not null")
    Dim fdr As DataRow = t.DataTable.find("第一列='" & s & "'", "_sortkey desc")
    If fdr IsNot Nothing Then
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = s
        Series.Y(0) = fdr("第二列")
        Series.DataLabelText = fdr("第二列")       
        msgbox(fdr("第二列"))
        sum += fdr("第二列")       
        Chart.LegendVisible = True '显示图列
        Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)
    End If
Next


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


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

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("窗口1").Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
Dim t As Table = Tables("表A")
Dim sum As Double = 0
For Each s As String In t.DataTable.GetValues("第一列", "第一列 is not null")
    Dim fdr As DataRow = t.DataTable.find("第一列='" & s & "'", "_sortkey desc")
    If fdr IsNot Nothing Then
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = s
        Series.Y(0) = val(fdr("第二列"))
        Series.DataLabelText = fdr("第二列")
        Series.TooltipText = Series.Text & " : {#YVAL}" '显示数据
        series.DataLabelText = "{#YVAL}" '显示数据
        sum += fdr("第二列")
    End If
Next

Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.East '图列显示在东方(右方)


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


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

上传具体实例说明你的问题,截图说明有什么问题。

[此贴子已经被作者于2018/8/31 9:20:47编辑过]

 回到顶部
总数 19 1 2 下一页