以文本方式查看主题

-  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 \'图列显示在南方(底端)


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


--  作者:lgj716330
--  发布时间:2015/12/19 15:26:00
--  
是不是只有通过绑定才行呢
--  作者:Hyphen
--  发布时间:2015/12/19 16:00:00
--  
上传例子测试
--  作者:lgj716330
--  发布时间:2015/12/19 16:22:00
--  
好的,另外这里面还有个问题就是其中一个柱形图的数据没显示出来,不知怎么回事
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.foxdb


--  作者:Hyphen
--  发布时间:2015/12/19 17:01:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.foxdb


--  作者: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
--  
好的, 知道了