Foxtable(狐表)用户栏目专家坐堂 → 图表合并列请教


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

主题:图表合并列请教

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


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
图表合并列请教  发帖心情 Post By:2016/10/31 14:59:00 [只看该作者]

Dim fnt As New Font("楷体",8,FontStyle.Underline)
Dim Chart As WinForm.Chart '定义一个图表变量

Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.VisualEffect = True '加上这一行,让你的图表更漂亮

Chart.ChartType = ChartTypeEnum.Bar  '图表显示为柱状图
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Dim count1 As Integer
If Tables("统计").Cols.Contains("非生产对应") Then
    count1 = Tables("统计").Cols.Count
Else
    count1 =  1
End If

'=-----------------------------------------------增加第一个系列
For Each dr As Row In Tables("统计").Rows
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = count1   '图表的点数
    Series.Text =dr("人员角色") & dr("平日休日")
    Series.MarkColor = Color.Green
    Dim q As Integer = 0
    For Each cl As Col In Tables("统计").Cols
        If cl.IsNumeric  AndAlso cl.name <> "非生产对应" AndAlso cl.name <> "总计"   Then
            Series.X(q) = q
            Chart.AxisX.SetValueLabel(q, cl.Name)
            Chart.AxisX.Font = fnt
            Series.Y(q) = dr(cl.name)
            q = q +1
            
        End If
    Next
    
    Series.TooltipText = dr("人员角色") & dr("平日休日") &  " : {#YVAL} H"
    Series.DataLabelText = "{#YVAL}"
    Series.DataLabelCompass = LabelCompassEnum.South
    
Next
Chart.AxisX.AnnoRotation = -45
'   chart.Stacked = True  '允许合并数据     '如果加入这句 会把 4列 合并在一起,  如何 做到  管理者 合并1列   非管理者合并1列
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
MainTable = Tables("统计")
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看


另外还有一个问题 ,用TreeView 去生成 图表

横坐标的 字 不会 消失, 会不断叠加上去 
Chart.SeriesList.Clear() '清除图表原来的图系, 没横坐标的 文字不起效果

可以试下  即时加入了
Chart.SeriesList.Clear()
 用一个按键生成图表,然后不断按这个键 ,会发现 图表的 横坐标 文字 会不断加深, 其实就是上一次的没有清空导致的.

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



[此贴子已经被作者于2016/10/31 15:20:01编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110818 积分:564034 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/31 15:55:00 [只看该作者]

合并列那个没有办法

生成图表前调用一下ClearValueLabel

Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
Chart.AxisX.ClearValueLabel
Chart.AxisY.ClearValueLabel

 回到顶部