以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样的提示是什么意见?如何改进?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19047)

--  作者:y2287958
--  发布时间:2012/4/25 20:26:00
--  这样的提示是什么意见?如何改进?

RT

代码如下,但却出现如图提示,请帮助!

 

If e.DataCol.Name = "第三列"
    Dim ss() As String = e.DataRow("第二列").split(vbcrlf)
    e.DataRow("第三列") = ss(e.NewValue)
End If


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

期待答复,谢谢!


--  作者:y2287958
--  发布时间:2012/4/25 20:48:00
--  
这是文件。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5 - 副本.zip


--  作者:程兴刚
--  发布时间:2012/4/25 20:57:00
--  

没有这么用的!

 

第一、第三列的内容必须是数值,

第二、当第三列再度变化,又会变成非数值型

第三、如果您在第二列分别输入:9、8、7、6、5、4、3、2、1、0并逐个回车分割,再在第三列输入任意0~9的数字,程序会进入无限循环地更新第三列的值,导致foxtable崩溃并自动退出。

 

不明白您得意图,也就无法帮您解决或者修改代码!

[此贴子已经被作者于2012-4-25 21:02:58编辑过]

--  作者:y2287958
--  发布时间:2012/4/25 21:01:00
--  
这只是练习过程的一次试验,只是想知道原因而已。

谢谢指导!
[此贴子已经被作者于2012-4-25 21:09:21编辑过]

--  作者:程兴刚
--  发布时间:2012/4/25 21:29:00
--  
以下是引用y2287958在2012-4-25 21:01:00的发言:
这只是练习过程的一次试验,只是想知道原因而已。

谢谢指导!
[此贴子已经被作者于2012-4-25 21:09:21编辑过]

 

我告诉您原因:

 

第一、因为这个:ss(e.NewValue),这里的参数必须是数字,而且不能超过集合总数的范围,所以,必须具备两个条件:1、数值。2、这个数值不能超过集合范围;

第二、因为第二列包含了非数值内容,加入在第三列输入的值符合要求,但e.DataRow("第三列") = ss(e.NewValue)代码的原因又会得到非数值的字符串,导致第一条错误的产生;

第三、加入第二列的值是这样:

                                           9
                                           8
                                           7

                                           6 

                                           5 

                                           4 

                                           3 

                                           2 

                                           1 

                                           0

假如您在第三列输入0,得到的是9,当第三列变成9,根据您得代码又返回0,假如您输入3,得到的是6,当第三列变成6,根据您的代码返回的是3……如此这般,程序自然就死翘翘了!图片点击可在新窗口打开查看