Foxtable(狐表)用户栏目专家坐堂 → [求助]饼形图如何生成图片文件


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

主题:[求助]饼形图如何生成图片文件

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


加好友 发短信
等级:四尾狐 帖子:815 积分:6992 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]饼形图如何生成图片文件  发帖心情 Post By:2019/9/26 15:33:00 [只看该作者]

 Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("批次统计临时表") '定义一个变量t引用数据表
    Dim sm As Integer = t.Compute("Sum(各环节成本)") '计算总数量
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
    Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
    Chart.SeriesList.Clear()
    For Each r As Row In t.Rows
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = r("各环节名称") & "(" & Format(r("各环节成本"),"#,###.00") & ")" '设置图系的标题
        Series.Y(0) = r("各环节成本") '指定值
        If r("各环节名称") = "其他环节" Then '如果是其他环节
            Series.Offset = 20 '那么图系偏离中心点20个像素.
        End If
        Series.DataLabelText = Math.Round(r("各环节成本")*100/sm,2) & "%" '计算百分比
    Next

 

由以上“饼形图”生成代码,如何生成图片文件,在EXCEL 打印模板中引用?

 

参考以下帮助,把自己搞糊涂了!

http://www.foxtable.com/webhelp/topics/1924.htm

 

麻烦老师指点一二,谢谢!

[此贴子已经被作者于2019/9/26 16:48:44编辑过]

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


加好友 发短信
等级:超级版主 帖子:107669 积分:547660 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 15:59:00 [只看该作者]

Dim Chart As New ChartBuilder 
Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("批次统计临时表") '定义一个变量t引用数据表
    Dim sm As Integer = t.Compute("Sum(各环节成本)") '计算总数量
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
    Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
    Chart.SeriesList.Clear()
    For Each r As Row In t.Rows
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = r("各环节名称") & "(" & Format(r("各环节成本"),"#,###.00") & ")" '设置图系的标题
        Series.Y(0) = r("各环节成本") '指定值
        If r("各环节名称") = "其他环节" Then '如果是其他环节
            Series.Offset = 20 '那么图系偏离中心点20个像素.
        End If
        Series.DataLabelText = Math.Round(r("各环节成本")*100/sm,2) & "%" '计算百分比
    Next
Chart.SaveImage(ProjectPath & "Images\myimg.wmf"
'生成Excel报表:

Dim 
Book As New XLS.Book(ProjectPath & "Attachments\销售统计.xls")
Book
.Build() 
Book.Save(ProjectPath & 
"Reports\销售统计.xls"
)

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


加好友 发短信
等级:四尾狐 帖子:815 积分:6992 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2019/9/26 16:21:00 [只看该作者]

以下是引用有点蓝在2019/9/26 15:59:00的发言:
Dim Chart As New ChartBuilder 
Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("批次统计临时表") '定义一个变量t引用数据表
    Dim sm As Integer = t.Compute("Sum(各环节成本)") '计算总数量
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
    Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
    Chart.SeriesList.Clear()
    For Each r As Row In t.Rows
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Length = 1 '一个系列只能包括一个值
        Series.Text = r("各环节名称") & "(" & Format(r("各环节成本"),"#,###.00") & ")" '设置图系的标题
        Series.Y(0) = r("各环节成本") '指定值
        If r("各环节名称") = "其他环节" Then '如果是其他环节
            Series.Offset = 20 '那么图系偏离中心点20个像素.
        End If
        Series.DataLabelText = Math.Round(r("各环节成本")*100/sm,2) & "%" '计算百分比
    Next
Chart.SaveImage(ProjectPath & "Images\myimg.wmf"
'生成Excel报表:

Dim 
Book As New XLS.Book(ProjectPath & "Attachments\销售统计.xls")
Book
.Build() 
Book.Save(ProjectPath & 
"Reports\销售统计.xls"
)

感谢蓝版,图片能够生成,但是又不知道怎么引用了?另外生成的图片特别小,怎么办呢?还得麻烦你再指点一下!

 

 

 还有如何将以下标题也引用到excel报表?


此主题相关图片如下:3.png
按此在新窗口浏览图片

 

 

蓝版,我左右琢磨了半天,实在用EXCEL模板无法将图表顺利引用。先将就直接打印窗口。待你有时间的话,再给予解答,谢谢您的帮助!

[此贴子已经被作者于2019/9/26 16:51:22编辑过]

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


加好友 发短信
等级:超级版主 帖子:107669 积分:547660 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 16:51:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/1242.htm

保存为图片默认就包含图例的

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


加好友 发短信
等级:四尾狐 帖子:815 积分:6992 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2019/9/26 17:05:00 [只看该作者]

以下是引用有点蓝在2019/9/26 16:51:00的发言:
参考:http://www.foxtable.com/webhelp/topics/1242.htm

保存为图片默认就包含图例的


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

这是参照帮助,生成的PDF 文件,效果十分不理想,同时没有将标题一同生成。

 

 

代码如下:

Dim Chart As New ChartBuilder
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t1 As Table = Tables("批次统计临时表") '定义一个变量t引用数据表
Dim sm As Integer = t1.Compute("Sum(各环节成本)") '计算总数量
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie '图表1类型改为Bar(条形)
Chart.SeriesList.Clear()
For Each r As Row In t1.Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = 1 '一个系列只能包括一个值
    Series.Text = r("各环节名称") & "(" & Format(r("各环节成本"),"#,###.00") & ")" '设置图系的标题
    Series.Y(0) = r("各环节成本") '指定值
    If r("各环节名称") = "其他环节" Then '如果是其他环节
        Series.Offset = 20 '那么图系偏离中心点20个像素.
    End If
    Series.DataLabelText = Math.Round(r("各环节成本")*100/sm,2) & "%" '计算百分比
Next
Chart.PrintWidth = 200
Chart.PrintHeight = 100
Chart.SaveImage(ProjectPath & "Reports\【单】批次各环节成本构成分析.wmf")
Dim Book As New XLS.Book(ProjectPath & "Attachments\【单】批次各环节成本构成分析.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(15,7).Value = New XLS.Picture(Chart.Image) '修改模板
Sheet(9,4).Value = "" & RJ & "" '修改模板
Sheet(9,5).Value = "操作员:" & User.Name '修改模板
Dim t As String = Date.Now
Dim wjm As String =  t.SubString(0,4) &  t.SubString(5,2) & t.SubString(8,2) & t.SubString(11,2)  & t.SubString(14,2)  & t.SubString(17,2)
Dim fl As String = ProjectPath & "Reports\" & wjm & ".pdf"
Book.Build() '生成细节区
Book.SaveToPDF(fl) '保存为PDF文件
Dim Proc As New Process '打开PDF文件
Proc.File = fl
Proc.Start()

[此贴子已经被作者于2019/9/26 17:05:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:107669 积分:547660 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/26 17:37:00 [只看该作者]

保存为bmp图片试试

Chart.SaveImage(ProjectPath & "Reports\【单】批次各环节成本构成分析.bmp")

至于图例,您都没有显示:http://www.foxtable.com/webhelp/topics/0991.htm

 回到顶部