Foxtable(狐表)用户栏目专家坐堂 → 在复选组合框选择值后生成的图表问题


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

主题:在复选组合框选择值后生成的图表问题

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


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
在复选组合框选择值后生成的图表问题  发帖心情 Post By:2018/8/3 20:59:00 [只看该作者]

在复选组合框选择值后生成的图表后,图表的滚动条代码无效了,如何处理?

1、在复选组合框TextChanged事件中写入:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim tb1 As Table = Tables("标录分析_Table1") '定义一个变量t引用数据表
Dim chk As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
If chk.Text = "" Then
    MessageBox.Show("请选择球号后执行!")
Else
    Dim lst As new List(Of String)
    lst.AddRange(chk.Text.Split(","))
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
    'Chart.ChartType = ChartTypeEnum.Bar
    Chart.AxisX.ClearValueLabel  '清除所有通过SetValueLabel设置的数值字符标示
    Chart.SeriesList.Clear() '清除图表原来的图系
    Dim gd As C1Chart.C1Chart = Chart.BaseControl  '图表加滚动条
    For Each c As String In lst
        Series = Chart.SeriesList.Add() '增加一个图系
        Series.Text = c '设置图系的标题
        Series.Length = tb1.Rows.Count '设置图系的长度
        Series.DataLabelText = "{#YVAL}%" '所有线条显示数据标示
        For i As Integer = 0 To tb1.Rows.Count - 1
            Series.X(i) = i
            Series.Y(i) = Round2(tb1.Rows(i)(c)* 100,2)
            Chart.AxisX.SetValueLabel(i,Format(tb1.Rows(i)("开标日期"),"yy-MM-dd") & vblf & Format(tb1.Rows(i)("本期概算"),"0.00"))
        Next
        Series.FitType = FitTypeEnum.Spline  '采用平滑线条
    Next
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South '图列显示在南方(底端)
    Chart.AxisX.AnnoRotation = - 45 'X轴标示逆时针旋转45度
    Dim fnt As New Font("黑体",10)
    Chart.AxisX.Font = fnt
    gd.ChartArea.AxisX.ScrollBar.min = 0
    gd.ChartArea.AxisX.ScrollBar.max = tb1.Rows.count
    gd.ChartArea.AxisX.ScrollBar.Scale = 60 / tb1.Rows.count   '比例,自己算  '图表加滚动条
    
End If

2、在在复选组合框Enter事件中写入:
e.Sender.ComboList = "中标比例|公司比例"

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表20180731.table




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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/3 21:05:00 [只看该作者]

    gd.ChartArea.AxisX.ScrollBar.min = 0
    gd.ChartArea.AxisX.ScrollBar.max = tb1.Rows.count
    gd.ChartArea.AxisX.ScrollBar.Scale = 60 / tb1.Rows.count   '比例,自己算  '图表加滚动条
    gd.ChartArea.AxisX.ScrollBar.visible = True

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8070 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2023/8/9 9:29:00 [只看该作者]


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

老师,滚动条出来了,谢谢您。
还有个问题,图表中有些进度条太短,字体溢出,没办法体现字信息
这个字体,颜色想改下
'Chart.SeriesList.DataLabelForeColor = Color.black
'Chart.Series.DataLabelForeColor = Color.black

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8070 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2023/8/9 9:30:00 [只看该作者]

这两句话试了下都不行

Dim Chart As WinForm.Chart
Chart= Forms("窗口1").Controls("Chart1")
Chart.ChartType = ChartTypeEnum.Gantt
'图表类型为甘特图
Chart.Inverted = True
'对调X轴和Y轴位置
Chart.AxisY.DateType= True
'Y轴为日期型
Chart.AxisY.AnnoFormatString = "MM-dd"
'设置Y轴的标示格式
Chart.AxisY.MinDate = #01/01/2010#
'设置Y轴的起始日期
Chart.AxisY.MaxDate = #04/30/2010#
'设置Y轴的终止日期
Chart.AxisX.GridMajorVisible = False
'隐藏X轴的网格线
With
Chart.SeriesList
    .AddGanttSeries("任务一", #1/1/2010#, #3/9/2010#)
    .AddGanttSeries("任务二", #1/23/2010#, #2/14/2010#)
    .AddGanttSeries("任务三", #1/21/2010#, #2/24/2010#)
    .AddGanttSeries("任务四", New DateTime() {#1/22/2010#, #2/28/2010#}, New DateTime() {#2/12/2010#, #3/24/2010#})
    .AddGanttSeries("任务五", New DateTime() {#2/13/2010#, #3/8/2010#}, New DateTime() {#3/5/2010#, #3/31/2010#})
    .AddGanttSeries("任务六", #3/15/2010#, #4/20/2010#)
    .AddGanttSeries("任务七", #4/6/2010#, #4/30/2010#)
    .AddGanttLabels("M月d日")

End
with


 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:893 积分:8070 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2023/8/9 9:30:00 [只看该作者]

Chart.SeriesList.DataLabelForeColor = Color.black
Chart.Series.DataLabelForeColor = Color.black

 回到顶部