以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]大神帮忙看下哪里错了!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31323)

--  作者:sadfox
--  发布时间:2013/4/12 22:17:00
--  [求助]大神帮忙看下哪里错了!

Select Case e.DataCol.Name
    Case "品名"
        If e.NewValue Is Nothing Then 

            e.DataRow("单价") = Nothing 
        Else
            Dim dr As DataRow
            dr = DataTables("产品").Find("[品名] = \'" & e.NewValue & "\'")
            If dr IsNot Nothing Then 
                If e.DataRow("单价").IsNumeric AndAlso e.DataRow("单价") < 0 Then
                    e.DataRow("单价") = dr("单价")
                End If
            End If
        End If

End Select

大神帮忙看看,为什么不能把小于0的单价引用过来呢?


--  作者:erpzj
--  发布时间:2013/4/12 22:21:00
--  

发列子

 


--  作者:sadfox
--  发布时间:2013/4/12 22:22:00
--  

Select Case e.DataCol.Name
    Case "品名"
        If e.NewValue Is Nothing Then

            e.DataRow("单价") = Nothing
        Else
            Dim dr As DataRow
            dr = DataTables("产品").Find("[品名] = \'" & e.NewValue & "\'")
            If dr IsNot Nothing AndAlso e.DataRow("单价") < 0 Then 
                    e.DataRow("单价") = dr("单价")
             End If
        End If
 
End Select

这样的话,小于0大于0的都过来了!


--  作者:夕然
--  发布时间:2013/4/12 22:36:00
--  

       dr = DataTables("产品").Find("[品名] = \'" & e.NewValue & "\'")
            If dr IsNot Nothing AndAlso e.DataRow("单价") < 0 Then 
                    e.DataRow("单价") = dr("单价")

 

这个地方错了

 

改成

 

 dr = DataTables("产品").Find("[品名] = \'" & e.NewValue & "\'")
            If dr IsNot Nothing AndAlso dr("单价") < 0 Then 
                    e.DataRow("单价") = dr("单价")

 


--  作者:sadfox
--  发布时间:2013/4/12 22:38:00
--  
谢谢,我试试!
--  作者:sadfox
--  发布时间:2013/4/12 22:43:00
--  

哇!果然是这样!


--  作者:sadfox
--  发布时间:2013/4/12 22:47:00
--  
晕!原来我一直在用还没引用过来的值比大小!年纪大了就是个死脑筋!哈哈!
--  作者:夕然
--  发布时间:2013/4/12 22:57:00
--  

是的,你的e.datarow()是个新增数值

dr()才是你找出来的数值