以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]求一段条件求和的代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153269) |
-- 作者:忆似水流年 -- 发布时间:2020/8/5 15:40:00 -- [求助]求一段条件求和的代码 大家好!想要下面这个结果: 当前行的“单位”+“姓名”在之前的记录里没有出现过的话:“累计金额”=“当月金额”。 否则,当前行“累计金额”=累计至当前行所有记录里符合“单位”+“姓名”的“当月金额”之和。 先诚心谢谢啦 |
-- 作者:有点蓝 -- 发布时间:2020/8/5 15:44:00 -- 参考:http://www.foxtable.com/webhelp/topics/2136.htm |
-- 作者:忆似水流年 -- 发布时间:2020/8/5 16:41:00 -- 蓝大好 我依葫芦画瓢 改了其中一段 不成功T_T 可以麻烦您帮忙改一下么 谢谢您啦 Select Case e.DataCol.Name Case "当月金额"Dim dr As DataRow Dim mr As DataRow = e.DataRow Dim drs As List(of DataRow) dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [单位] = \'" & mr("单位") & "\' And [姓名] = \'" & mr("姓名") & "\'", "[_SortKey] Desc") If dr Is Nothing Then mr("累计金额") = mr("当月金额") dr = mr End If drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [单位] = \'" & mr("单位") & "\' And [姓名] = \'" & dr("姓名") & "\'", "[_SortKey]") For i As Integer = 1 To drs.Count - 1 drs(i)("累计金额") = drs(i)("当月金额") Next End Select
|
-- 作者:有点蓝 -- 发布时间:2020/8/5 16:55:00 -- drs(i)("累计金额") = drs(i-1)("累计金额") + drs(i)("当月金额")
|
-- 作者:忆似水流年 -- 发布时间:2020/8/5 22:31:00 -- 蓝大好 我把文档里下半段抄过来改完了 请问下 这句可以简化么 If e.DataCol.Name = "单位" AndAlso e.OldValue IsNot Nothing AndAlso
e.OldValue <> e.NewValue Or e.DataCol.Name = "姓名" AndAlso
e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then 我写成下面这样会报错T_T If e.DataCol.Name = ("单位" or "姓名”) AndAlso e.OldValue IsNot Nothing AndAlso
e.OldValue <> e.NewValue 先谢过您啦 |
-- 作者:有点蓝 -- 发布时间:2020/8/6 9:12:00 -- 不能简化,只能这样写 |