以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表间数据问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101616)

--  作者:bluesky3234
--  发布时间:2017/6/4 9:55:00
--  表间数据问题
尊敬的老师: 
    我需实现这样的功能:
在(表A)中输入一个名字,能够根据 (窗口1) 上的时间段,自动计算这个时间段内的此人在(表B)中的的 全部奖励处罚之和,然后显示在(表A)的奖惩栏中。
如果(表A)中输入的名字,(表B)中此时间段没有奖惩记录,则表A奖惩栏自动为0

麻烦老师,谢谢
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:例子.zip


--  作者:有点色
--  发布时间:2017/6/4 10:06:00
--  

DataColChanged事件,写代码

 

Select Case e.DataCol.name
    Case "姓名"
        If e.NewValue = Nothing Then
            e.DataRow("奖惩") = Nothing
        Else
            Dim filter As String = "姓名 = \'" & e.NewValue & "\'"
            Dim frm As WinForm.Form = forms("窗口1")
            If frm.Opened Then
                If frm.Controls("DateTimePicker1").value <> Nothing Then
                    filter &= " and 时间 >= #" & frm.Controls("DateTimePicker1").value & "#"
                End If
                If frm.Controls("DateTimePicker2").value <> Nothing Then
                    filter &= " and 时间 <= #" & frm.Controls("DateTimePicker2").value & "#"
                End If
            End If
            e.DataRow("奖惩") = DataTables("表B").Compute("sum(奖励分数)", filter) -  DataTables("表B").Compute("sum(处罚分数)", filter)
        End If
End Select


--  作者:bluesky3234
--  发布时间:2017/6/4 10:36:00
--  

谢谢老师