以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于图表分析中的同比增长 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78883) |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 14:41:00 -- 关于图表分析中的同比增长 请帮忙看下代码有没有问题,统计表中有同比数据,在图表中没有显示,不知是不是代码写得哪里有问题 Dim b As New SQLgroupTableBuilder("零售数量同期分析","零售业务") b.AddTable("零售业务","部门名称","部门档案","部门名称") b.Groups.AddDef("所属单位") b.Groups.AddDef("部门类型") b.Groups.AddDef("上级部门","部门") b.Groups.AddDef("所属日期", DateGroupEnum.Year, "年") b.Groups.AddDef("所属日期", "月") b.Totals.AddDef("零售数量") b.SamePeriodGrowth = True b.Decimals = 2 \'小数点取0位 b.Filter = Filter b.Build \'生成统计表 Dim Chart As WinForm.Chart \'定义一个图表变量 Dim Series As WinForm.ChartSeries \'定义一个图系变量 Chart= e.Form.Controls("销量同期") \' 引用窗口中的图表 Chart.ChartType = ChartTypeEnum.Bar \'设置图表类型 Chart.ChartType2 = ChartTypeEnum.XYPlot \'图表2类型该为线形 Chart.SeriesList.Clear() \'清除图表原来的图系 Series = Chart.SeriesList.Add() \'给图表2增加一个图系 chart.AxisX.ClearValueLabel chart.AxisY.ClearValueLabel Chart.SeriesList2.Clear() \'清除图表原来的图系 Series = Chart.SeriesList2.Add() \'给图表2增加一个图系 chart.AxisX.ClearValueLabel chart.AxisY2.ClearValueLabel For Each Year As String In DataTables("零售数量同期分析").GetValues("年") Series = Chart.SeriesList.Add() \'每年一个图系 Series.Text = Year \'指定图系名称为年份 Series.Length = 12 \'指定图系的数据点数,1年12个月 Chart.AxisX.Min = 1 \'指定X轴的最小值,也就是从1月开始 Chart.AxisX.Max = 12 \'\'指定X轴的最大值,一年只有12个月 For Month As Integer = 1 To 12 \'逐月设置坐标 Series.X(Month) = Month \'指定水平坐标为月份 Chart.AxisX.SetValueLabel(1, "一月份") Chart.AxisX.SetValueLabel(2, "二月份") Chart.AxisX.SetValueLabel(3, "三月份") Chart.AxisX.SetValueLabel(4, "四月份") Chart.AxisX.SetValueLabel(5, "五月份") Chart.AxisX.SetValueLabel(6, "六月份") Chart.AxisX.SetValueLabel(7, "七月份") Chart.AxisX.SetValueLabel(8, "8月份") Chart.AxisX.SetValueLabel(9, "九月份") Chart.AxisX.SetValueLabel(10, "十月份") Chart.AxisX.SetValueLabel(11, "十一月份") Chart.AxisX.SetValueLabel(12, "十二月份") Dim r As DataRow = DataTables("零售数量同期分析").Find("年 = " & Year & " And 月 = " & Month)\'找出对应年月的行 If r IsNot Nothing \'如果找到对应年月的行 Series.Y(Month) = r("零售数量") \'指定数量作为垂直坐标 Series.Y2(Month) = r("零售数量stp") \'指定数量作为垂直坐标 End If Next Next Chart.AxisX.AnnoWithLabels = True \'启用字符标示 Chart.TopMost = True \'不同图表间切换 Chart.SeriesList(0).DataLabelText = "{#YVAL}" \'显示数据标记的值 Chart.SeriesList(0).TooltipText = "{#YVAL}" \'停在数据标记上时是否显示值 Chart.SeriesList(1).DataLabelText = "{#YVAL}" Chart.SeriesList(1).TooltipText = "{#YVAL}" Chart.LegendVisible = True \'显示图列 Chart.LegendCompass= CompassEnum.South \'图列显示在南方(底端) |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 15:26:00 -- 是不是只有通过绑定才行呢 |
||||
-- 作者:Hyphen -- 发布时间:2015/12/19 16:00:00 -- 上传例子测试 |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 16:22:00 -- 好的,另外这里面还有个问题就是其中一个柱形图的数据没显示出来,不知怎么回事
|
||||
-- 作者:Hyphen -- 发布时间:2015/12/19 17:01:00 --
|
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 21:20:00 -- 谢谢Hyphen |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/19 22:38:00 -- 再问一下,数据标示能够以百分比形式显示吗 |
||||
-- 作者:大红袍 -- 发布时间:2015/12/20 12:04:00 -- 以下是引用lgj716330在2015/12/19 22:38:00的发言:
再问一下,数据标示能够以百分比形式显示吗
不可以,纵坐标是什么值,就只能显示什么值。
你可以乘以100来显示,但百分号无法显示。 |
||||
-- 作者:lgj716330 -- 发布时间:2015/12/20 17:11:00 -- 好的, 知道了 |