以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何实现员工当天累计工时的计算(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57436)

--  作者:yyzlxc
--  发布时间:2014/9/24 21:23:00
--  [求助]如何实现员工当天累计工时的计算(已解决)
求助:如何在C表的DataColChanged事件中编写代码,实现员工的当天累计工时的计算。请各位老师指教,谢谢。

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


[此贴子已经被作者于2014-9-24 22:11:46编辑过]

--  作者:有点甜
--  发布时间:2014/9/24 21:33:00
--  

 这个意思?

 

Select Case e.DataCol.Name
    Case "日期","员工"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("计数") = Nothing
        Else
            Dim max As String \'最大编号
            Dim idx As Integer
            Dim rq As String = e.DataRow("日期")
            Dim yg As String = e.DataRow("员工")
            max = e.DataTable.Compute("Max(计数)","日期 = \'"& rq &"\' And 员工 = \'"& yg &"\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得最大计数
            If max > "" Then \'如果存在最大计数
                idx = CInt(max) + 1 \'获得最大计数,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End If
            e.DataRow("计数") = idx
        End If
    Case "工时"
        For Each dr As DataRow In e.DataTable.Select("[_SortKey] >= " & e.DataRow("_SortKey"))
            Dim Val1 As Double = e.DataTable.Compute("Sum(工时)","[_SortKey] <= " & e.DataRow("_SortKey") & " and 员工 = \'" & e.DataRow("员工") & "\'")
            dr("累计工时") = Val1
        Next

End Select

 

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

 

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

 


--  作者:yyzlxc
--  发布时间:2014/9/24 21:53:00
--  
谢谢甜老师的指教,好像还不行,累计工时没有数据。
--  作者:有点甜
--  发布时间:2014/9/24 21:55:00
--  

 你要重置列 【工时】

 

 或者修改了工时列的内容。

 

 


--  作者:yyzlxc
--  发布时间:2014/9/24 22:11:00
--  
谢谢甜老师,解决了,再次感谢!!