以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74154) |
||||
-- 作者:kaituozhe -- 发布时间:2015/9/4 17:48:00 -- 代码计算 例子有一结账管理与计划耗用结存二张表,我的想法是在结账管理点结账时,计划耗用结存表中能够按上月结存的相关部门的物料月末数结转到本月月初,发生运行错误,帮助我看一下是什么原因。
|
||||
-- 作者:Hyphen -- 发布时间:2015/9/4 18:10:00 -- MessageBox.show(dr2("发生年月"))\'去掉这行看看 If dr2 Is Nothing Then |
||||
-- 作者:kaituozhe -- 发布时间:2015/9/4 18:29:00 -- MessageBox.show(dr2("发生年月"))这段主要调试时使用的, 刚才我不小心把我最需要的一段代码给注释了,现在取消了,你帮我看一下为什么会提示出错。
|
||||
-- 作者:czy -- 发布时间:2015/9/4 19:55:00 -- Select Case e.DataCol.name Case "是否结账" Dim dr As DataRow = e.DataRow If dr("发生年月").Length = 8 Then Dim d1 As Date = new Date(dr("发生年月").substring(0,4), dr("发生年月").substring(5,2), 1) Dim d2 As Date = d1.AddMonths(1) Dim s As String = Format(d2,"yyy年MM月") If dr("是否结账")="是" Then Dim drs1 As List (of DataRow)=DataTables("计划耗用结存").Select("发生年月=\'" & dr("发生年月") & "\'") For Each dr1 As DataRow In drs1 If dr1("月末结余_投入数") <> 0 OrElse dr1("月末结余_计划数") <> 0 OrElse dr1("月末结余_应存数") <> 0 OrElse dr1("月末结余_盘点数") <> 0 Then Dim dr2 As DataRow =DataTables("计划耗用结存").find("发生年月= \'" & s & " \' and 物料编码= \' " & dr1("物料编码") & "\' and 部门= \'" & dr1("部门") & "\'") If dr2 Is Nothing Then Dim r As Row = Tables("计划耗用结存").Addnew() r("发生年月") = s r("物料编码")=dr1("物料编码") r("部门")=dr1("部门") r("月初结余_计划数")=dr1("月末结余_计划数") End If End If Next End If End If End Select |
||||
-- 作者:kaituozhe -- 发布时间:2015/9/4 20:08:00 -- 还是不行呀 |
||||
-- 作者:kaituozhe -- 发布时间:2015/9/4 20:19:00 -- .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2014.11.11.1 错误所在事件:表,计划耗用结存,DataColChanged 详细错误信息: 调用的目标发生了异常。 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据 |
||||
-- 作者:Hyphen -- 发布时间:2015/9/5 9:22:00 -- 按4楼的修改后,逻辑错误在 计划耗用结存的DataColChanged,前面的“需求使用”表查询没有数据,导致e.DataRow.Delete,最后几句却又给e.DataRow赋值,已经删除的DataRow再用自然出错 |