以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图表的横坐piaoX轴的刻度如何控制?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129958)

--  作者:happyft
--  发布时间:2019/1/9 16:12:00
--  图表的横坐piaoX轴的刻度如何控制?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图表3.foxdb



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

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

谢谢!

--  作者:有点甜
--  发布时间: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
--  发布时间:2019/1/9 17:47:00
--  

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

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

--  作者:有点甜
--  发布时间: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