以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何获取最大值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1043)

--  作者:老有所乐
--  发布时间:2008/11/2 13:04:00
--  如何获取最大值
请教如何从A、B、C、D列中获取最大值。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:竞赛枰评分.table


--  作者:lxl
--  发布时间: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编辑过]

--  作者:老有所乐
--  发布时间:2008/11/2 13:32:00
--  

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


--  作者:老有所乐
--  发布时间: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
以上公式是给最大值和最小值标识颜色,但是多个相同的最大值和最小值他都会标识颜色,而有多个最大值和最小值时我只想标识其中的各一个,公式该如何修改。谢谢!

--  作者:狐狸爸爸
--  发布时间:2008/11/4 10:24:00
--  

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


--  作者:老有所乐
--  发布时间:2008/11/4 11:53:00
--  

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


--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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编辑过]