Foxtable(狐表)用户栏目专家坐堂 → 请专家指导一下


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

主题:请专家指导一下

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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
请专家指导一下  发帖心情 Post By:2017/7/5 19:50:00 [只看该作者]

If e.DataCol.Name = "品名" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.
DataRow("单价") = Nothing '那么清空此行单价列的内容
    
Else
        Dim
 dr As DataRow
        
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = 
DataTables("产品").Find("[品名] = '" & e.NewValue & "'")
        If
 dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.
DataRow("单价") = dr("单价"
        End
 If
    End
 If
End
 If

对于上面的跨表引用代码,我想在增加一个判断条件,就是如果发现产品表中单价为空,则产品明细表中就清空新增加行(不允许新增加行)

我修改的如下,不知是否正确,请专家指导


If e.DataCol.Name = "品名" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.
DataRow("单价") = Nothing '那么清空此行单价列的内容
    
Else
        Dim
 dr As DataRow
        
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = 
DataTables("产品").Find("[品名] = '" & e.NewValue & "'")
        If
 dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.
DataRow("单价") = dr("单价"
        End
 If

           if e.DataRow("单价") is nothing then
            e.DataRow("单价") = Nothing
           end if

    End
 If
End
 If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/5 20:20:00 [只看该作者]

If e.DataCol.Name = "品名" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("单价") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = DataTables("产品").Find("[品名] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            If dr.IsNull("单价") Then
                msgbox("单价没填写")
                e.DataRow.Delete
            Else
                e.DataRow("单价") = dr("单价")
            End If
        Else
            msgbox("没有找到产品")
            e.DataRow("单价") = Nothing
        End If
    End If
End If

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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2017/7/5 20:41:00 [只看该作者]

 msgbox("没有找到产品")
            e.DataRow("单价") = Nothing
能改成下面形式吗?
 msgbox("没有找到产品")
           e.DataRow.Delete

也就是没在产品表中找到相同品名行,就删除产品明细表中的新增行

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/5 20:49:00 [只看该作者]

 可以的

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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2017/7/5 20:54:00 [只看该作者]

感谢有点甜专家的热心指导!图片点击可在新窗口打开查看

 回到顶部