以文本方式查看主题

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

--  作者:18923231288
--  发布时间:2017/12/14 16:19:00
--  求助
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table


缴费类型选择公司缴费,填写实收金额 . 选择客户缴费,填写实退金额.
选择结算,结算金额=上次同名客户的结算金额
  选择结算否,结算金额=上次同名客户的结算金额+实收-实退



请问怎么编写代码

--  作者:有点甜
--  发布时间:2017/12/14 16:32:00
--  

datacolchanged事件

 

Select e.DataCol.name
    Case "实退","实收","结算金额","结算否","投保人"
        Dim filter As String = "投保人 = \'" & e.DataRow("投保人") & "\'"
        Dim pdr As DataRow = e.DataTable.find(filter, "_Identify desc", 1)
        If pdr IsNot Nothing Then
            If e.DataRow("结算否") = True Then
                e.DataRow("结算金额") = pdr("结算金额")
            Else
                e.DataRow("结算金额") = pdr("结算金额")+e.DataRow("实收")-e.DataRow("实退")
            End If
        End If
End Select


--  作者:18923231288
--  发布时间:2017/12/14 17:24:00
--  
把投保人该为代理渠道,运行结果是退出程序
--  作者:18923231288
--  发布时间:2017/12/14 17:26:00
--  
直接运行你的代码不行
--  作者:有点甜
--  发布时间:2017/12/14 17:29:00
--  

datacolchanged事件

 

Select e.DataCol.name
    Case "实退","实收","结算否","代理渠道"
        Dim filter As String = "代理渠道 = \'" & e.DataRow("代理渠道") & "\'"
        Dim pdr As DataRow = e.DataTable.find(filter, "_Identify desc", 1)
        If pdr IsNot Nothing Then
            If e.DataRow("结算否") = True Then
                e.DataRow("结算金额") = pdr("结算金额")
            Else
                e.DataRow("结算金额") = pdr("结算金额")+e.DataRow("实收")-e.DataRow("实退")
            End If
        End If
End Select


--  作者:18923231288
--  发布时间:2017/12/14 17:59:00
--  
不行,是乱码的



--  作者:有点甜
--  发布时间:2017/12/14 18:07:00
--  

我测试没问题。

 

请说明你的测试步骤和测试结果。


--  作者:18923231288
--  发布时间:2017/12/14 18:58:00
--  
1, 第一,二行,不勾选结算否,结果正常,勾选第一个,两个都勾选后,结果没变.2个去勾选后,结算都增加



--  作者:18923231288
--  发布时间:2017/12/14 19:48:00
--  
1,填入实收100,回车,结算=100,勾选结算否 结算还是=100,去掉勾选.结算=200


--  作者:18923231288
--  发布时间:2017/12/14 20:01:00
--  
都是在新增的行出错