以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 某列的值来自另外一张表相同列名的值中最后一个值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26305) |
||||
-- 作者:zcw728909 -- 发布时间:2012/11/29 17:15:00 -- 某列的值来自另外一张表相同列名的值中最后一个值 有表C和表B,如下图: 1.表C中入库时间和查询时间的值取自表B相同编号的入库时间和查询时间,并且是最晚的时间 2.表C中入库人的值取自表B中相同编号的入库人的值,取值规律是:薛六,王五,李四,张三按顺序排,表B入库人值里面哪个人是按顺序排后面的,表C中的入库人就取那个人。 而且都要能实时更新,想实现这样的目的,思路怎么写? 此主题相关图片如下:122.jpg 此主题相关图片如下:123.jpg
[此贴子已经被作者于2012-11-29 17:16:10编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/11/29 17:24:00 -- Select Case e.DataCol.name
参考: http://www.foxtable.com/help/topics/0396.htm
|
||||
-- 作者:zcw728909 -- 发布时间:2012/11/29 17:31:00 -- 关键是入库人列,怎样设置一下取值的时候能按“薛六,王五,李四,张三”这样的顺序取,因为入库人的取值不是按最后的入库时间取的 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/11/29 17:33:00 -- 你的意思是什么? 如果同一个编号,张三和王五都入库了,即使张三入库时间在前,也取王五? 这是什么道理? |
||||
-- 作者:zcw728909 -- 发布时间:2012/11/29 17:38:00 -- 对,因为要判断一个负责人,和入库时间没关系,入库人列是单独处理的,不管谁先去入库,只显示级别最高的那个人 |
||||
-- 作者:狐狸爸爸 -- 发布时间: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 -- 发布时间:2012/11/29 17:48:00 -- 如下。
|
||||
-- 作者:zcw728909 -- 发布时间:2012/11/29 17:50:00 -- 嗯,这次可以了,这句“If dr IsNot Nothing Then”是只判断表B的入库时间列,还是查询时间列也判断? |
||||
-- 作者:zcw728909 -- 发布时间:2012/11/29 18:03:00 -- lin_hailun的代码有点看不懂 |
||||
-- 作者:zcw728909 -- 发布时间:2012/11/30 8:53:00 -- 我这个不是在切换表的时候使用的,而是当表B的入库时间、查询时间、入库人发生变化时,表C的入库时间、查询时间、入库人自动取值 |