Foxtable(狐表)用户栏目专家坐堂 → 如何对关联表的关联行取值?


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

主题:如何对关联表的关联行取值?

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


加好友 发短信
等级:小狐 帖子:319 积分:2500 威望:0 精华:0 注册:2012/5/19 22:40:00
如何对关联表的关联行取值?  发帖心情 Post By:2014/10/31 11:39:00 [只看该作者]

一个任务单表,一个与任务单表关联的放行单表,任务单表中的“监造是否完成”列中的状态需根据放行单关联行中“监造是否完成”栏的值进行变更,当在放行单表中关联行多于一条时,如何将最后录入的一行中的“监造是否完成”栏值取到任务单表的对应栏。我现在只能取放行单表中中关联的第一行。请专家指点,谢谢!

维护的代码为:

监造基本信息表_DataColChanged

 

If e.DataCol.Name = "监造流水号" Then

    If e.NewValue Is Nothing Then

        e.DataRow("监造是否完成") = Nothing

    Else

        Dim dr As DataRow

        '否则在产品表查找同名的产品行,将找到的行赋值给变量dr

        dr = DataTables("监造放行单表").Find("[监造流水号] = '" & e.NewValue & "'")

        If dr IsNot Nothing Then

            e.DataRow("监造是否完成") = dr("监造是否完成")

            e.DataTable.Save()

        End If

    End If

End If


两个表为:

任务单表如下

任务编号 监造流水号 合同编号 监理人员 主要物资名称 合同交货时间 项目经理 监造是否完成
1 CI201410001 8100012345 李四 反应器 2014-10-31 易峰 部分完成
2 CI201410002 8100012346 王五 换热器 2014-10-31 易峰 正在监造
3 CI201410003 8100012347 张三 高压容器 2014-10-31 易峰 正在监造
4 CI201410004 8100012348 李四 低压容器 2014-10-31 易峰 正在监造
5 CI201410005 8100012349 张三 低压容器2 2014-10-31 易峰 正在监造


关联的放行单表如下:
任务编号 监造流水号 合同编号 主要物资名称 监造放行单编号 监造是否完成 监理人员
1 CI201410001 8100012345 反应器 CI201410001F001 部分完成 李四
1 CI201410001 8100012345 反应器 CI201410001F002 全部完成 李四




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


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


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


加好友 发短信
等级:小狐 帖子:319 积分:2500 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/31 12:14:00 [只看该作者]

甜版,可能我没说清楚,我的意思是:
对于任务表中的任务但编号1的一行,在关联表-放行单表中有2个关联行,但是我要取“监造放行单编号”最大的那一行中的“监造是否完成”栏中的值,并非把关联行找出来。即,把任务单表中任务编号为1的一行的“部分完成”改称放行单表中与之关联的第二行的“全部完成”。

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


加好友 发短信
等级:小狐 帖子:319 积分:2500 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/31 12:34:00 [只看该作者]

甜版,我考虑了一下,觉得应该是这样的逻辑,在子表中修改监造是否完成”栏,一旦完成修改(DataColChanged),就对应修改父表中关联行中的监造是否完成”栏,这样就只需要编写子表的DataColChanged,不知是否对?

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


加好友 发短信
等级:小狐 帖子:319 积分:2500 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/31 12:56:00 [只看该作者]

甜版,问题自己解决了,思路就是修改子表就对应修改关联主表。

 回到顶部