Foxtable(狐表)用户栏目专家坐堂 → 太长的表达式无法执行怎么办


  共有2612人关注过本帖树形打印复制链接

主题:太长的表达式无法执行怎么办

帅哥哟,离线,有人找我吗?
gv2000
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:58 积分:492 威望:0 精华:0 注册:2020/11/10 11:34:00
太长的表达式无法执行怎么办  发帖心情 Post By:2020/11/20 20:41:00 [只看该作者]

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

 

是不是 and 有问题


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110558 积分:562680 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/21 9:23:00 [只看该作者]

如果是要同时符合2个条件,and的用法肯定没有问题:http://www.foxtable.com/webhelp/topics/1284.htm

 回到顶部
帅哥哟,离线,有人找我吗?
gv2000
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:58 积分:492 威望:0 精华:0 注册:2020/11/10 11:34:00
  发帖心情 Post By: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的问题


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110558 积分:562680 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/21 12:00:00 [只看该作者]

代码看不出什么。具体什么问题,有什么错误?

 回到顶部
帅哥哟,离线,有人找我吗?
gv2000
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:58 积分:492 威望:0 精华:0 注册:2020/11/10 11:34:00
  发帖心情 Post By:2020/11/21 12:01:00 [只看该作者]

就是不执行

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110558 积分:562680 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:58 积分:492 威望:0 精华:0 注册:2020/11/10 11:34:00
  发帖心情 Post By:2020/11/21 12:01:00 [只看该作者]

新增行是可以的,但改不了数值

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110558 积分:562680 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/21 13:51:00 [只看该作者]

dr2.save不能少,看看有没有执行到

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

 回到顶部
帅哥哟,离线,有人找我吗?
gv2000
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:58 积分:492 威望:0 精华:0 注册:2020/11/10 11:34:00
  发帖心情 Post By:2020/11/21 13:54:00 [只看该作者]

已解决,谢谢


 回到顶部