Foxtable(狐表)用户栏目专家坐堂 → 指定列的最大日期怎么求?


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

主题:指定列的最大日期怎么求?

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
指定列的最大日期怎么求?  发帖心情 Post By:2013/4/19 15:52:00 [显示全部帖子]

 第三列 第七列 第九列 第十列 为日期列

在第一列中求 第三列 第七列 第九列 第十列 的最大的日期

该如何写?


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 15:59:00 [显示全部帖子]

以下是引用程兴刚在2013-4-19 15:55:00的发言:
datatables("某某表").Compute("Max(日期)")

 

程总 ,我是想指定某几列
[此贴子已经被作者于2013-4-19 15:59:28编辑过]

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 16:00:00 [显示全部帖子]

以下是引用程兴刚在2013-4-19 15:59:00的发言:

标题和实际要求不符,您的实际要求应该是这个:

e.datarow("第一列") = Math.Max(e.datarow("第三列"),e.datarow("第七列"),e.datarow("第九列"),e.datarow("第十列"))

sooga  感谢程总


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 16:40:00 [显示全部帖子]

以下是引用程兴刚在2013-4-19 15:59:00的发言:

标题和实际要求不符,您的实际要求应该是这个:

e.datarow("第一列") = Math.Max(e.datarow("第三列"),e.datarow("第七列"),e.datarow("第九列"),e.datarow("第十列

 

程总 还是有点问题 ,帮忙看下吧


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 18:53:00 [显示全部帖子]

以下是引用jijianjsj在2013-4-19 17:19:00的发言:
max是比较2个数吧,帮助中有个用自定义函数的例子

增加一个自定义函数,名称为Max,代码为:

Dim MaxVal As Double = Args(0)
For
i As Integer = 1 To Args.Length - 1
    MaxVal = Math.Max(MaxVal,Args(i))
Next
Return
MaxVal

该自定义函数可以比较任意个数的参数,并返回最大的一个,例如在命令窗口执行:

Output.Show(Functions.Execute("Max",1,3,5,7,9))

即可显示13579几个数值中的最大数9



希望对你有用~!

 

日期和数字是不同的~~


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 18:54:00 [显示全部帖子]

以下是引用rjh4078在2013-4-19 18:22:00的发言:
楼上正解

 

这个函数我看过,但数字和日期是不同的


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 19:40:00 [显示全部帖子]

以下是引用jijianjsj在2013-4-19 19:24:00的发言:
唉,我帮你改良了一下,还是自定义函数
Dim MaxVal As Date = Args(0)
For i As Integer = 1 To Args.Length - 1
    If DateDiff("d", MaxVal, Args(i)) > 0 Then
        MaxVal = Args(i)
    End If
Next
Return MaxVal

测试过了,应该没问题了
[此贴子已经被作者于2013-4-19 19:24:25编辑过]

非常感谢!


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/19 19:40:00 [显示全部帖子]

以下是引用程兴刚在2013-4-19 19:32:00的发言:

我的疏忽,本办法可以用这个:

 

If e.DataCol.name <> "第一列"
    Dim s As String = "三|七|九|十"
    Dim Values() As String
    Values = s.split("|")
    Dim Dt As New List(Of Date)
    For i As Integer = 0 To Values.Length - 1
        Dt.Add(e.DataRow("第" & Values(i) & "列"))
    Next
    Dt.Sort
    e.DataRow("第一列") = dt(Dt.Count-1)
End If

非常感谢程总!


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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/26 13:17:00 [显示全部帖子]

如果再求指定列最大日期的列名 要怎么求?

Select Case e.DataCol.name
    Case "商务部_下单日","开发部_设计实际完成日","仓库_原材下料实际完成日","采购部_实际开始日","采购部_实际到货日"
        Dim dr As DataRow = e.DataRow
        If dr.Isnull("商务部_下单日") Then
            dr("生产状态") = "尚未下单"
        Else
            dr("生产状态") = Functions.Execute("maxdate",dr("商务部_下单日"),dr("开发部_设计实际完成日"),dr("仓库_原材下料实际完成日"),dr("采购部_实际开始日"),dr("采购部_实际到货日"))
end if
end select
这是求最大日期列的 我现在要最大日期列的列名 改如何改?

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


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/4/26 18:43:00 [显示全部帖子]

有人帮忙看下吗 亲

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