以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为什么不自动统计了??  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34771)

--  作者:shadow1221
--  发布时间:2013/6/15 9:06:00
--  为什么不自动统计了??

表A中数据在工资表中是自动按日期统计的,为什么14日的丛迎春和贺志宏在表a中数据录入完成后,在工资表中没有统计!

求帮助

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:121.rar


--  作者:狐狸爸爸
--  发布时间:2013/6/15 9:13:00
--  

你放上来的的表,明明就统计出来了啊,不过代码最好加上姓名和日期的判断:

 

 

Select Case e.DataCol.name
    Case "数量","单产值","计时产值","虚给产值","负产值","姓名","日期"
        If e.DataRow.IsNull("姓名")=False AndAlso e.DataRow.IsNull("日期")=False Then
            Dim dr As DataRow = DataTables("工资统计表").Find("日期 = #" & e.DataRow("日期") & "# and 员工姓名 = \'" & e.DataRow("姓名") & "\'")
            If dr Is Nothing Then
                Dim dr2 As DataRow = DataTables("工资统计表").AddNew
                dr2("计件产值")=e.DataTable.Compute("sum(实产值_计件)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr2("计时产值")=e.DataTable.Compute("sum(计时产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr2("需给产值")=e.DataTable.Compute("sum(虚给产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr2("员工姓名")=e.DataRow("姓名")
                dr2("总产值")=e.DataTable.Compute("sum(总产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr2("日期")=e.DataRow("日期")
                dr2("工资")=e.DataTable.Compute("sum(总产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")*0.06
            Else
                dr("计件产值")=e.DataTable.Compute("sum(实产值_计件)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr("计时产值")=e.DataTable.Compute("sum(计时产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr("需给产值")=e.DataTable.Compute("sum(虚给产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr("总产值")=e.DataTable.Compute("sum(总产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")
                dr("工资")=e.DataTable.Compute("sum(总产值)","日期 = #" & e.DataRow("日期") & "# and 姓名 = \'" & e.DataRow("姓名") & "\'")*0.06
            End If
        End If
End Select


--  作者:狐狸爸爸
--  发布时间:2013/6/15 9:16:00
--  

此外,这种统计方式是不恰当的,特别是对于新手。

通常是输入数据,需要得到统计结果的时候,再进行分组统计,得出统计结果,这样简单方便很多。

 

不写代码的:

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

 

写代码的:

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

 

不管是新手还是老手,设计系统的第一原则就是: 简单可靠。

[此贴子已经被作者于2013-6-15 9:18:29编辑过]

--  作者:Bin
--  发布时间:2013/6/15 9:21:00
--  
统计的结果没有问题,只不过你一大堆空白行, 把结果推到下面去了.你拉下去就看到了.
--  作者:shadow1221
--  发布时间:2013/6/15 9:28:00
--  
O  呵呵 谢谢啊