Foxtable(狐表)用户栏目专家坐堂 → [求助]图表X轴字符获取


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

主题:[求助]图表X轴字符获取

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


加好友 发短信
等级:婴狐 帖子:24 积分:330 威望:0 精华:0 注册:2019/8/7 15:51:00
[求助]图表X轴字符获取  发帖心情 Post By:2025/1/3 14:22:00 [只看该作者]

图片点击可在新窗口打开查看

各位大神,想请教一下。怎么获取鼠标点击上方图表的柱状的X轴的字符。{技术部,品质管理部,业务部,制造部}这4个字符。

If c1.CoordToDataIndex(e.x, e.y ,s ,p) Then '如果鼠标位置存在有效的图序和数据点
    Dim Seriess As WinForm.ChartSeries = c1.SeriesList(s) '获得鼠标位置的图序
    msg  = p
End If

这个只能获取点位,1,2,3,4这种。




[此贴子已经被作者于2025/1/3 14:22:55编辑过]

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


加好友 发短信
等级:超级版主 帖子:111626 积分:568248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/3 14:42:00 [只看该作者]

按顺序取字符不就行了,1=技术部,2=品质管理部

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


加好友 发短信
等级:婴狐 帖子:24 积分:330 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2025/1/3 14:56:00 [只看该作者]

这个部的少,我就是用的这种方式,但是制造部下面有差不多20个柱状。。。怎么弄。

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


加好友 发短信
等级:超级版主 帖子:111626 积分:568248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/3 15:32:00 [只看该作者]

生成图表的代码发上来

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


加好友 发短信
等级:婴狐 帖子:24 积分:330 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2025/1/4 8:05:00 [只看该作者]

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
If c1.CoordToDataIndex(e.x, e.y ,s ,p) Then '如果鼠标位置存在有效的图序和数据点
    Dim Seriess As WinForm.ChartSeries = c1.SeriesList(s) '获得鼠标位置的图序
    msg  = p
End If
Dim cus As String
Dim cs As String
Select Case msg
    Case 0
        cus = "技术部"
    Case 1
        cus = "品质管理部"
    Case 2
        cus = "业务部"
    Case 3
        cus = "制造部"
End Select
e.Form.Controls("Label6").text = cus        '获取鼠标点的部门

    Dim lst4 As List(Of String) = dtt.GetValues("deptname2", "topdeptnamexx = '" & cus & "' and deptname2 Is not null ") '获得课名称集合
    Chart = e.Form.Controls("Chart4")  ' 引用窗口中的图表
    Chart.VisualEffect = True '加上这一行,让你的图表更漂亮
    Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
    Chart.SeriesList.Clear() '清除图表原来的图系
    chart.AxisX.ClearValueLabel
    chart.AxisY.ClearValueLabel
    Series = Chart.SeriesList.Add() '增加一个图系
    Dim d As Integer = 0
    Series.Length = lst4.Count '图系的数据点数等于表的行数
    Series.Text = "计划加班总数"
    For k As Integer = 0 To lst4.Count - 1 '指定每个数据点的位置
        Dim Averageovertime As Integer = 0
        Dim dhi As Integer = 0
        Series.X(k) = k '指定水平坐标
        Dim drs As List(of DataRow)
        drs = dtt.Select("[deptname2] = '" & lst4(k) & "'and [bd] = '" & dt3 & "'")
        If drs.Count > 0 Then
            For Each  dttr As  DataRow In drs
                Averageovertime  = dttr("otsum") * dttr("people") +  Averageovertime   '统计出公司总计划加班总数
            Next
            If Averageovertime > 0 Then
                Series.Y(k) = CInt(Format(Averageovertime, "0"))
                If Averageovertime > d Then
                    d = Averageovertime
                End If
            Else
                Series.Y(k) = 0
            End If
        Else
            Series.Y(k) = 0
        End If
        Chart.AxisX.SetValueLabel(k, lst4(k)) '指定字符表示
    Next
    Series.TooltipText = "{#YVAL}"
    Series.DataLabelText = "{#YVAL}"
    series.DataLabelForeColor = Color.blue
    Series.DataLabelCompass =LabelCompassEnum.North



这里只有4个部,还能用这种转换方式来获取点击部门字符来统计人数信息。
后面到了课就有20几个了。。。

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


加好友 发短信
等级:超级版主 帖子:111626 积分:568248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/4 9:51:00 [只看该作者]

5楼是点击1楼的图后生成的子图吧。我要的是1楼的图表生成的代码!

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


加好友 发短信
等级:超级版主 帖子:111626 积分:568248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/4 10:22:00 [只看该作者]

如果技术部这些内容也是使用GetValues获取的,那么一样从GetValues里按索引取内容即可

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


加好友 发短信
等级:婴狐 帖子:24 积分:330 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2025/1/4 10:59:00 [只看该作者]

这边都是使用GetValues来获取字符的,我现在是需要鼠标点击最下面第三个图表时继续出第四个图表,第三个图X轴太多点,而且点击第二个图时第三个图都会不同。所以无法继续使用定位来转换X轴的字符。如果可以通过鼠标几点柱状来直接获取到该柱状的X轴字符是最简单了。不过查了好久帮助好像没有类似的代码。


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


加好友 发短信
等级:婴狐 帖子:24 积分:330 威望:0 精华:0 注册:2019/8/7 15:51:00
  发帖心情 Post By:2025/1/4 11:00:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:111626 积分:568248 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/1/4 11:10:00 [只看该作者]

都是使用GetValues来获取字符】那全部一样从GetValues里按索引取值就行了

 回到顶部
总数 11 1 2 下一页