以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  太长的表达式无法执行怎么办  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158470)

--  作者:gv2000
--  发布时间:2020/11/20 20:41:00
--  太长的表达式无法执行怎么办

Dim xr As DataRow = DataTables("采购完成情况表").SQLFind("[采购PO] = \'"& dr("采购PO") &"\' and  [物料代码]= \'"& dr("物料代码") &"\'")

 

是不是 and 有问题


--  作者:有点蓝
--  发布时间:2020/11/21 9:23:00
--  
如果是要同时符合2个条件,and的用法肯定没有问题:http://www.foxtable.com/webhelp/topics/1284.htm
--  作者:gv2000
--  发布时间:2020/11/21 11:50:00
--  

If e.DataCol.Name = "审核" Then
    If e.NewValue = True Then
        e.DataRow("审核员") = user.name
        e.DataRow("审核日期") = Date.Today
        e.DataRow.Locked = True
        For Each dr As DataRow In e.DataRow.GetChildRows("采购订单详细")
            dr.Locked = e.DataRow.Locked
Dim dr2 As DataRow
dr2 = DataTables("采购完成情况表").SQLfind("[采购PO]  = \'" & dr("采购PO") & "\'And [物料代码] = \'" & dr("物料代码") & "\'")
If dr2 IsNot Nothing Then
dr2("采购数量") = dr("采购数量")
Else
Dim nr As DataRow = DataTables("采购完成情况表").AddNew()
nr("采购PO") = dr("采购PO")
nr("供应商") = dr("供应商")
nr("物料代码") = dr("物料代码")
nr("物料名称") = dr("名称")
nr("规格型号") = dr("规格型号")
nr("采购数量") = dr("采购数量")
End If
        Next
    End If
End If

我这个是多重表处理,就是表达式那里处理不正确, 不知道是不是SQL的问题


--  作者:有点蓝
--  发布时间:2020/11/21 12:00:00
--  
代码看不出什么。具体什么问题,有什么错误?
--  作者:gv2000
--  发布时间:2020/11/21 12:01:00
--  
就是不执行
--  作者:有点蓝
--  发布时间:2020/11/21 12:01:00
--  
数据没有保存

If e.DataCol.Name = "审核" Then
    If e.NewValue = True Then
        e.DataRow("审核员") = user.name
        e.DataRow("审核日期") = Date.Today
        e.DataRow.Locked = True
        For Each dr As DataRow In e.DataRow.GetChildRows("采购订单详细")
            dr.Locked = e.DataRow.Locked
            Dim dr2 As DataRow
            dr2 = DataTables("采购完成情况表").SQLfind("[采购PO]  = \'" & dr("采购PO") & "\'And [物料代码] = \'" & dr("物料代码") & "\'")
            If dr2 IsNot Nothing Then
                dr2("采购数量") = dr("采购数量")
dr2.save
            Else
                Dim nr As DataRow = DataTables("采购完成情况表").AddNew()
                nr("采购PO") = dr("采购PO")
                nr("供应商") = dr("供应商")
                nr("物料代码") = dr("物料代码")
                nr("物料名称") = dr("名称")
                nr("规格型号") = dr("规格型号")
                nr("采购数量") = dr("采购数量")
            End If
        Next
DataTables("采购完成情况表").save
    End If
End If

--  作者:gv2000
--  发布时间:2020/11/21 12:01:00
--  
新增行是可以的,但改不了数值
--  作者:有点蓝
--  发布时间:2020/11/21 13:51:00
--  
dr2.save不能少,看看有没有执行到

            If dr2 IsNot Nothing Then
                dr2("采购数量") = dr("采购数量")
dr2.save
msgbox("这里能不能执行到?")
            Else

--  作者:gv2000
--  发布时间:2020/11/21 13:54:00
--  

已解决,谢谢