Foxtable(狐表)用户栏目专家坐堂 → 代码计算


  共有2616人关注过本帖树形打印复制链接

主题:代码计算

帅哥哟,离线,有人找我吗?
kaituozhe
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
代码计算  发帖心情 Post By:2015/9/4 17:48:00 [只看该作者]

例子有一结账管理与计划耗用结存二张表,我的想法是在结账管理点结账时,计划耗用结存表中能够按上月结存的相关部门的物料月末数结转到本月月初,发生运行错误,帮助我看一下是什么原因。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产管理部分3.table


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/9/4 18:10:00 [只看该作者]

MessageBox.show(dr2("发生年月"))'去掉这行看看

If dr2 Is Nothing Then


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2015/9/4 18:29:00 [只看该作者]

MessageBox.show(dr2("发生年月"))这段主要调试时使用的,

刚才我不小心把我最需要的一段代码给注释了,现在取消了,你帮我看一下为什么会提示出错。

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


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2015/9/4 20:08:00 [只看该作者]

还是不行呀


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2015/9/4 20:19:00 [只看该作者]

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:表,计划耗用结存,DataColChanged
详细错误信息:
调用的目标发生了异常。
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/9/5 9:22:00 [只看该作者]

按4楼的修改后,逻辑错误在 计划耗用结存的DataColChanged,前面的“需求使用”表查询没有数据,导致e.DataRow.Delete,最后几句却又给e.DataRow赋值,已经删除的DataRow再用自然出错


 回到顶部