以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]画图X轴标识重画的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34354) |
-- 作者:ifastudy -- 发布时间:2013/6/6 10:28:00 -- [求助]画图X轴标识重画的问题 如下图.点中树型目录的月份,会自动绘出一个月的产能利用情况.只点一次的话绘图没有问题,多点几个月份时,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 |
-- 作者:狐狸爸爸 -- 发布时间:2013/6/6 10:45:00 -- 看看这个:
每次设置新的标题之前,执行一次:
清除上一次的设置。 [此贴子已经被作者于2013-6-6 10:45:32编辑过]
|
-- 作者:ifastudy -- 发布时间:2013/6/6 10:51:00 -- 搞定,这谢谢狐爸 |