在“销项凭证表”——会计科目 列输入凭证代码,101,102,103(会提示不存在)这样代码都能按预期运行,如果输入下一级代码,如10201之类的,明明有代码,就会提示:
此主题相关图片如下:截图03.png

DataColChanging的代码:
================
output.show("1 " & e.NewValue)
Dim frs As List (of DataRow) = DataTables("科目表").Select("科目代码 like '" & e.NewValue & "*" & "'")
Dim fr As DataRow = DataTables("科目表").find("科目代码 = '" & e.NewValue & "'")
output.show("2 " & e.NewValue)
If frs.Count > 1 Then
MessageBox.Show(e.NewValue & " " & fr("科目名称") & " 不是明细科目")
e.Cancel=True
End If
output.show("3 " & e.NewValue)
If frs.Count = 0 Then
e.cancel=True
MessageBox.Show("未找到科目代码: " & e.NewValue)
End If
=======================================================================
DataColChanged的代码:
================
output.show("4 " & e.NewValue)
Dim fr As DataRow
If e.DataCol.Name = "会计科目" Then
If e.DataRow.IsNull("会计科目") Then
e.DataRow("科目名称") = Nothing
Else
fr = DataTables("科目表").Find("科目代码= '" & e.NewValue & "'")
If fr IsNot Nothing Then
e.DataRow("科目名称") = fr("科目名称")
End If
End If
End If
output.show("5 " & e.NewValue)
==================================================================
科目表的内容:

此主题相关图片如下:截图00.png

需要输入凭证代码的表:

此主题相关图片如下:截图02.png

项目打包:
可能这也是一个BUG。
在对项目里的代码进行了一些删除操作后,打开原来的项目,发现虽然没有代码,但是还是会响应双击事件。
原设计是双击“销项”表,会执行一系列操作,然后打开EXCEL模板生成的文件,后来我把代码删除了,保存项目后,又把代码粘贴了回来,执行时 提会示“EXCEL已打开”,我怀疑是代码执行了两遍。
又把项目管理中的事件代码都删除了,发现还是会执行原有的事件。。。重启项目重启电脑仍无解。
我把项目文件发上来,和1楼贴子属同一个项目文件,版主看看。
前几天导出的代码文件:
=============================================
这个问题,在删除bin里的dll文件后得到解决,应该还是有些bug所在的,望狐爸能重视一下,要不动不动来一下子,也够忙活的
[此贴子已经被作者于2020/2/29 8:31:49编辑过]
找到问题所在了,是自己的粗心大意
在datachanging代码里没有判断列名,导致数据出现错乱。
这次一定能记住。。。