以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求,打卡数据处理思路,删除中间多余数据。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185529) |
-- 作者:菜鸟王中王 -- 发布时间:2023/2/28 14:41:00 -- 求,打卡数据处理思路,删除中间多余数据。 表头如下: 工号 、姓名、时间、位置 记录如下: 001 张三 2023-02-27 07:54:34 地点1 001 张三 2023-02-27 08:54:34 地点1 001 张三 2023-02-27 09:54:34 地点1 001 张三 2023-02-27 12:54:34 地点1 001 张三 2023-02-27 20:54:34 地点1 001 张三 2023-02-28 07:54:34 地点1 问题如下: 1、需要删除中间的数据,即:只要最早的打卡记录与最晚的打卡记录(001 张三 2023-02-27 07:54:34 地点1与001 张三 2023-02-27 20:54:34 地点1) 2、最后的数据只保留一早一晚的记录,至于一天只有一次的打卡记录的我还没有思路如何处理?
|
-- 作者:有点蓝 -- 发布时间:2023/2/28 15:27:00 -- dim t as table = tables("表A") t.sort = "工号,时间" dim r1 as row = t.rows(t.rows.count - 1) dim r as row for i as integer = t.rows.count - 2 to 1 step -1 r = t.rows(i) if r1("工号") = r("工号") andalso r1("时间").date = r("时间").date andalso t.rows(i-1)("工号") = r("工号") andalso t.rows(i-1)("时间").date = r("时间").date r.delete else r1=r end if next
|
-- 作者:菜鸟王中王 -- 发布时间:2023/3/31 10:11:00 -- 蓝版,我把实体表改成窗口表后,提示: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:窗口,窗口1,Button6,Click 详细错误信息: 未找到类型“String”的公共成员“date”。 代码如下: Dim t As Table = Tables("窗口1_Table1") t.sort = "gh,sj" Dim r1 As Row = t.rows(t.rows.count - 1) Dim r As Row For i As Integer = t.rows.count - 2 To 1 Step - 1 r = t.rows(i) If r1("gh") = r("gh") AndAlso r1("sj").date = r("sj").date AndAlso t.rows(i - 1)("gh") = r("gh") AndAlso t.rows(i - 1)("sj").date = r("sj").date Then r.delete Else r1 = r End If Next 求助,谢谢啦。
|
-- 作者:有点蓝 -- 发布时间:2023/3/31 10:16:00 -- sj列是字符列,不是日期列 AndAlso t.rows(i - 1)("sj") = r("sj")Then
|
-- 作者:菜鸟王中王 -- 发布时间:2023/3/31 11:14:00 -- 谢谢蓝版,目前我发现了一个问题: 我在mysql中把字段类型改为 datetime,但是导入窗口表,会丢失时间部分,即只有yyyy-mm-dd,所以我用Convert.ToDateTime(string),直接把字符串转换为日期时间类型。 另外目前数据量大约有100多万条记录,默认30秒的时间是显示超时的提示: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Timeout in IO operation 可以在连接文件 config.json中,mysql连接信息追加一条:Connection Timeout= 2000 ,和 声明数据库连接的时候加一条如下: Dim db = HySql.DataBaseFactory.CreateDatabase() db.CommandTimeout = 200 ....... 非常感谢蓝版,希望这些能帮助其它人。
|
-- 作者:有点蓝 -- 发布时间:2023/3/31 11:30:00 -- 时间部分不会丢失的,绑定表格后,设置一下窗口表的日期格式即可:http://www.foxtable.com/webhelp/topics/1611.htm |
-- 作者:菜鸟王中王 -- 发布时间:2023/3/31 11:38:00 -- 好的 非常感谢,冒昧咨询,有没有直接把查询表转换为数据表的函数,遍历查询表然后再存储到foxtable的数据表效率好慢。 |
-- 作者:有点蓝 -- 发布时间:2023/3/31 11:46:00 -- 没有的 |
-- 作者:菜鸟王中王 -- 发布时间:2023/3/31 11:47:00 -- 还是非常感谢foxtable的蓝版,买了永久高开,很久没有用过了,非常谢谢。 |