以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求赐教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101647)

--  作者:sgkyzfh
--  发布时间:2017/6/4 22:08:00
--  求赐教
表A列 产品 单价1 单价2
10 20
20 15
15 30
求:以产品变化为判断条件,当录入的产品相同时,则将最后一次录入的《单价2》的值自动赋给当前录入行的《单价1》

--  作者:sgkyzfh
--  发布时间:2017/6/4 22:57:00
--  
有高手吗?请高手指导
--  作者:sgkyzfh
--  发布时间:2017/6/4 22:57:00
--  
难度大了,不难我也不来了
--  作者:程兴刚
--  发布时间:2017/6/4 23:05:00
--  
发文件,这个不难吧?


--  作者:程兴刚
--  发布时间:2017/6/4 23:16:00
--  

DataColChanged事件代码:


If e.DataCol.name = "产品"

    If e.DataRow("产品") > ""

        Dim drs As List(Of DataRow) = DataTables("表A").Select("[产品] = \'" & e.DataRow("产品") & "\' and [单价2] > 0")

        If drs.Count > 0

            e.DataRow("单价1") = drs(drs.Count - 1)("单价2")

        End If

    End If

End If


--  作者:有点色
--  发布时间:2017/6/4 23:22:00
--  

If e.DataCol.name = "产品"

    If e.DataRow("产品") > ""

        Dim fdr As DataRow = DataTables("表A").find("[产品] = \'" & e.DataRow("产品") & "\' and [单价2] > 0", "_Identify desc")

        If fdr IsNot Nothing Then

            e.DataRow("单价1") = fdr("单价2")

        End If

    End If

End If

[此贴子已经被作者于2017/6/4 23:22:09编辑过]

--  作者:程兴刚
--  发布时间:2017/6/4 23:26:00
--  
色版,不要排序,否则,当该表使用过程中删除了行再增加行的时候,会导致顺序颠倒,因为新增行_Identify列会自动补号,后面的_Identify的值总会出现比前面的小,这样排序会导致单价2顺序颠倒,不是按输入顺序,会导致取值错误。可以在find条件后面跟上-1参数即可!
[此贴子已经被作者于2017/6/4 23:46:11编辑过]

--  作者:sgkyzfh
--  发布时间:2017/6/4 23:43:00
--  附件:
不行
--  作者:程兴刚
--  发布时间:2017/6/4 23:45:00
--  
啥不行?附件吗?您没有点上传附件,代码来了,不要附件了!