Foxtable(狐表)用户栏目专家坐堂 → [求助]关于同步更新


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

主题:[求助]关于同步更新

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
[求助]关于同步更新  发帖心情 Post By:2014/6/25 14:16:00 [只看该作者]

现有两个表:“岗位表”,“档案表”,这两个表都有岗位,职级着两个字段,一个岗位对应一个职级。
现在想要实现:如果岗位表中的岗位和职级的内容都发生了改变,那么如何使得档案表中对应的岗位和职级的值和岗位表中的一致呢?

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


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

 方法一:用关联,其它表的父表,都设置成岗位表。

 

 加入表达式列,直接引用父表数据 http://www.foxtable.com/help/topics/0106.htm

 


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


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

 方法二:用代码的方法,参考 http://www.foxtable.com/help/topics/1453.htm

 


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/25 15:43:00 [只看该作者]

岗位名称有许多值,自然对应到档案表也是有许多不同的岗位名称,怎么样才能使得改变其中的一个岗位名称而引起档案表中相应的岗位名称的改变?
这样好像跨表不能实现啊,如果跨表不能实现要用关联,应该如何去关联呢

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


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

 你用关联吧,直接关联即可。

 

 父表:岗位表,岗位名称列;

 

 子表:档案表,岗位名称列;

 

 设置:http://www.foxtable.com/help/topics/1644.htm

 


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/25 16:28:00 [只看该作者]

我之前在档案表的datacolchanged事件中加了以下代码:
If e.DataCol.Name = "职务岗位" Then
    If e.DataRow.IsNull("职务岗位") Then
        e.DataRow("职别") = Nothing
        e.DataRow("职级") = Nothing
        e.DataRow("职系") = Nothing
    Else
        Dim dr As DataRow = DataTables("部门岗位").Find ( "部门名称 = '" & e.DataRow("工作部门") & "' And 岗位名称 = '" & e.DataRow("职务岗位") & "'" )
        e.DataRow("职别") = dr("职别")
        e.DataRow("职级") = dr("职级")
        e.DataRow("职系") = dr("职系")
    End If
End If
现在如果做成关联表,当改变岗位名称的值时会报错误:
.NET Framework 版本:2.0.50727.4984
Foxtable 版本:2014.4.21.1
错误所在事件:表,员工档案表,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

看来是和以上代码发生了冲突,以上代码的作用是当输入职务岗位时,职别,职级和职系会自动取值。
这应该如何改呢?


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


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

 那就不要做关联,在岗位表的DataColchanged事件写入代码

 

For Each dr As DataRow In DataTables("档案表").Select("部门名称 = '" & e.DataRow("工作部门") & "' And 岗位名称 = '" & e.OldValue & "'")
    dr("岗位名称") = e.NewValue
Next


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/25 17:03:00 [只看该作者]

因为我还要做职级的更新,职级的数据类型是Int,按照你上面说的那样,再更改岗位表的职级时,会报以下错误:
.NET Framework 版本:2.0.50727.4984
Foxtable 版本:2014.4.21.1
错误所在事件:表,部门岗位,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.Int32 和 System.String 上执行“=”操作。
请问甜姐,这个应该如何改啊?

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


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

哦,忘记判断列名了

 

If e.DataCol.Name = "岗位名称" Then   
    For Each dr As DataRow In DataTables("档案表").Select("部门名称 = '" & e.DataRow("工作部门") & "' And 岗位名称 = '" & e.OldValue & "'")
        dr("岗位名称") = e.NewValue
    Next  
End If


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/25 17:08:00 [只看该作者]

谢谢甜姐,可以了

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