Foxtable(狐表)用户栏目专家坐堂 → 图表的横坐piaoX轴的刻度如何控制?


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

主题:图表的横坐piaoX轴的刻度如何控制?

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
图表的横坐piaoX轴的刻度如何控制?  发帖心情 Post By:2019/1/9 16:12:00 [只看该作者]

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



图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190109155548.jpg
图片点击可在新窗口打开查看

如上图,下面的横坐标会随机变动,如果想根据每个产品编码的采购日期的数量来显示横轴的点数,应该如何控制?
即每个不同的产品,其有多少个采购日期横轴就显示几个点

谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/9 16:33:00 [只看该作者]

Dim cd As String = e.Form.Controls("ComboBox_pcode").Value
If cd > "" Then
    '---生成图表
    Dim rqs As List(of String) = DataTables("表A").GetValues("采购日期","产品编码 = '" & cd & "'","采购日期")
   
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
   
    Chart.DataSource = "表A"  '设置绑定表
    Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.Axisx.ClearValueLabel  '清除设置的数值字符标示
   
    ' Chart.AxisX.Max = rqs.Count + 1 '指定X轴的最大值
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = rqs.Count   '设置图系的长度
    For i As Integer = 0 To rqs.Count - 1  '指定每个数据点的位置
        If i <  rqs.Count  Then
            Series.X(i) = i '指定水平坐标
            Dim r As DataRow = DataTables("表A").Find("采购日期 = '" & rqs(i) & "'") '找出对应年月的行
            If r IsNot Nothing '如果找到对应年月的行
                Series.Y(i) = r("单价") '指定数量作为垂直坐标
                Chart.AxisX.SetValueLabel(i,format(r("采购日期"), "yyyyMMdd")) '指定字符表示
            End If
        End If
    Next
    Chart.AxisX.AnnoRotation = - 45
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Series.LineColor = Color.LightSeaGreen
    Series.MarkShape = MarkShapeEnum.Dot
    Series.MarkColor = Color.Red
End If

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/1/9 17:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190109155548.jpg
图片点击可在新窗口打开查看

我是想控制刻度线的数量,现在刻度好象是随时显示的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/9 17:52:00 [只看该作者]

Dim cd As String = e.Form.Controls("ComboBox_pcode").Value
If cd > "" Then
    '---生成图表
    Dim rqs As List(of String) = DataTables("表A").GetValues("采购日期","产品编码 = '" & cd & "'","采购日期")
   
    Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
   
    Chart.DataSource = "表A"  '设置绑定表
    Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.Axisx.ClearValueLabel  '清除设置的数值字符标示
   
    ' Chart.AxisX.Max = rqs.Count + 1 '指定X轴的最大值
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = rqs.Count   '设置图系的长度
    Chart.AxisX.Major = 1
    For i As Integer = 0 To rqs.Count - 1  '指定每个数据点的位置
        If i <  rqs.Count  Then
            Series.X(i) = i '指定水平坐标
            Dim r As DataRow = DataTables("表A").Find("采购日期 = '" & rqs(i) & "'") '找出对应年月的行
            If r IsNot Nothing '如果找到对应年月的行
                Series.Y(i) = r("单价") '指定数量作为垂直坐标
                Chart.AxisX.SetValueLabel(i,format(r("采购日期"), "yyyyMMdd")) '指定字符表示
            End If
        End If
    Next
    Chart.AxisX.AnnoRotation = - 45
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Series.LineColor = Color.LightSeaGreen
    Series.MarkShape = MarkShapeEnum.Dot
    Series.MarkColor = Color.Red
End If

 回到顶部