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


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

主题:流水账问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 18:23:00 [显示全部帖子]

 为什么要修改datacolchanged事件?

 

 既然你排序了,那么,aftermoveRow就不会有效了,不需要写。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/10 12:02:00 [显示全部帖子]

以下是引用edisontsui在2017/8/10 11:37:00的发言:
我把aftermoveRow删除了,也是达不到要求的效果。

 

上传实例说明你的问题。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/10 14:43:00 [显示全部帖子]

连不上你的数据,无法测试,数据库发上来

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 9:18:00 [显示全部帖子]

DataColChanged事件

 

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("物料编号") & "'", "出入库日期, _sortkey")
        If dr("_Identify") = mr("_Identify") Then
            mr("余数") = mr("入库数量") - mr("出库数量")
            dr = mr
        End If

        drs = e.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "[出入库日期], _sortkey")
        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 & "'", "出入库日期, _sortkey")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[物料编号] = '" & e.OldValue & "'", "[出入库日期], _sortkey")
                If dr IsNot Nothing Then
                    dr("余数") = dr("入库数量") - dr("出库数量")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "出入库日期, _sortkey")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("余数") = drs(i-1)("余数") + drs(i)("入库数量") - drs(i)("出库数量")
                Next
            End If
        End If
       
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 11:55:00 [显示全部帖子]

AfterMoveRow事件,写代码

 

Dim dr As DataRow
Dim mr As DataRow = e.Table.rows(e.NewIndex).DataRow
Dim drs As List(of DataRow)

dr = e.Table.DataTable.Find("[出入库日期] <= #" & mr("出入库日期") & "# And [物料编号] = '" & mr("物料编号") & "'", "出入库日期, _sortkey")
If dr("_Identify") = mr("_Identify") Then
    mr("余数") = mr("入库数量") - mr("出库数量")
    dr = mr
End If

drs = e.Table.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "[出入库日期], _sortkey")
For i As Integer = 1 To drs.Count - 1
    drs(i)("余数") = drs(i-1)("余数") + drs(i)("入库数量") - drs(i)("出库数量")
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 14:17:00 [显示全部帖子]

以下是引用edisontsui在2017/8/15 13:07:00的发言:
测试了,余数的效果还是不对,你拿PA6-B3S、YX-0178这2个物料代号来看看。

 

测试,代码没问题,你有修改数据重新测试吗?或者,你有重置列吗?

 

执行下面的代码,先重新计算

 

For Each bh As String In DataTables("出入库").GetValues("物料编号")
    Dim fdr As DataRow = DataTables("出入库").find("[物料编号] = '" & bh & "'", "出入库日期, _sortkey")
    If fdr IsNot Nothing Then
        DataTables("出入库").DataCols("物料编号").RaiseDataColChanged(fdr)
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/15 14:19:00 [显示全部帖子]

代码是根据 出入库日期, _sortkey 两列进行排序的,如果你需要根据 出入库单号 排序,你要把排序对应的修改才行。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/16 12:25:00 [显示全部帖子]

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("物料编号") & "'", "出入库日期,出入库单号,物料编号")
        If dr("_Identify") = mr("_Identify") Then
            mr("余数") = mr("入库数量") - mr("出库数量")
            dr = mr
        End If

        drs = e.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "出入库日期,出入库单号,物料编号")
        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 & "'", "出入库日期,出入库单号,物料编号")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[物料编号] = '" & e.OldValue & "'", "出入库日期,出入库单号,物料编号")
                If dr IsNot Nothing Then
                    dr("余数") = dr("入库数量") - dr("出库数量")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[出入库日期] >= #" & dr("出入库日期") & "# And [物料编号] = '" & dr("物料编号") & "'", "出入库日期,出入库单号,物料编号")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("余数") = drs(i-1)("余数") + drs(i)("入库数量") - drs(i)("出库数量")
                Next
            End If
        End If
       
End Select

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/16 19:49:00 [显示全部帖子]

无语,代码测试,没问题,重置列,认认真真测试啊

 

For Each bh As String In DataTables("出入库").GetValues("物料编号")
    Dim fdr As DataRow = DataTables("出入库").find("[物料编号] = '" & bh & "'", "出入库日期,出入库单号,物料编号")
    If fdr IsNot Nothing Then
        DataTables("出入库").DataCols("物料编号").RaiseDataColChanged(fdr)
    End If
Next

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 16:55:00 [显示全部帖子]

以下是引用edisontsui在2017/8/17 16:50:00的发言:
这段代码放到哪里去?

 

单独做个按钮执行。

 

本来代码就没问题,请认真测试,请根据这个排序后查看数据 出入库日期,出入库单号,物料编号


 回到顶部
总数 11 1 2 下一页