Foxtable(狐表)用户栏目专家坐堂 → [求助]计算代码可以优化吗


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

主题:[求助]计算代码可以优化吗

美女呀,离线,留言给我吧!
foxstudent
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:99 积分:1019 威望:0 精华:0 注册:2011/12/29 9:20:00
[求助]计算代码可以优化吗  发帖心情 Post By:2012/2/17 16:50:00 [只看该作者]

表A是费用明细表,表B是统计表,

表A有“费用类别”、“金额”列,其中“费用类别”列的内容有费用1,费用2,费用3等,

表B中,费用1,费用2,费用3等是其中的部分列名,现在要按年月统计费用1、费用2的金额,这个代码能不能优化或者用其他好的方法?

Dim dr As DataRow = e.DataRow

Dim dt As DataTable =DataTables("表A")
If e.DataCol.Name = "姓名" And dr.IsNull("姓名") = False Then
    dr("费用1") = dt.Compute("Sum(金额)", "[姓名] = '" & dr("姓名") & " 'and [年] = '" & dr("年") & "'and [月] = '" & dr("月") & "'And [费用类别] = '" & "费用1" & "'")

    dr("费用2") = dt.Compute("Sum(金额)", "[姓名] = '" & dr("姓名") & " 'and [年] = '" & dr("年") & "'and [月] = '" & dr("月") & "'And [费用类别] = '" & "费用2" & "'")

    ……

End If

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/17 16:55:00 [只看该作者]

If e.DataCol.Name = "姓名" And dr.IsNull("姓名") = False Then
    For i As Integer = 1  To 2  
        dr("费用" & i ) = dt.Compute("Sum(金额)", "[姓名] = '" & dr("姓名") & " 'and [年] = '" & dr("年") & "'and [月] = '" & dr("月") & "'And [费用类别] = '费用" & i & "'")
   Next
End If

 回到顶部
美女呀,离线,留言给我吧!
foxstudent
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:99 积分:1019 威望:0 精华:0 注册:2011/12/29 9:20:00
  发帖心情 Post By:2012/2/17 17:00:00 [只看该作者]

谢谢老六,其实我的费用1、费用2是为了便于提问说明起的名,实际表中不是这个列名啊,不过给了我一个思路,我可以在表A中新建一个列,对应成1、2、3,在表B中,把列名和列标题分开,就可以解决了

[此贴子已经被作者于2012-2-17 17:03:05编辑过]

 回到顶部