Foxtable(狐表)用户栏目专家坐堂 → 如何获取最大值


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

主题:如何获取最大值

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


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
如何获取最大值  发帖心情 Post By:2008/11/2 13:04:00 [只看该作者]

请教如何从A、B、C、D列中获取最大值。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:竞赛枰评分.table


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/11/2 13:22:00 [只看该作者]

计算代码

Dim m As Integer = e.DataRow("A")
m = Math.Max(m, e.DataRow("B"))
m = Math.Max(m, e.DataRow("C"))
m = Math.Max(m, e.DataRow("D"))
e.DataRow("最大值") = m

[此贴子已经被作者于2008-11-2 13:23:36编辑过]

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


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

解答速度真快,谢谢lxl版主!


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


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

If e.Col.IsNumeric AndAlso e.Col.Name <> "平均分" and  e.Col.Name <> "最大值"  and  e.Col.Name <> "最小值"  Then
   dim zxz AS double  = e.row("最小值")
   dim zdz AS double  = e.row("最大值")
     If e.Row.IsNull(e.Col.Name) = False 
        If e.Row(e.Col.Name) = zxz Then 
            e.Style = "最小值" 
        ElseIf e.Row(e.Col.Name) = zdz   Then 
            e.Style = "最大值" 
        End If
    End If
End
以上公式是给最大值和最小值标识颜色,但是多个相同的最大值和最小值他都会标识颜色,而有多个最大值和最小值时我只想标识其中的各一个,公式该如何修改。谢谢!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/4 10:24:00 [只看该作者]

呵呵,这个我都没有办法。


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


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

贺老师,如果没办法,就不用颜色显示,想用增加一列“最大值列”,在列中显示第一个最大值列的列名,是否可以,如可以其公式如何写?谢谢!


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/4 12:25:00 [只看该作者]

Dim maxName As string = "A"

Dim maxValue As Integer = e.DataRow("A")

Dim Names() As  String = {"B","C","D"}

For Each Name As string In Names

   If e.Datarow(name) > maxValue Then

       maxName = name

       maxValue = e.DataRow(name)

   End If

Next

e.DataRow("最大值") = maxName

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目15.table


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2008/11/4 12:26:00 [只看该作者]

如判斷"A","B","C","D"列,配合Lxl版主的代碼,在DatacolChanged設置:
If "ABCD".IndexOf(e.DataCol.Name) > -1 Then
      e.DataTable.DataCols("最大值").Recalc(e.DataRow)

      Dim js As String() = {"A","B","C","D"}
      For i As byte = 0 to js.length-1
             If  e.DataRow(js(i)) = Nothing  Then
                   e.DataRow("最大值列") = Nothing
             Else if e.DataRow(js(i)) = e.DataRow("最大值") Then
                    e.DataRow("最大值列") = js(i)
                    Exit  For
             End If 
      Next
End If
[此贴子已经被作者于2008-11-4 12:41:46编辑过]

 回到顶部