以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  某列的值来自另外一张表相同列名的值中最后一个值  (http://www.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
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

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

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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
--  
如下。
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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

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