以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 代码有问题,帮忙看一下?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74015)

--  作者:liuxianjie1980
--  发布时间:2015/8/31 16:23:00
--  [求助] 代码有问题,帮忙看一下?

With e.DataRow("客户名称") IsNot Nothing
    Dim d As Date =Date.now
    e.DataRow("本期年度")=d.year
End With
Select Case e.DataCol.name
    Case "客户名称","本期年度"
        If e.DataRow("客户名称") IsNot Nothing AndAlso e.DataRow("本期年度") IsNot Nothing Then
            Dim filter As String
            filter = "客户名称 = \'" & e.DataRow("客户名称") & "\' and 年度= \'" & e.DataRow("本期年度")-1 &"\'"
            Dim dr As DataRow=DataTables("结余历史数据").Find(filter)
            If dr Is Nothing Then
                messagebox.show("未找到该客户的结余数据,请手动填写或核实!","提示")
                Return
            Else
                e.DataRow("上期结转_货款金额")= dr("账款结余")
                e.DataRow("上期结转_货物数量")= dr("货物数量结余")
            End If
        End If
End Select

 

 

为何当年度自动输完后,没有找到相应数据,msgbox弹出来两次??


--  作者:有点蓝
--  发布时间:2015/8/31 16:30:00
--  
年度是整型的吗?整型的把filter中单引号去掉。
--  作者:大红袍
--  发布时间:2015/8/31 16:35:00
--  


Select Case e.DataCol.name
    Case "客户名称","本期年度"
        If e.DataRow.Isnull("客户名称") = False Then
            systemready = False
            e.DataRow("本期年度") = Date.today.Year
            systemready = True
            Dim filter As String
            filter = "客户名称 = \'" & e.DataRow("客户名称") & "\' and 年度= \'" & e.DataRow("本期年度")-1 &"\'"
            Dim dr As DataRow=DataTables("结余历史数据").Find(filter)
            If dr Is Nothing Then
                messagebox.show("未找到该客户的结余数据,请手动填写或核实!","提示")
                Return
            Else
                e.DataRow("上期结转_货款金额")= dr("账款结余")
                e.DataRow("上期结转_货物数量")= dr("货物数量结余")
            End If
        End If
End Select


--  作者:liuxianjie1980
--  发布时间:2015/8/31 16:48:00
--  
谢谢红袍兄,你的代码可以!加入一个状态判断吧
--  作者:大红袍
--  发布时间:2015/8/31 16:53:00
--  

你要做的逻辑,直接这样写也行

 

Select Case e.DataCol.name
    Case "客户名称"
        If e.DataRow.Isnull("客户名称") = False Then
            e.DataRow("本期年度") = Date.today.Year
            Dim filter As String
            filter = "客户名称 = \'" & e.DataRow("客户名称") & "\' and 年度= \'" & e.DataRow("本期年度")-1 &"\'"
            Dim dr As DataRow=DataTables("结余历史数据").Find(filter)
            If dr Is Nothing Then
                messagebox.show("未找到该客户的结余数据,请手动填写或核实!","提示")
                Return
            Else
                e.DataRow("上期结转_货款金额")= dr("账款结余")
                e.DataRow("上期结转_货物数量")= dr("货物数量结余")
            End If
        End If
End Select