以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求张、李、王列计算代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3911) |
||||
-- 作者:老有所乐 -- 发布时间:2009/8/18 18:18:00 -- 求张、李、王列计算代码 “张”“李”“王”列数据是将“金额”列数据按照“参加分配人员数”平均分配的。同时根据“参加分配人员”列确定某列是否参加分配,如果“参加分配人员”列不包含该列名,该列则为空。求“张”“李”“王”列的代码。谢谢!
[此贴子已经被作者于2009-8-18 18:21:07编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/8/18 19:08:00 -- 这样? Dim dr As DataRow = e.DataRow If e.DataCol.Name = "参加分配人员" Then If dr.IsNull("参加分配人员") Then dr("参加分配人数") = Nothing dr("张") = Nothing dr("李") = Nothing dr("王") = Nothing Else dr("参加分配人数") = dr("参加分配人员").Length End If If dr("参加分配人员").Contains("张") Then dr("张") = dr("金额") / dr("参加分配人数") End If If dr("参加分配人员").Contains("李") Then dr("李") = dr("金额") / dr("参加分配人数") End If If dr("参加分配人员").Contains("王") Then dr("王") = dr("金额") / dr("参加分配人数") End If End if |
||||
-- 作者:yangming -- 发布时间:2009/8/18 19:09:00 -- If e.DataRow("参加分配人员").Contains("张") Then e.DataRow("张") =e.DataRow("金额")/e.DataRow("参加分配人数") End If If e.DataRow("参加分配人员").Contains("李") Then e.DataRow("李") =e.DataRow("金额")/e.DataRow("参加分配人数") End If If e.DataRow("参加分配人员").Contains("王") Then e.DataRow("王") =e.DataRow("金额")/e.DataRow("参加分配人数") End If |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/8/18 19:13:00 -- If e.DataCol.Name = "参加分配人员" OrElse e.DataCol.Name = "金额" Then Dim s As String = e.DataRow("参加分配人员") Dim c As integer = s.Length If c > 0 Then For i As integer = 0 To c-1 e.DataRow(s.Chars(i)) = e.Datarow("金额")/c Next End If End If [此贴子已经被作者于2009-8-18 19:13:24编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/8/18 19:17:00 -- 以下是引用狐狸爸爸在2009-8-18 19:13:00的发言:
If e.DataCol.Name = "参加分配人员" OrElse e.DataCol.Name = "金额" Then Dim s As String = e.DataRow("参加分配人员") Dim c As integer = s.Length If c > 0 Then For i As integer = 0 To c-1 e.DataRow(s.Chars(i)) = e.Datarow("金额")/c Next End If End If [此贴子已经被作者于2009-8-18 19:13:24编辑过]
|
||||
-- 作者:老有所乐 -- 发布时间:2009/8/18 22:43:00 -- 非常感激三位老师的指导!!! |
||||
-- 作者:老有所乐 -- 发布时间:2009/8/19 16:16:00 -- 以下是引用狐狸爸爸在2009-8-18 19:13:00的发言:
If e.DataCol.Name = "参加分配人员" OrElse e.DataCol.Name = "金额" Then Dim s As String = e.DataRow("参加分配人员") Dim c As integer = s.Length If c > 0 Then For i As integer = 0 To c-1 e.DataRow(s.Chars(i)) = e.Datarow("金额")/c Next End If End If [此贴子已经被作者于2009-8-18 19:13:24编辑过] 贺老师这个代码,如果在参加分配人员列输入张李王三人,张王李三列已将计算结果算好填入,但要删除一人王,如何使王列数据自动删除。代码该如何写,谢谢! |
||||
-- 作者:mr725 -- 发布时间:2009/8/19 16:45:00 -- 以下是引用老有所乐在2009-8-19 16:16:00的发言:
贺老师这个代码,如果在参加分配人员列输入张李王三人,张王李三列已将计算结果算好填入,但要删除一人王,如何使王列数据自动删除。代码该如何写,谢谢! 2楼代码好使,狐爸这个要在【参加分配人员】列中必须包含 张、王、李 且不能有其他的姓氏时才有效,放在datacolchanged中与删除不删除无关吧? |
||||
-- 作者:老有所乐 -- 发布时间:2009/8/19 16:57:00 -- 是的,我试了。主要是学习一下。贺老师代码简短些。 |
||||
-- 作者:mr725 -- 发布时间:2009/8/19 17:06:00 -- 删除‘王’:这段代码: If c > 0 Then For i As integer = 0 To c-1 e.DataRow(s.Chars(i)) = e.Datarow("金额")/c Next End If 改为: If c > 0 Then For i As integer = 0 To c-1 e.DataRow(s.Chars(i)) = nothing e.DataRow(s.Chars(i)) = e.Datarow("金额")/c Next End If |