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


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

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

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


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

 大概是这样了。

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



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


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

这次可以了,还有点小问题,当我把表B的入库时间或查询时间删除后,就报错,这是什么原因?

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


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

 加一个是否为空的判断就行了。

Select Case e.DataCol.Name
    Case "编号"
        Dim dt As DataTable = DataTables("表B")
        Dim names() As String = {"张三", "李四", "王五", "薛六"}
       
        Dim dr As DataRow = DataTables("表C").Find("编号 = '" & e.NewValue & "'")
        If dr Is Nothing Then dr = DataTables("表C").AddNew
        dr("编号") = e.NewValue
        dr("入库时间") = dt.Compute("Max(入库时间)", "编号 = '" & e.NewValue & "'")
        dr("查询时间") = dt.Compute("Max(查询时间)", "编号 = '" & e.NewValue & "'")
        For Each name As String In names
            If dt.Find("入库人 = '" & name & "' And 编号 = '" & e.NewValue & "'") IsNot Nothing Then
                dr("入库人") = name
                Exit For
            End If
        Next
       
    Case "入库时间", "查询时间"
        Dim dt As DataTable = DataTables("表B")
        Dim fdr As DataRow = DataTables("表C").Find("编号 = '" & e.DataRow("编号") & "'")
       
        If e.DataRow.IsNull(e.DataCol.Name) Then
            fdr(e.DataCol.Name) = dt.Compute("Max(" & e.DataCol.Name & ")", "编号 = '" & e.DataRow("编号") & "'")
        Else
            Dim dr As DataRow = dt.Find("编号 = '" & e.DataRow("编号") & "' And " & e.DataCol.Name & " > '" & e.NewValue & "'")
            If dr Is Nothing Then
                fdr(e.DataCol.Name) = e.NewValue
            End If
        End If
       
    Case "入库人"
        Dim names() As String = {"张三", "李四", "王五", "薛六"}
        Dim dt As DataTable = DataTables("表C")
       
        Dim fdr As DataRow = dt.Find("编号 = '" & e.DataRow("编号") & "'")
        For Each name As String In names
            If DataTables("表B").Find("入库人 = '" & name & "' And 编号 = '" & e.DataRow("编号") & "'") IsNot Nothing Then
                fdr("入库人") = name
                Exit For
            End If
        Next
End Select

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