以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Exception has been thrown by the target of an invocation.  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104902)

--  作者:G流星雨
--  发布时间:2017/8/8 10:49:00
--  Exception has been thrown by the target of an invocation.
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.8.3.1
错误所在事件:表,产品检验表1,DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
startIndex cannot be larger than length of string.
Parameter name: startIndex



\'If e.DataCol.Name = "结论" AndAlso  e.DataRow("外观_壳体") = "OK"  AndAlso  e.DataRow("外观_包装") = "OK"  AndAlso  e.DataRow("性能_异响") = "OK"  AndAlso  e.DataRow("性能_功能") = "OK"  Then
    \'
    \'e.DataRow("结论") = "合格"
    \'
\'Else
    \'e.DataRow("结论") = "不合格"
\'End If
\'
\'e.DataRow("作业员")= e.DataRow("条形码").SubString(4,2)



全部注释掉,仍然报错,不知道问题在哪?

--  作者:有点色
--  发布时间:2017/8/8 10:52:00
--  

你datacolchanged事件的全部代码贴出来看看。

 

或者自行定位出错位置 http://www.foxtable.com/webhelp/scr/1485.htm

 


--  作者:G流星雨
--  发布时间:2017/8/8 10:55:00
--  
If e.DataCol.Name = "结论" AndAlso  e.DataRow("外观_壳体") = "OK"  AndAlso  e.DataRow("外观_包装") = "OK"  AndAlso  e.DataRow("性能_异响") = "OK"  AndAlso  e.DataRow("性能_功能") = "OK"  Then
    e.DataRow("结论") = "合格"
Else
    e.DataRow("结论") = "不合格"
End If

e.DataRow("作业员")= e.DataRow("条形码").SubString(4,2)


全部代码,就是全部注释掉,也报上面的错误
[此贴子已经被作者于2017/8/8 10:56:16编辑过]

--  作者:有点色
--  发布时间:2017/8/8 10:58:00
--  

去看表【产品检验表1】的DataColChanged事件;再去看 全局表事件的DataColChanged事件。

 

肯定有影响的代码 。


--  作者:G流星雨
--  发布时间:2017/8/8 10:58:00
--  
If e.DataCol.Name = "条形码" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("条形码 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing  AndAlso  dr("结论") = "合格"  Then   \'\'判定重复扫码
        dr("维修后测试结果")="重复扫码"
        MessageBox.Show("此条形码已经存在!","提示", MessageBoxButtons.YesNo)
        e.DataRow.Delete()
        
    Else
        dr("维修后测试结果")="维修合格"   \'\'判定维修
        \'\'e.Cancel = True
        e.DataRow.Delete()
    End If
End If



上面的代码是DataColChanging,我把datacolchanged代码删掉,会报DataColChanging错误

--  作者:有点色
--  发布时间:2017/8/8 11:04:00
--  
以下是引用G流星雨在2017/8/8 10:58:00的发言

上面的代码是DataColChanging,我把datacolchanged代码删掉,会报DataColChanging错误

 

报什么错?

 

尽量不要在datacolchanging等事件删除行,如果要删除行,你应该在事件前后加上systemready的代码。

 

http://www.foxtable.com/webhelp/scr/2218.htm

 

做个具体例子上来测试。


--  作者:G流星雨
--  发布时间:2017/8/8 12:22:00
--  

 

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

 

例子在附件


--  作者:G流星雨
--  发布时间:2017/8/8 13:11:00
--  

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.8.3.1
错误所在事件:窗口,窗口1,条形码,KeyDown
详细错误信息:
This row has been removed from a table and does not have any data.  BeginEdit() will allow creation of new data in this row.

 

 

另外:条形码输入不重复的数值会判定重复


--  作者:有点甜
--  发布时间:2017/8/8 14:29:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理 (1).foxdb


--  作者:G流星雨
--  发布时间:2017/8/8 15:54:00
--  

非常感谢,让您费心了,如图片所示,我需要实现的功能。

一直搞不定,望指点

1、条形码内不能有重复的选项,

2、重复的条码扫入会有两个判断,如果结论合格,原来的条码后备注重复扫码;如果结论不合格,原来的条码后面备注维修合格。

3、重复增加的条码删除


图片点击可在新窗口打开查看此主题相关图片如下:1111111.bmp
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/8/8 16:03:29编辑过]