以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]计算代码可以优化吗 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16575) |
-- 作者:foxstudent -- 发布时间: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") dr("费用2") = dt.Compute("Sum(金额)", "[姓名] = \'" & dr("姓名") & " \'and [年] = \'" & dr("年") & "\'and [月] = \'" & dr("月") & "\'And [费用类别] = \'" & "费用2" & "\'") …… End If
|
-- 作者:狐狸爸爸 -- 发布时间: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 -- 发布时间:2012/2/17 17:00:00 -- 谢谢老六,其实我的费用1、费用2是为了便于提问说明起的名,实际表中不是这个列名啊,不过给了我一个思路,我可以在表A中新建一个列,对应成1、2、3,在表B中,把列名和列标题分开,就可以解决了 [此贴子已经被作者于2012-2-17 17:03:05编辑过]
|