Foxtable(狐表)用户栏目专家坐堂 → 跨表FIND比对填入值的问题


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

主题:跨表FIND比对填入值的问题

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


加好友 发短信
等级:五尾狐 帖子:1175 积分:8792 威望:0 精华:0 注册:2012/4/18 16:28:00
跨表FIND比对填入值的问题  发帖心情 Post By:2017/10/25 16:24:00 [只看该作者]

请教老师,下面代码条件

如果项目计划书与本表的项目编号相同,设计阶段=本表的任务阶段,项目经理=本表的执行人,本表的监理人员为空时,本表的项目负责人=项目计划书的项目经理,现在的问题是在同一个项目编号下,项目计划书的项目经理如果与本表的执行人一致,就跨表填入了项目负责人,设计阶段的条件不起作用

 

例如   本表                                                                                        项目计划书

         项目编号   任务阶段    执行人      项目负责人                                   项目编号   设计阶段     项目经理

         001         可研阶段      小王         小王                                              001         可研阶段        小王 

         001         初设阶段      小李         小李                                              001         初设阶段        小李

         001         可研阶段      小李                   现在的代码这里依然填入小李

         001         初设阶段      小王                   现在的代码这里依然填入小王

 

If e.DataCol.Name = "项目编号" Then 
    If e.NewValue Is Nothing Then
        e.DataRow("项目负责人") = Nothing '那么清空此行项目负责人列的内容,如项目计划书的项目经理变动 需重置项目编号列
    Else
        Dim dr As DataRow = DataTables("项目计划书").SQLFind("[项目编号] = '" & e.NewValue & "' And 设计阶段 = '" & e.DataRow("任务阶段") & "' And 项目经理 = '" & e.DataRow("执行人") & "'")
        If dr IsNot Nothing Then '如果找到了同名的项目编号、设计阶段和项目经理行,也就是dr不是Nothing
           If e.DataRow.Isnull("监理人员") = True Then 
              e.DataRow("项目负责人") = dr("项目经理")
           Else
              e.DataRow("项目负责人") = ""
           End If
        End If
    End If
End If

[此贴子已经被作者于2017/10/25 16:25:54编辑过]

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


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

If e.DataCol.Name = "项目编号" OrElse  e.DataCol.Name = "任务阶段" OrElse e.DataCol.Name = "执行人" Then 
    If e.NewValue = Nothing Then
        e.DataRow("项目负责人") = Nothing '那么清空此行项目负责人列的内容,如项目计划书的项目经理变动 需重置项目编号列
    Else
        Dim dr As DataRow = DataTables("项目计划书").SQLFind("[项目编号] = '" & e.datarow("项目编号") & "' And 设计阶段 = '" & e.DataRow("任务阶段") & "' And 项目经理 = '" & e.DataRow("执行人") & "'")
        If dr IsNot Nothing Then '如果找到了同名的项目编号、设计阶段和项目经理行,也就是dr不是Nothing
           If e.DataRow.Isnull("监理人员") = True Then 
              e.DataRow("项目负责人") = dr("项目经理")
           Else
              e.DataRow("项目负责人") = ""
           End If
        End If
    End If
End If

 回到顶部