Foxtable(狐表)用户栏目专家坐堂 → 最大值问题


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

主题:最大值问题

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
最大值问题  发帖心情 Post By:2017/8/18 10:00:00 [只看该作者]

请教老师,如何从合计列挑选出最大值,并把该行对应的项目名称填入到最后一列

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目15.table


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/18 10:12:00 [只看该作者]

Dim dtr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "A","B","C","D"
       
        Dim Names() As  String = {"A","B","C","D"}
        Dim maxname As String
        Dim maxvalue As Double = 0
        For Each Name As String In Names
            If e.DataRow(name) > maxValue Then
                maxName = name
                maxValue = e.DataRow(name)
            End If
        Next
        If maxname > "" Then
            e.DataRow("最大值") = maxvalue
            e.DataRow("合计最大值项目名称") = maxName
        Else
            e.DataRow("最大值") = Nothing
            e.DataRow("合计最大值项目名称") = Nothing
        End If
       
        dtr("合计") = dtr("A") + dtr("B") + dtr("C") + dtr("D")
End Select

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


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/8/18 10:22:00 [只看该作者]

谢谢老师指导,可能是我表达有误,合计最大值项目名称的列,填入的不是当前行最大值的列名,而是合计列中最大值对应行的项目名称,谢谢

 

项目名称     A        B         C        D        合计          合计最大值项目名称

AA             1        2         3        4          10

BB             1        2         3        5          11                    BB

CC             1        2         3        3           9

 

用这段代码可以实现,怎样合并到老师指导的代码中

For Each r As Row In Tables("表A").Rows
Dim Total As String
Total = DataTables("表A").Compute("Max(合计)")
    If r("合计") = Total Then
        r("合计最大值项目名称") = e.DataRow("项目名称")
    Else
        r("合计最大值项目名称") = Nothing
    End If
Next

[此贴子已经被作者于2017/8/18 10:48:34编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/18 11:17:00 [只看该作者]

Dim dtr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "A","B","C","D"
       
        Dim Names() As  String = {"A","B","C","D"}
        Dim maxname As String
        Dim maxvalue As Double = 0
        For Each Name As String In Names
            If e.DataRow(name) > maxValue Then
                maxName = name
                maxValue = e.DataRow(name)
            End If
        Next
        If maxname > "" Then
            e.DataRow("最大值") = maxName
        Else
            e.DataRow("最大值") = Nothing
        End If
       
        dtr("合计") = dtr("A") + dtr("B") + dtr("C") + dtr("D")
    Case "合计"
        Dim fdr As DataRow = e.DataTable.Find("", "合计 desc")
        e.DataTable.ReplaceFor("合计最大值项目名称", fdr("项目名称"))
End Select

 回到顶部