以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  图示最近6个月的数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=145196)

--  作者:禾成
--  发布时间:2020/1/11 18:27:00
--  图示最近6个月的数据
老师你好,我做了个实例,我想图示最近6个月的数据,代码应该怎么写?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.rar



--  作者:禾成
--  发布时间:2020/1/12 13:23:00
--  老师有空指点一下
自己顶一下,快沉了
--  作者:有点蓝
--  发布时间:2020/1/12 20:59:00
--  
Dim g As New GroupTableBuilder("统计表1", DataTables("表A"))
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Totals.AddDef("金额")
g.FromServer = True
Dim d As Date = Date.Today.AddMonths(-5)
g.Filter = "日期 >= #" & new Date(d.Year,d.Month,1) & "#"
g.Build()
MainTable = Tables("统计表1")

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("统计表1") \'定义一个变量t引用数据表
t.Sort = "年,月"
Chart= e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
Chart.AxisX.ClearValueLabel
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = t.Rows.Count \'图系的数据点数等于表的行数
For i As Integer = 0 To t.Rows.Count - 1 \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = t.Rows(i)("金额") \'指定垂直坐标
    Chart.AxisX.SetValueLabel(i, t.Rows(i)("年") & "年" & t.Rows(i)("月") & "月")
Next
Chart.AxisX.AnnoRotation = - 45 \'X轴标示逆时针旋转45度
Chart.AxisX.AnnoWithLabels = True

--  作者:禾成
--  发布时间:2020/1/13 13:29:00
--  
如果要提取报价主表当前月份所有客户的金额做成一个饼形图表,
但思维很乱,请指教


Dim g As New CrossTableBuilder("统计表2", DataTables("报价主表"))
Dim d As Date = Date.Today.AddMonths(-0)
Dim filter As Date
g.Filter = "报价日期 >= #" & new Date(d.Year,d.Month,1) & "#"
g.Groups.AddDef("报价日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("报价日期", "月")
g.HGroups.AddDef("客户")
g.Totals.AddDef("金额", "金额")
g.FromServer = True

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim dt As DataTable = DataTables("统计表2") \'定义一个变量t引用数据表
Dim sm As Double = dt.Compute("Sum(金额)")

Chart= Forms("窗口1").Controls("Chart2") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie \'
Chart.SeriesList.Clear()
For Each dr As DataRow In dt.Select("","客户")
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Length = 1 \'一个系列只能包括一个值
    Series.Text = dr("客户") & "(" & dr("金额") & ")" \'设置图系的标题
    Series.Y(0) = dr("金额") \'指定值
    Series.DataLabelText = Math.Round(dr("金额")*100/sm,2) & "%"   
Next
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.East
[此贴子已经被作者于2020/1/13 13:33:21编辑过]

--  作者:有点蓝
--  发布时间:2020/1/13 14:58:00
--  
Dim g As New GroupTableBuilder("统计表2", DataTables("表A"))
Dim d As Date = Date.Today
Dim filter As Date
g.Filter = "日期 >= #" & new Date(d.Year,d.Month,1) & "#"
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Groups.AddDef("客户")
g.Totals.AddDef("金额")
g.FromServer = True
g.Build

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim dt As DataTable = DataTables("统计表2") \'定义一个变量t引用数据表
Dim sm As Double = dt.Compute("Sum(金额)")

Chart= Forms("窗口1").Controls("Chart1") \' 引用窗口中的图表
Chart.VisualEffect = True \'加上这一行,让你的图表更漂亮
Chart.ChartType = ChartTypeEnum.Pie \'
Chart.SeriesList.Clear()
For Each dr As DataRow In dt.Select("","客户")
    Series = Chart.SeriesList.Add() \'增加一个图系
    Series.Length = 1 \'一个系列只能包括一个值
    Series.Text = dr("客户") & "(" & dr("金额") & ")" \'设置图系的标题
    Series.Y(0) = dr("金额") \'指定值
    Series.DataLabelText = Math.Round(dr("金额")*100/sm,2) & "%"   
Next
Chart.LegendVisible = True \'显示图列
Chart.LegendCompass= CompassEnum.East

--  作者:禾成
--  发布时间:2020/1/13 21:22:00
--  谢谢有点蓝老师!
谢谢有点蓝老师!