Foxtable(狐表)用户栏目专家坐堂 → [求助]画图X轴标识重画的问题


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

主题:[求助]画图X轴标识重画的问题

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


加好友 发短信
等级:童狐 帖子:250 积分:1875 威望:0 精华:1 注册:2013/5/25 18:06:00
[求助]画图X轴标识重画的问题  发帖心情 Post By:2013/6/6 10:28:00 [只看该作者]

如下图.点中树型目录的月份,会自动绘出一个月的产能利用情况.只点一次的话绘图没有问题,多点几个月份时,X轴标识重复会画. 绘图代码如下:

If e.Node.Level = 1
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim XLable As String
    Dim i As Integer =0
    
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    Chart.AxisY.Min = 0 '指定Y轴的最小值
    Chart.AxisY.Max =120 '指定Y轴的最大值
    Chart.ChartType = ChartTypeEnum.Bar '图表类型改为Bar(条形)
    Chart.Stacked = True
    Chart.AxisX.GridMajorVisible=True
    Chart.AxisY.GridMajorVisible=True
    Chart.AxisX.AnnoWithLabels = True
Chart.AxisX.AnnoRotation = -30
    
    
    Chart.SeriesList.Clear() '清除图表原来的图系
    
    
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = "翻单产能" '设置图系的标题
    Series.Length = DataTables("生产日历").Compute("Count(日期)","[月份]='" & e.Node.Name & "'")
    
    'Series.DataLabelText = "{#YVAL}"
    Series.FillColor = Color.Green
    i=0
    For Each r As DataRow In DataTables("生产日历").Select("月份='" & e.Node.Name & "'")
        XLable = r("日期")
        Series.X(i)= i
        Series.Y(i)=int(r("产能系数")*r("翻单产能比例")*100)
        Chart.AxisX.SetValueLabel(i, XLable)
        i = i+1
    Next
    
    
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = "首单产能" '设置图系的标题
    Series.Length = DataTables("生产日历").Compute("Count(日期)","[月份]='" & e.Node.Name & "'")
    Series.DataLabelText = "{#YVAL}"
    Series.FillColor = Color.Blue
    i=0
    For Each r As DataRow In DataTables("生产日历").Select("月份='" & e.Node.Name & "'")
        XLable = r("日期")
        Series.X(i)= i
        Series.Y(i)=int(r("产能系数")*(1-r("翻单产能比例"))*100)
        Chart.AxisX.SetValueLabel(i, XLable)
        i = i+1
    Next
    
    '------------------------
    'Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
    
End If


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


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/6/6 10:45:00 [只看该作者]

看看这个:
 
http://www.foxtable.com/help/topics/2319.htm


 

每次设置新的标题之前,执行一次:
Chart.AxisX.ClearValueLabel

 

清除上一次的设置。

[此贴子已经被作者于2013-6-6 10:45:32编辑过]

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


加好友 发短信
等级:童狐 帖子:250 积分:1875 威望:0 精华:1 注册:2013/5/25 18:06:00
  发帖心情 Post By:2013/6/6 10:51:00 [只看该作者]

搞定,这谢谢狐爸

 回到顶部