以文本方式查看主题

-  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=1736)

--  作者:hejfen
--  发布时间:2009/2/5 9:25:00
--  求教
在表“考核表”中填入“月份”、“姓名”,自动填入“正常工作日_小时“等的统计数据,请问代码如何写?是易表中用刷新公式:SumFor("加班人员表","合计加班天数","实际加班人员姓名","=",[姓名],"加班类型","=","正常工作日","单位"," = ","小时","月份"," = ",[月份])就行了。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加班表.table


--  作者:狐狸爸爸
--  发布时间:2009/2/5 10:22:00
--  
例如:

Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("加班人员表")
If e.DataCol.Name = "月份"  OrElse  e.DataCol.Name = "姓名"  Then
    If e.DataRow.IsNull("月份") OrElse e.DataRow.IsNull("姓名") Then
        e.DataRow("正常工作日加班_小时") = Nothing
        \'...清空其他计算字段
    Else
        e.DataRow("正常工作日加班_小时") = dt.Compute("Sum(合计加班时间)","[月份] = \'" & dr("月份") & "\' And [实际加班人员姓名] = \'" & dr("姓名") & "\'")
        \'...计算其他字段
    End if
End If

--  作者:smileboy
--  发布时间:2009/2/5 10:23:00
--  
Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("加班人员表")
If e.DataCol.Name = "月份" OrElse e.DataCol.Name = "姓名"
    if e.DataRow.IsNull("月份") OrElse e.DataRow.IsNull("姓名") Then
        e.DataRow("正常工作日加班_小时") = Nothing
    Else
        e.DataRow("正常工作日加班_小时") = dt.Compute("Sum(合计加班时间)","[月份] = \'" & dr("月份") & "\' And [实际加班人员姓名] = \'" & dr("姓名") & "\'")
    End If
End If

--  作者:hejfen
--  发布时间:2009/2/5 12:03:00
--  

还有二个个条件,是加班人员表的“加班类型”=“正常工作日”、“单位”=“小时”


--  作者:smileboy
--  发布时间:2009/2/5 12:05:00
--  
自己加上吧
--  作者:程兴刚
--  发布时间:2009/2/5 12:08:00
--  
Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("加班人员表")
If e.DataCol.Name = "月份" OrElse e.DataCol.Name = "姓名"
    if e.DataRow.IsNull("月份") OrElse e.DataRow.IsNull("姓名") Then
        e.DataRow("正常工作日加班_小时") = Nothing
    Else
        e.DataRow("正常工作日加班_小时") = dt.Compute("Sum(合计加班时间)","[月份] = \'" & dr("月份") & "\' And [实际加班人员姓名] = \'" & dr("姓名") &  "\' And [加班类型] = \'" & dr("正常工作日") & "\' And [单位] = \'" & dr("小时") &"\'")
    End If
End If



不知是否正确,没有测试!
--  作者:hejfen
--  发布时间:2009/2/5 14:56:00
--  

出错,因为该表没有“加班类型”列和“单位”列


--  作者:程兴刚
--  发布时间:2009/2/5 15:09:00
--  
以下是引用hejfen在2009-2-5 14:56:00的发言:

出错,因为该表没有“加班类型”列和“单位”列



    真是晕,您4楼怎么说的,不是您要增加条件吗?您添加那两个列不就可以了?


--  作者:hejfen
--  发布时间:2009/2/5 15:37:00
--  

 And [加班类型] = \'" & dr("正常工作日") & "\' And [单位] = \'" & dr("小时") &"\'")  就是这里搞不懂啊,
是不是要改成dt("加班类型")[单位]改成dt("单位"),但都是出错啊。


--  作者:狐狸爸爸
--  发布时间:2009/2/5 15:42:00
--  
呵呵,磨刀不砍柴工,你不应该现在就急于设计项目,而是需要在反复看几次帮助,特别是关于动态合成表达式的。

e.DataRow("正常工作日加班_小时") = dt.Compute("Sum(合计加班时间)","[月份] = \'" & dr("月份") & "\' And [实际加班人员姓名] = \'" & dr("姓名") & "\' And [加班类型] = \'正常工作日\' And [单位] = \'小时\'"