以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 图表合并列请教 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92303) |
-- 作者:ljh29206 -- 发布时间: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 \'图列显示在南方(底端) 另外还有一个问题 ,用TreeView 去生成 图表 横坐标的 字 不会 消失, 会不断叠加上去 Chart.SeriesList.Clear() \'清除图表原来的图系, 没横坐标的 文字不起效果 可以试下 即时加入了 Chart.SeriesList.Clear() 用一个按键生成图表,然后不断按这个键 ,会发现 图表的 横坐标 文字 会不断加深, 其实就是上一次的没有清空导致的. [此贴子已经被作者于2016/10/31 15:20:01编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/10/31 15:55:00 -- 合并列那个没有办法 生成图表前调用一下ClearValueLabel Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表 Chart.SeriesList.Clear() \'清除图表原来的图系 Chart.AxisX.ClearValueLabel Chart.AxisY.ClearValueLabel |