Foxtable(狐表)用户栏目专家坐堂 → 求张、李、王列计算代码


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

主题:求张、李、王列计算代码

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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编辑过]


行不通吧老六.

假如参加分配人员列有其它字符(比如其它姓,而表中又没有此列),那岂不要报错.


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/8/20 0:09:00 [显示全部帖子]

以下是引用老有所乐在2009-8-19 23:40:00的发言:
谢mir725先生!达不到想要的效果


呵呵,肯定达不到效果的,你想啊如果删除某个字符,比如删除“王”,代码判断时就不存在“王”的列了,怎么可能会去清除“王”列中的数据呢?
二楼的代码稍做改去倒是可以达到你的要求。
暴力清除法:

Dim dr As DataRow = e.DataRow
If e.DataCol.Name = "参加分配人员" Then
    dr("参加分配人数") = Nothing
    dr("张") = Nothing
    dr("李") = Nothing
    dr("王") = Nothing
    dr("参加分配人数") = dr("参加分配人员").Length
    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



个人觉得有些代码并不一定要简洁才好,当然如果能完全达到要求没得说,如果会出错,求简洁是没用的。

[此贴子已经被作者于2009-8-20 0:10:30编辑过]

 回到顶部