以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 图示最近6个月的数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145196) |
-- 作者:禾成 -- 发布时间:2020/1/11 18:27:00 -- 图示最近6个月的数据 老师你好,我做了个实例,我想图示最近6个月的数据,代码应该怎么写? |
-- 作者:禾成 -- 发布时间: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 -- 谢谢有点蓝老师! 谢谢有点蓝老师! |