Foxtable(狐表)用户栏目专家坐堂 → 某列的值来自另外一张表相同列名的值中最后一个值


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

主题:某列的值来自另外一张表相同列名的值中最后一个值

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


加好友 发短信
等级:童狐 帖子:209 积分:1607 威望:0 精华:0 注册:2012/9/7 20:24:00
某列的值来自另外一张表相同列名的值中最后一个值  发帖心情 Post By:2012/11/29 17:15:00 [只看该作者]

有表C和表B,如下图:

1.表C中入库时间和查询时间的值取自表B相同编号的入库时间和查询时间,并且是最晚的时间

2.表C中入库人的值取自表B中相同编号的入库人的值,取值规律是:薛六,王五,李四,张三按顺序排,表B入库人值里面哪个人是按顺序排后面的,表C中的入库人就取那个人。

而且都要能实时更新,想实现这样的目的,思路怎么写?


图片点击可在新窗口打开查看此主题相关图片如下:122.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

[此贴子已经被作者于2012-11-29 17:16:10编辑过]

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


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

Select Case e.DataCol.name
    Case "编号"
        Dim dr As DataRow = DataTables("表B").Find("编号 = '" & e.NewValue & "'","入库时间 Desc")
        If dr IsNot Nothing Then
            e.DataRow("入库时间") = dr("入库时间")
            e.DataRow("查询时间") = dr("查询时间")
            e.DataRow("入库人") = dr("入库人")
        End If
End Select

 

参考:

http://www.foxtable.com/help/topics/0396.htm

 


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


加好友 发短信
等级:童狐 帖子:209 积分:1607 威望:0 精华:0 注册:2012/9/7 20:24:00
  发帖心情 Post By:2012/11/29 17:31:00 [只看该作者]

关键是入库人列,怎样设置一下取值的时候能按“薛六,王五,李四,张三”这样的顺序取,因为入库人的取值不是按最后的入库时间取的

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


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

你的意思是什么?

如果同一个编号,张三和王五都入库了,即使张三入库时间在前,也取王五? 这是什么道理?


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


加好友 发短信
等级:童狐 帖子:209 积分:1607 威望:0 精华:0 注册:2012/9/7 20:24:00
  发帖心情 Post By:2012/11/29 17:38:00 [只看该作者]

对,因为要判断一个负责人,和入库时间没关系,入库人列是单独处理的,不管谁先去入库,只显示级别最高的那个人

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


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

Select Case e.DataCol.name
    Case "编号"
        Dim dr As DataRow = DataTables("表B").Find("编号 = '" & e.NewValue & "'","入库时间 Desc")
        Dim vals As List(of String) = DataTables("表B").GetUniqueValues("编号 = '" & e.NewValue & "'","入库人")
        Dim nms() As String = {"薛六","王五","李四","张三"}
        If dr IsNot Nothing Then
            e.DataRow("入库时间") = dr("入库时间")
            e.DataRow("查询时间") = dr("查询时间")
        End If
        For Each nm As String In nms
            If vals.Contains(nm) Then
                e.DataRow("入库人") = nm
                Exit For
            End If
        Next
End Select

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/29 17:48:00 [只看该作者]

如下。
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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


加好友 发短信
等级:童狐 帖子:209 积分:1607 威望:0 精华:0 注册:2012/9/7 20:24:00
  发帖心情 Post By:2012/11/29 17:50:00 [只看该作者]

嗯,这次可以了,这句“If dr IsNot Nothing Then”是只判断表B的入库时间列,还是查询时间列也判断?

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


加好友 发短信
等级:童狐 帖子:209 积分:1607 威望:0 精华:0 注册:2012/9/7 20:24:00
  发帖心情 Post By:2012/11/29 18:03:00 [只看该作者]

lin_hailun的代码有点看不懂

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


加好友 发短信
等级:童狐 帖子:209 积分:1607 威望:0 精华:0 注册:2012/9/7 20:24:00
  发帖心情 Post By:2012/11/30 8:53:00 [只看该作者]

以下是引用lin_hailun在2012-11-29 17:48:00的发言:
如下。
 
 下载信息  [文件大小:316.0 KB  下载次数:7]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

我这个不是在切换表的时候使用的,而是当表B的入库时间、查询时间、入库人发生变化时,表C的入库时间、查询时间、入库人自动取值


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