以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]图表生成出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55493)

--  作者:utcxray
--  发布时间:2014/8/18 9:55:00
--  [求助]图表生成出错
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim tbl As DataTable = DataTables("出库") \'定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("销售人员") \'获得人员名称集合
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = lst.Count \'设置图系的长度
For i As Integer = 0 To lst.Count - 1 \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = tbl.Compute("Sum(出库数量)","[销售人员] = \'" & lst(i) & "\'") \'指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示
此段代码执行后出现下述提示。表名称】及列名称均正确。此段代码是复制帮助中修改的。


.NET Framework 版本:2.0.50727.5483
Foxtable 版本:2014.8.6.1
错误所在事件:SystemIdle
详细错误信息:
未将对象引用设置到对象的实例。


--  作者:有点甜
--  发布时间:2014/8/18 10:00:00
--  

 应该是没错的,如果错,应该是红色代码有问题,你排查一下。

 

Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim tbl As DataTable = DataTables("出库") \'定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("销售人员", "销售人员 is not null") \'获得人员名称集合
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = lst.Count \'设置图系的长度
For i As Integer = 0 To lst.Count - 1 \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = tbl.Compute("Sum(出库数量)","[销售人员] = \'" & lst(i) & "\'") \'指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示


--  作者:Bin
--  发布时间:2014/8/18 10:00:00
--  
错误代码在 SystemIdle  

把这里面的代码发出来看看.



--  作者:有点甜
--  发布时间:2014/8/18 10:01:00
--  

 但是提示是 SystemIdle 事件有错。

 

 你去看一下你菜单的 SystemIdle 事件和 项目事件的 SystemIdle 是否写错代码。


--  作者:utcxray
--  发布时间:2014/8/18 10:09:00
--  
我也纳闷,整个项目已运行了将近2月,一直正常,这个图表分析是昨天才添加的,运行出现问题,
--  作者:有点甜
--  发布时间:2014/8/18 10:10:00
--  

 那你不用这个功能是否就不报错?

 

 有可能是数据有问题,导致代码出问题了,你去看对应事件的代码。

[此贴子已经被作者于2014-8-18 10:10:23编辑过]

--  作者:utcxray
--  发布时间:2014/8/18 10:12:00
--  
换了表及列名也不行。
图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

--  作者:utcxray
--  发布时间:2014/8/18 10:13:00
--  
Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim tbl As DataTable = DataTables("采购明细") \'定义一个变量tbl引用数据表
Dim lst As List(Of String) = tbl.GetValues("供应商") \'获得人员名称集合
Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表
Chart.SeriesList.Clear() \'清除图表原来的图系
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = lst.Count \'设置图系的长度
For i As Integer = 0 To lst.Count - 1 \'指定每个数据点的位置
    Series.X(i) = i \'指定水平坐标
    Series.Y(i) = tbl.Compute("Sum(金额)","[供应商] = \'" & lst(i) & "\'") \'指定垂直坐标
    Chart.AxisX.SetValueLabel(i, lst(i)) \'指定字符表示
Next
Chart.AxisX.AnnoWithLabels = True \'启用字符标示

--  作者:Bin
--  发布时间:2014/8/18 10:15:00
--  
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。 或者上例子.

--  作者:有点甜
--  发布时间:2014/8/18 10:16:00
--  

 请看2楼,你用代码调试一下哪里错了

 

http://www.foxtable.com/help/topics/1485.htm