Foxtable(狐表)用户栏目专家坐堂 → [求助]请教一个自动判定的代码


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

主题:[求助]请教一个自动判定的代码

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


加好友 发短信
等级:幼狐 帖子:95 积分:820 威望:0 精华:0 注册:2013/1/31 10:19:00
[求助]请教一个自动判定的代码  发帖心情 Post By:2013/11/1 11:17:00 [只看该作者]

请各位大神帮忙实现一个工作分配自动判断的功能。

在表B的工作分配人员里,每一项工作会分配多个人,","隔开的,希望在勾选之后表A的人员表里会自动在被选的人里填写已分配工作,且在后面的字段里填写进分配的工作内容。

谢谢各位了。

 


此主题相关图片如下:表b.jpg
按此在新窗口浏览图片


此主题相关图片如下:表a.jpg
按此在新窗口浏览图片

附件是项目文件

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:工作分配.table


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/1 11:27:00 [只看该作者]

命令窗口执行:

 

For Each dr1 As DataRow In DataTables("表A").datarows
    Dim nm As String = dr1("姓名")
    Dim dr2 As DataRow = DataTables("表B").Find("分配人员 = '" & nm & "' Or 分配人员 Like '" & nm & ",*' Or 分配人员 Like '*," & nm & "'")
    If dr2 IsNot Nothing Then
            dr1("是否分配工作") = "是"
    End If
Next

[此贴子已经被作者于2013-11-1 11:27:29编辑过]

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


加好友 发短信
等级:幼狐 帖子:95 积分:820 威望:0 精华:0 注册:2013/1/31 10:19:00
  发帖心情 Post By:2013/11/1 11:53:00 [只看该作者]

以下是引用狐狸爸爸在2013-11-1 11:27:00的发言:

命令窗口执行:

 

For Each dr1 As DataRow In DataTables("表A").datarows
    Dim nm As String = dr1("姓名")
    Dim dr2 As DataRow = DataTables("表B").Find("分配人员 = '" & nm & "' Or 分配人员 Like '" & nm & ",*' Or 分配人员 Like '*," & nm & "'")
    If dr2 IsNot Nothing Then
            dr1("是否分配工作") = "是"
    End If
Next

 

这个有个问题,就是我删除掉表B的分配人员的人名之后,那表A的是否已分配不会变化....能不能修改一下,让它删除掉其中一个人名之后,表A对应的人的工作分配状态变成“否”或者空掉?

 

[此贴子已经被作者于2013-11-1 11:27:29编辑过]


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/1 12:03:00 [只看该作者]

或者做个按钮,将这个代码写在按钮中,需要更新的时候,单击这个按钮。

或者将代码写在MainTableChanged事件中:

If MainTable.Name = "表B" Then

    原来的代码

End if


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/11/1 13:39:00 [只看该作者]

表B的DataColChanged

If e.DataCol.Name = "分配人员" Then
    For Each dr1 As DataRow In DataTables("表A").datarows
        Dim nm As String = dr1("姓名")
        Dim dr2 As DataRow = DataTables("表B").Find("分配人员 = '" & nm & "' Or 分配人员 Like '" & nm & ",*' Or 分配人员 Like '*," & nm & "'")
        If dr2 IsNot Nothing Then
            dr1("是否分配工作") = "是"
        Else
            dr1("是否分配工作") = Nothing
        End If
    Next
End If


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


加好友 发短信
等级:幼狐 帖子:95 积分:820 威望:0 精华:0 注册:2013/1/31 10:19:00
  发帖心情 Post By:2013/11/1 14:46:00 [只看该作者]

谢谢谢谢

 回到顶部