以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]错误提示  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=81016)

--  作者:kaiyu
--  发布时间:2016/2/16 15:07:00
--  [求助]错误提示

Specified argument was out of the range of valid values.
Parameter name: index

这个是错误指示,就是利用窗口表中的数据生成一个目录树,出错的代码是:

  Dim dt1 As DataTable =t.DataTable
    tv.BuildTree(dt1,"设备名称|处理类型|机构或部位|故障现象|原因分析")


--  作者:大红袍
--  发布时间:2016/2/16 15:10:00
--  

这两句代码不应该报错的。你看看目录树的AfterSelectNode事件是否有问题。


--  作者:kaiyu
--  发布时间:2016/2/16 15:14:00
--  

目录树只有双击节点有事件,没有其它事件,相同的东西,在另一个窗口中运行正常,在这里就是不行。


--  作者:大红袍
--  发布时间:2016/2/16 15:16:00
--  

贴出完整的代码。这两句代码不会报这个错的。


--  作者:kaiyu
--  发布时间:2016/2/16 15:22:00
--  
Dim t As Table = Tables("TX设备保养统计查询窗口_table2")
Dim tv As WinForm.TreeView = Forms("TX设备保养统计查询窗口").Controls("TreeView1")
    Dim i As new SQLCommand
    Dim dt As DataTable
    i.C
    i.CommandText ="sel ect TX设备表._Identify as 设备ID,所属部门,设备名称,公司名称,工作日期,处理类型,机构或部位,故障现象,原因分析,处理措施,耗时 as 维修时间,停时 as 停产时间,TX设备维修记录表.经办人 f rom {TX设备表} inner join {TX设备维修记录表} on TX设备表._Identify =TX设备维修记录表.设备ID "
    dt =i.ExecuteReader
    t.DataSource = dt
    t.AutoSizeCols
    t.Cols("故障现象").Width =120
    t.Cols("原因分析").Width =150
    t.Cols("处理措施").Width =150
    t.Cols("设备ID").Visible =False
    Dim dt2 As DataTable =t.DataTable
    tv.BuildTree(dt2,"设备名称|处理类型|机构或部位|故障现象|原因分析")
tv.Nodes.Insert("显示所有行",0)
forms("TX设备保养统计查询窗口").Controls("SplitContainer3").Panel1Collapsed =False

--  作者:大红袍
--  发布时间:2016/2/16 15:29:00
--  

应该是你表没有数据,导致目录树没有数据,导致这句代码有问题 tv.Nodes.Insert("显示所有行",0)

 

把你的sql语句测试一下 http://www.foxtable.com/help/topics/1484.htm

 


--  作者:kaiyu
--  发布时间:2016/2/17 11:42:00
--  

SQL语句没问题,已生成窗口表,经测试,

tv.BuildTree(dt1,"设备名称|处理类型|机构或部位|故障现象|原因分析")

是这句代码里面后面两列有问题,只要不加故障现象和原因分析就不报错,这两列任意加一列都会报错.

请问这是什么原因造成的.


--  作者:大红袍
--  发布时间:2016/2/17 11:51:00
--  

 这句代码不应该报错的。

 

 做一个简单的例子发上来测试。