Foxtable(狐表)用户栏目专家坐堂 → 制作图表求助


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

主题:制作图表求助

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
制作图表求助  发帖心情 Post By:2016/11/5 12:26:00 [显示全部帖子]

我使用帮助里面的代码进行制作图表,发现如下错误:

先上代码

Dim Chart As WinForm.Chart 

Dim Series As WinForm.ChartSeries 

Chart= Forms("chart").Controls("Chart1")

Chart.SeriesList.Clear()

For Each chart_series As String In DataTables("chart_opti").GetValues("Freightmethod")
MessageBox.Show(chart_series)   
Series = Chart.SeriesList.Add() 

    Series.Text = chart_series   
    Series.Length = 12 

    Chart.AxisX.Min = 1  

    Chart.AxisX.Max = 12 
    For Chart_wt As Double = 1 To 12 Step 1 
        Series.X(Chart_wt) = Chart_wt     
        Dim r As DataRow = DataTables("chart_opti").Find("[Freightmethod]= " & chart_series  & " And  [chargeWT] = " & Chart_wt)

        If r IsNot Nothing 
            Series.Y(Chart_wt) = r("cost") 

        End If
    Next


Next

错误截屏如下,主要为没有找到[AIR]这个列?


此主题相关图片如下:捕获.png
按此在新窗口浏览图片

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 12:27:00 [显示全部帖子]

是不是series的图系不能有“-”这个符号?

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 16:11:00 [显示全部帖子]


此主题相关图片如下:捕获.png
按此在新窗口浏览图片

我修改代码了,可以做出1~11个线,但是报错如上。

 

Dim r As DataRow = DataTables("chart_opti").Find("[Freightmethod] = '" & chart_series & "' And [chargeWT] = " & Chart_wt)


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 16:46:00 [显示全部帖子]

这一列是数字 chargeWT是数字列。double

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 16:55:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
我觉得问题不是在与等于号后面的字符或是数字格式有没有正确的框起来。

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 16:56:00 [显示全部帖子]

如果是find的代码错误,那么一条线都画不出来。

现在已经有11个数据点,就是在最后1个数据点的时候出错。

 


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 17:09:00 [显示全部帖子]

我在把其他的代码剥离掉


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 17:15:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4_201611051714.zip


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/5 23:32:00 [显示全部帖子]

。。。没注意看到7楼的。。是的部分行的内容有 单引号 ’。

我把内容修改下。


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/11/6 0:06:00 [显示全部帖子]

问题解决了,非常感谢。但是有一个没有搞清楚的是图系的数量。

当我定义Series.Length = 13 的时候有12个点。当我定义Series.Length = 12的时候只有11个点。。

但是教材里面是定义了12个月。

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("chart").Controls("Chart1")' 引用窗口中的图表
Chart.AxisX.Min=0
Chart.axisx.max=13
Chart.SeriesList.Clear()

For Each chart_series As String In DataTables("chart_opti").GetValues("Freightmethod")
Series = Chart.SeriesList.Add()

    Series.Text = chart_series   

    Series.Length = 13
series.LineThickNess=2
series.MarkSize=3
    For a As Double = 1 To 12 Step 1 

        Series.X(a) = a      

        Dim r As DataRow = DataTables("chart_opti").Find("Freightmethod = '" & chart_series  & "' And chargeWT = " & a)
        If r IsNot Nothing Then
            Series.Y(a) = r("cost") 

        End If
    Next
Next

----------------------

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= Forms("chart").Controls("Chart1")' 引用窗口中的图表
Chart.AxisX.Min=0
Chart.axisx.max=13
Chart.SeriesList.Clear()

For Each chart_series As String In DataTables("chart_opti").GetValues("Freightmethod")
Series = Chart.SeriesList.Add()

    Series.Text = chart_series   

    Series.Length = 12
series.LineThickNess=2
series.MarkSize=3
    For a As Double = 1 To 12 Step 1 

        Series.X(a) = a      

        Dim r As DataRow = DataTables("chart_opti").Find("Freightmethod = '" & chart_series  & "' And chargeWT = " & a)
        If r IsNot Nothing Then
            Series.Y(a) = r("cost") 

        End If
    Next
Next

 

下面是教材内容:

显然我们无法使用绑定列的方法,只能手工编码增加数据点,不过代码也很简单:

Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.SeriesList.Clear() '清除图表原来的图系
For Each Year As String In DataTables("统计表1").GetValues("年")
    Series = Chart.SeriesList.Add() '每年一个图系
    Series.Text = Year  '指定图系名称为年份
    Series.Length = 12  '指定图系的数据点数,1年12个月
    Chart.AxisX.Min = 1  '指定X轴的最小值,也就是从1月开始
    Chart.AxisX.Max = 12 ''指定X轴的最大值,一年只有12个月
    For Month As Integer = 1 To 12 '逐月设置坐标
        Series.X(Month) = Month      '指定水平坐标为月份
        Dim r As DataRow = DataTables("统计表1").Find("年 = " & Year & " And  月 = " & Month)'找出对应年月的行
        If r IsNot Nothing '如果找到对应年月的行
            Series.Y(Month) = r("数量") '指定数量作为垂直坐标
        End If
    Next
Next


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