Foxtable(狐表)用户栏目专家坐堂 → [求助]表A逻辑列打勾,关联表B不可编辑


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

主题:[求助]表A逻辑列打勾,关联表B不可编辑

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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
[求助]表A逻辑列打勾,关联表B不可编辑  发帖心情 Post By:2014/12/14 21:08:00 [只看该作者]

主表A和子表B关联,表A中有逻辑列X,逻辑列X打勾后,子表B相关联的内容相将不允许再编辑,请前辈老师帮忙写个代码,谢谢!

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


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

 PrepareEdit事件,简单一点,可以引用父表的逻辑列,这样就不需要find函数

 

If e.Col.Name = "关联列" AndAlso e.Row("逻辑列") = True Then

    e.Cancel = True

End If


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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/12/14 21:28:00 [只看该作者]

老师试了一下没有成功,我把项目上传,请帮我看一看,谢谢!

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:表a逻辑列打勾,关联表b不可编辑.table


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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/12/14 21:32:00 [只看该作者]

老师:上面项目我希望表A逻辑列打勾后,表B相关内容不好编辑(即不好增加行等),但子表C还可以编辑。

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


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

表B的prepareEdit事件

 

If e.Col.Name = "A" OrElse e.Col.name = "B" Then
    Dim fdr As DataRow = e.Row.DataRow.GetParentRow("表A")
    If fdr IsNot Nothing AndAlso fdr("X") = True Then
        e.Cancel = True
    End If
End If


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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/12/14 21:49:00 [只看该作者]

老师:如果逻辑列打勾后,表B不允许增加行,那代码又怎么写呢?


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


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

datarowAdded事件

 

Dim fdr As DataRow = e.DataRow.GetParentRow("表A")
If fdr IsNot Nothing AndAlso fdr("X") = True Then
    If e.DataRow("A") = fdr("A") AndAlso e.DataRow("B") = fdr("B") Then
        e.DataRow.Delete
    End If
End If

 

datacochanged事件

 

If e.DataCol.Name = "A" OrElse e.DataCol.Name = "B" Then
    Dim fdr As DataRow = e.DataRow.GetParentRow("表A")
    If fdr IsNot Nothing AndAlso fdr("X") = True Then
        If e.DataRow("A") = fdr("A") AndAlso e.DataRow("B") = fdr("B") Then
            e.DataRow.Delete
        End If
    End If
End If


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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/12/14 22:03:00 [只看该作者]

老师:上面两个代码都要用吗?

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


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

 是的,在表B。

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


加好友 发短信
等级:一尾狐 帖子:449 积分:3330 威望:0 精华:0 注册:2012/11/10 7:00:00
  发帖心情 Post By:2014/12/14 22:08:00 [只看该作者]

谢谢老师!

 回到顶部
总数 13 1 2 下一页