Foxtable(狐表)用户栏目专家坐堂 → 编号重复,清空当前行


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

主题:编号重复,清空当前行

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/21 10:57:00 [显示全部帖子]

If e.DataCol.Name = "项目编码"  Then
    Dim dr  As  DataRow
    dr = e.DataTable.Find("项目编码 = '" & e.NewValue &  "'")
    If dr IsNot Nothing Then
        e.cancel = True
        For Each dc As DataCol In e.DataTable.datacols
            If dc.Expression = "" Then
                e.DataRow(dc.name)=Nothing
            End If
        Next
    End  If
End  If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/21 12:48:00 [显示全部帖子]

回复5楼,贴出你窗口录入后引用的代码。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/21 13:19:00 [显示全部帖子]

4楼代码没问题,datacolchanging事件写4楼代码有什么问题?

 

做例子发上来测试。

[此贴子已经被作者于2017/9/21 13:19:36编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/21 15:34:00 [显示全部帖子]

datacolchanged事件

 

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


 回到顶部