Foxtable(狐表)用户栏目专家坐堂 → 代码简化


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

主题:代码简化

帅哥哟,离线,有人找我吗?
wangnovel
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:211 积分:2241 威望:0 精华:0 注册:2012/10/6 17:19:00
代码简化  发帖心情 Post By:2017/2/2 1:03:00 [只看该作者]

A

分类码

金额

a

1

b

21

c

3

a

22

c

4

a

6

 

B

分类码

分类金额

字段2

字段3

字段四

a

29

 

 

 

b

21

 

 

 

c

7

 

 

 

 

B是一个复杂的统计报表,要从不同的表中获取数据。其中有一项是求分类金额,从表A中进行分类求和得到,如图。(表B的“分类码”是固定的)


我写了三段相同的代码分别求出了a、b、c的分类金额,但我觉得这样太啰嗦了,请问如何整合成一段代码?


'计算专业分类码为a的分类金额

Dim dr_a As DataRow

dr_a=DataTables("B").Find("分类码='a'")

If dr_a.IsNull("分类码")=False Then '如果找得到专业分类码为a的行

    Dim Total_a As Double

    Total_a = DataTables("A").Compute("Sum(金额)", "分类码= 'a'")

    dr_a("分类金额")=Total_a

End If

 

'计算专业分类码为b的分类金额

Dim dr_b As DataRow

dr_b=DataTables("B").Find("分类码='b'")

If dr_b.IsNull("分类码")=False Then '如果找得到专业分类码为b的行

    Dim Total_b As Double

    Total_b = DataTables("A").Compute("Sum(金额)", "分类码= 'b'")

    dr_b("分类金额")=Total_b

End If

 

'计算专业分类码为c的分类金额

Dim dr_c As DataRow

dr_c=DataTables("B").Find("分类码='c'")

If dr_c.IsNull("分类码")=False Then '如果找得到专业分类码为c的行

    Dim Total_c As Double

    Total_c = DataTables("B").Compute("Sum(金额)", "分类码= 'c'")

    dr_c("分类金额")=Total_c

End If


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/2 9:15:00 [只看该作者]

DataColChanged事件

 

Dim dr_a As DataRow

dr_a=DataTables("B").Find("分类码='" & e.DataRow("分类码") & "'")

If dr_a.IsNull("分类码")=False Then '如果找得到专业分类码为a的行

    Dim Total_a As Double

    Total_a = DataTables("A").Compute("Sum(金额)", "分类码='" & e.DataRow("分类码") & "'")

    dr_a("分类金额")=Total_a

End If


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


加好友 发短信
等级:童狐 帖子:211 积分:2241 威望:0 精华:0 注册:2012/10/6 17:19:00
  发帖心情 Post By:2017/2/2 20:39:00 [只看该作者]

嗯,谢谢,我加了个数组,将您的简化代码改成了按钮事件的。

 回到顶部