Foxtable(狐表)用户栏目专家坐堂 → 跨表引用,如何设置只引用部分数据


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

主题:跨表引用,如何设置只引用部分数据

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


加好友 发短信
等级:童狐 帖子:220 积分:1751 威望:0 精华:0 注册:2016/3/2 9:22:00
跨表引用,如何设置只引用部分数据  发帖心情 Post By:2016/12/1 10:18:00 [只看该作者]

我现在有3个表:工资表, 岗位薪级表, 特殊薪级表

1、通过“岗位薪级表”  ,引用不同“职务”对应的“岗位工资”,引用到工资表中。
2、但是其中有3个人,是通过“特殊薪级表”来匹配的,引用“姓名”对应的“岗位工资”,引用到工资表中。

问题,我怎么下面代码中,剔除这三个人,在代码1中不执行引用。


图片点击可在新窗口打开查看此主题相关图片如下:岗位薪级.png
图片点击可在新窗口打开查看

代码1:
If e.DataCol.Name = "职务" Then
    If e.NewValue Is Nothing Then
        e.DataRow("岗位工资") = Nothing
        e.DataRow("保密津贴") = Nothing
        e.DataRow("竞业限制金") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("岗位薪级表").Find("[职务] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("岗位工资") = dr("岗位工资")
            e.DataRow("保密津贴") = dr("保密津贴")
            e.DataRow("竞业限制金") = dr("竞业限制金") 
        End If
    End If
End If


代码2:


图片点击可在新窗口打开查看此主题相关图片如下:特殊薪级.png
图片点击可在新窗口打开查看

If e.DataCol.Name = "姓名" Then
    If e.NewValue Is Nothing Then
        e.DataRow("岗位工资") = Nothing
        e.DataRow("保密津贴") = Nothing
        e.DataRow("竞业限制金") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("特殊薪级表").Find("[姓名] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("岗位工资") = dr("岗位工资")
            e.DataRow("保密津贴") = dr("保密津贴")
            e.DataRow("竞业限制金") = dr("竞业限制金")
        End If
    End If
End If



[此贴子已经被作者于2016/12/1 10:43:28编辑过]

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


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


If e.DataCol.Name = "职务" Then
    If e.NewValue Is Nothing orelse e.DataRow.isnull("姓名") Then
        e.DataRow("岗位工资") = Nothing
        e.DataRow("保密津贴") = Nothing
        e.DataRow("竞业限制金") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("其他薪级表").Find("[姓名] = '" & e.DataRow("姓名") & "'")
        If dr Is Nothing
            dr = DataTables("岗位薪级表").Find("[职务] = '" & e.NewValue & "'")
            If dr IsNot Nothing
                e.DataRow("岗位工资") = dr("岗位工资")
                e.DataRow("保密津贴") = dr("保密津贴")
                e.DataRow("竞业限制金") = dr("竞业限制金")
            End If
        End If
    End If
End If

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


加好友 发短信
等级:童狐 帖子:220 积分:1751 威望:0 精华:0 注册:2016/3/2 9:22:00
  发帖心情 Post By:2016/12/1 10:45:00 [只看该作者]

版主,你代码两边都无效了…… 引用职务  和姓名  无法执行了。
我的意思是:代码1,A,B,C三个人的姓名来取消他们的引用效果。
        A,B,C, 三人在代码2中引用

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


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

代码2保持不变,代码1 改为2楼的代码

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


加好友 发短信
等级:童狐 帖子:220 积分:1751 威望:0 精华:0 注册:2016/3/2 9:22:00
  发帖心情 Post By:2016/12/1 10:58:00 [只看该作者]

代码1不运行,代码2是好的,就是能不能在代码1中,加一个判断条件,如果姓名是 A,B,C这三个人,则取消代码1的引用。

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


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

贴出事件完整代码,或者上传例子测试

 回到顶部