以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]删除时差小于等于60秒的同类行(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67289)

--  作者:yyzlxc
--  发布时间:2015/4/21 21:00:00
--  [求助]删除时差小于等于60秒的同类行(已解决)
如何通过代码,实现如下功能:查找编号 = 编号,类别 = 类别,时间 <= 60秒 的行,并删除时间稍大的行(对应表,删除第九行),请各位老师指教,谢谢!!

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


[此贴子已经被作者于2015/4/22 7:45:57编辑过]

--  作者:游
--  发布时间:2015/4/21 21:27:00
--  
先用 DataTable.Select  排个序 (编号 , 类别,时间

然后再遍历两两对比


--  作者:有点甜
--  发布时间:2015/4/21 21:38:00
--  
你可以看看:
http://www.foxtable.com/help/topics/0396.htm

这个Find可以根据制指定条件,按指定顺序找出第一行,找到后你删除就行。

dim dr as datarow = datatables.find("条件表达式","日期 Desc")
if dr isnot nothing then    
     dr.Delete
end if

--  作者:yyzlxc
--  发布时间:2015/4/21 21:53:00
--  
谢谢两位老师的指教,对于时间差小于等于60秒,在条件表达式中如何表述?请老师指教,谢谢!
--  作者:狐狸爸爸
--  发布时间:2015/4/21 22:07:00
--  
修改表结构,出和入在同一行的不同列
--  作者:yyzlxc
--  发布时间:2015/4/21 22:16:00
--  
按照狐爸老师的要求,修改了表结构,下一步如何做,请老师指教,谢谢!!


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



--  作者:狐狸爸爸
--  发布时间:2015/4/21 22:19:00
--  
再增加一列,算出时差,根据这列设置条件即可
--  作者:yyzlxc
--  发布时间:2015/4/21 22:52:00
--  
狐爸老师,好像不用出入分列,将类别,编号,日期时间排序后,计算出相邻两行的时差,就可以解决问题。但是相邻两行时差的代码如何写,还请老师指教。谢谢!!
--  作者:yyzlxc
--  发布时间:2015/4/21 23:46:00
--  
代码计算同类行时差,代码没有出错,但是计算结果均为零,不知问题出在哪里?请各位老师指教,谢谢!!

Tables("表A").Sort = "类别,编号,日期时间"
Dim bhs As List(Of String) = DataTables("表A").GetValues("编号")
Dim lbs As List(Of String) = DataTables("表A").GetValues("类别")
For Each bh As String In bhs
    For Each lb As String In lbs
        Dim drs As List(Of DataRow) = DataTables("表A").Select("[编号] = \'" & bh &"\' And [类别] = \'" & lb &"\'","日期时间")
        For n As Integer = 0 To drs.Count - 1 \'遍历所有行
            If n > 0 AndAlso drs(n)("日期时间") > drs(n-1)("日期时间") Then
                drs(n)("时差") = (drs(n-1)("日期时间") - drs(n-1)("日期时间")).TotalSeconds
            End If
        Next
    Next
Next

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


[此贴子已经被作者于2015/4/21 23:47:24编辑过]

--  作者:yyzlxc
--  发布时间:2015/4/22 7:42:00
--  
问题找到,如下:
drs(n)("时差") = (drs(n)("日期时间") - drs(n-1)("日期时间")).TotalSeconds