以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  帮我看看这个代码有啥问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114550)

--  作者:blackzhu
--  发布时间:2018/2/9 10:14:00
--  帮我看看这个代码有啥问题
dim TableName4 as string ="结账_Table4"
 Dim mny2 As Double = 4000
                        For Each mydr As DataRow In DataTables(TableName4).Select("客户GUID=\'" & dr("客户GUID") & "\' And 业务GUID =\'" & dr("业务GUID") & "\' And 结账GUID=\'" & dr("结账GUID") & "\' And 项目状态 Not IN(\'退单\',\'还款\')")
                            If mydr("项目状态") = "退单" OrElse mydr("项目状态") = "还款" Then
                                mydr("现金收入") = Nothing
                                mydr("现金收入") = 0
                            End If
                            If mny2 < 0 Then
                                Exit For
                            Else
                                MessageBox.Show(mny2)
                                If mny2 >= mydr("成交金额") AndAlso (mydr("项目状态") <> "退单" OrElse mydr("项目状态") = "还款") Then
                                    mydr("现金收入") = mydr("成交金额")
                                Else
                                    MessageBox.Show(mny2)
                                    mydr("现金收入") = mny2
                                End If
                                mny2 = mny2 - mydr("成交金额")
                            End If
                        Next

这个代码目前测试下来, 如果有3行,就会第一行变0  第二行和第三行写入, 如果是2行数据  第一行变0 第二行写入. 也就是说 第一行会清0

--  作者:有点甜
--  发布时间:2018/2/9 10:21:00
--  

1、清零是因为执行了哪句代码?请加入msgbox进行调试;

 

2、代码看着没错,看看是否datacolchanged等事件有冲突代码。