Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共18 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

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

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

[此贴子已经被作者于2009-8-18 18:21:07编辑过]
2楼
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
3楼
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
4楼
狐狸爸爸 发表于: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编辑过]
5楼
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编辑过]


行不通吧老六.

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

6楼
老有所乐 发表于:2009/8/18 22:43:00
非常感激三位老师的指导!!!
7楼
老有所乐 发表于: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编辑过]

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

8楼
mr725 发表于:2009/8/19 16:45:00
以下是引用老有所乐在2009-8-19 16:16:00的发言:

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

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

9楼
老有所乐 发表于:2009/8/19 16:57:00
是的,我试了。主要是学习一下。贺老师代码简短些。
10楼
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

共18 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 3 queries.