以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  复选框选中后怎么找出最早的日期  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=39385)

--  作者:mamuaiqing
--  发布时间:2013/8/23 1:24:00
--  复选框选中后怎么找出最早的日期

Dim dr1 As DataRow
For Each r As Row In Tables("窗口1_Table1").GetCheckedRows
    dr1 = Tables("窗口1_Table1").DataTable.Find(""#","日期")
    If dr1 IsNot Nothing Then \'如果找到的话
       e.Form.Controls("DateTimePicker1").Value = dr1("日期")
    End If
Next

 

 

想找出窗口中的Table复选框已勾选最早的日期,并将值填到日期控件中,代码该怎么写?


--  作者:y2287958
--  发布时间:2013/8/23 6:18:00
--  
俺还是觉得另外增加一个逻辑列进行处理更好一些
--  作者:Bin
--  发布时间:2013/8/23 8:30:00
--  
以下是引用y2287958在2013-8-23 6:18:00的发言:
俺还是觉得另外增加一个逻辑列进行处理更好一些

同意
--  作者:狐狸爸爸
--  发布时间:2013/8/23 9:02:00
--  

不想增加列的话,可以这样:

 

Dim dt As Date = #12/31/9999#
For Each r As Row In Tables("窗口1_Table1").GetCheckedRows
    If r.isnull("日期") = False AndAlso r("日期") < dt Then
        dt = r("日期")
    End If
Next
output.show(dt)


--  作者:mamuaiqing
--  发布时间:2013/8/23 13:56:00
--  

感谢老爹的代码可以实现要求.

 

根据BIN老师跟y2287958老师的建议,学生写出下面的代码:

 

For Each r As Row In Tables("窗口1_Table1").GetCheckedRows
    r("逻辑列") = True
Next

Dim dr As DataRow
dr = Tables("窗口1_Table1").DataTable.Find("逻辑列 = True","日期")
If dr IsNot Nothing Then \'如果找到的话
    e.Form.Controls("DateTimePicker1").Value = dr("日期")
End If

 

同时学会两种做法,感谢三位老师