Foxtable(狐表)用户栏目专家坐堂 → datacolchanged 问题


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

主题:datacolchanged 问题

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
datacolchanged 问题  发帖心情 Post By:2017/8/23 17:26:00 [显示全部帖子]

我在增加一行空行时,会出现入下警告:
.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.3.18.1
错误所在事件:表,出入库,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

目前,我的DataColChanged代码如下:

If e.DataCol.name = "出入库日期"
    If e.DataRow.IsNull("出入库日期") Then
        e.DataRow("已出库天数") = Nothing
    Else
        Dim tp As TimeSpan = Date.today - CDate(e.DataRow("出入库日期"))
        e.DataRow("已出库天数") = Math.Round(tp.TotalDays / 1,0)
    End If
End If

If e.DataCol.name = "入库数量" OrElse e.DataCol.name = "出库数量"
    If e.DataRow("批号") = ""
    Else
        Dim re As Boolean = False
        For Each dr As DataRow In DataTables("批号表").DataRows
            If dr("批号") = e.DataRow("批号") And dr("物料编号") = e.DataRow("物料编号") Then
                dr("库存数量") = e.DataRow("入库数量") + e.DataRow("出库数量") + dr("库存数量") - e.OldValue
                dr("批号变动记录") = Date.now & " " & User.Name
                dr("库存数量变动记录") = Date.now & " " & User.Name
                re = True
                Exit For
            Else
                Continue For
            End If
        Next
        If re =False
            Dim dr As DataRow
            dr = DataTables("批号表").AddNew()
            dr("批号") = e.DataRow("批号")
            dr("物料编号") = e.DataRow("物料编号")
            dr("库存数量") = e.DataRow("入库数量") + e.DataRow("出库数量")
            dr("批号变动记录") = Date.now & " " & User.Name
            dr("库存数量变动记录") = Date.now & " " & User.Name
        End If
    End If
End If



Select Case e.DataCol.Name
    Case "物料编号","入库数量","出库数量"
 
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        
        dr = e.DataTable.Find("[出入库日期] <= #" & mr("出入库日期") & "# And [物料编号] = '" & mr("物料编号") & "'", "出入库日期,出入原因 desc,出入库单号")
        If dr("_Identify") = mr("_Identify") Then
            mr("余数") = mr("入库数量") + mr("出库数量")
            dr = mr
        End If
        drs = e.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "出入库日期,出入原因 desc,出入库单号")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("余数") = drs(i-1)("余数") + drs(i)("入库数量") + drs(i)("出库数量")
        Next
        If e.DataCol.Name = "物料编号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[出入库日期] <= #" & mr("出入库日期") & "# And [物料编号] = '" & e.OldValue & "'", "出入库日期,出入原因 desc,出入库单号")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[物料编号] = '" & e.OldValue & "'", "出入库日期,出入原因 desc,出入库单号")
                If dr IsNot Nothing Then
                    dr("余数") = dr("入库数量") + dr("出库数量")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "出入库日期,出入原因 desc,出入库单号")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("余数") = drs(i-1)("余数") + drs(i)("入库数量") + drs(i)("出库数量")
                Next
            End If
        End If
        Case "物料编号","指令单号"
Dim dr As DataRow =e.DataRow
dr("变更记录") =  e.oldvalue & "更改为" & e.newvalue & " " & Date.Now() & User.name

End Select

那么,是哪里的代码有问题呢?如何修改呢?谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2017/8/24 10:48:00 [显示全部帖子]

加上上述判断之后,还是没有改善。可否请你帮我加好这些代码之后,再将整个datacolchanged 代码发给我?
或者可否请你利用我的主题“流水帐问题”那里的数据库和项目测试一下?谢谢。

 回到顶部