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


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

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

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


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
求张、李、王列计算代码  发帖心情 Post By:2009/8/18 18:18:00 [只看该作者]

“张”“李”“王”列数据是将“金额”列数据按照“参加分配人员数”平均分配的。同时根据“参加分配人员”列确定某列是否参加分配,如果“参加分配人员”列不包含该列名,该列则为空。求“张”“李”“王”列的代码。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:复搭棚记录2.table

[此贴子已经被作者于2009-8-18 18:21:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]


行不通吧老六.

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


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


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2009/8/18 22:43:00 [只看该作者]

非常感激三位老师的指导!!!

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


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/8/19 16:45:00 [只看该作者]

以下是引用老有所乐在2009-8-19 16:16:00的发言:

贺老师这个代码,如果在参加分配人员列输入张李王三人,张王李三列已将计算结果算好填入,但要删除一人王,如何使王列数据自动删除。代码该如何写,谢谢!

2楼代码好使,狐爸这个要在【参加分配人员】列中必须包含 张、王、李 且不能有其他的姓氏时才有效,放在datacolchanged中与删除不删除无关吧?


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


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2009/8/19 16:57:00 [只看该作者]

是的,我试了。主要是学习一下。贺老师代码简短些。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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


 回到顶部
总数 18 1 2 下一页