Foxtable(狐表)用户栏目专家坐堂 → 按时间自动复制表的多行


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

主题:按时间自动复制表的多行

帅哥,在线噢!
15666282205
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
按时间自动复制表的多行  发帖心情 Post By:2020/2/27 20:45:00 [显示全部帖子]

老师,想实现以下功能:今天登录后自动把昨天的多行数据复制,并把新增的行日期赋值为今天。以此论推。跨月跨年要考虑。请指教。

 回到顶部
帅哥,在线噢!
15666282205
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/18 8:23:00 [显示全部帖子]

老师,我试验了2楼的代码,基本功能复制上一天的数据实现了,还存在以下问题:1,实际上数据是在一个表里,按日期排序,您的代码是两个表取数,我把数据表AB改成一个表的名字,也实现了复制,不影响使用;2,现在的代码复制行以后,把昨天的日期也改成了今天的,这样就乱了,应该是把今天刚复制的行改成今天的日期,以前的日期不修改,我把表的新增行写入了日期代码,但在这里不起作用;3,应该加个判断,如果今天已经复制一次了,就不再复制昨天的数据,要不我把代码放在窗口启动项里,只要打开窗口就复制,也不行。请老师费心。

 回到顶部
帅哥,在线噢!
15666282205
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/18 11:29:00 [显示全部帖子]

老师,提示:从字符串“日期=”20200717 and [identify]到类型double的转换无效

 回到顶部
帅哥,在线噢!
15666282205
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/18 12:50:00 [显示全部帖子]

老师,代码我没动,就是把“数据A”改成了我的“工时表”,其他没动,我又复制了一次,还是提示。还有一个问题,只需要复制其中的"列一"和“列二“,麻烦您完善一下。
[此贴子已经被作者于2020/3/18 12:51:29编辑过]

 回到顶部
帅哥,在线噢!
15666282205
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/18 15:13:00 [显示全部帖子]

老师,请看看实例,只复制姓名和产品,工时不复制。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:复制试验.foxdb



 回到顶部
帅哥,在线噢!
15666282205
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/18 16:15:00 [显示全部帖子]

老师,基本可以了,还需要解决以下问题:1,应该加个判断,如果今天已经复制,就不再复制第二次了;2,只复制其中的两列。请指教。

 回到顶部
帅哥,在线噢!
15666282205
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:537 积分:4243 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2020/3/19 9:47:00 [显示全部帖子]

老师,基本可以了,就是选择复制其中的几列我还不会,研究了半天也不行,如果把下面的两个代码结合起来就完美了。还请您费费心。
'------------------------自动复制选中行其中的几列----------------------------------------------------------------------
Dim r As Row = Tables("工时表").current
Dim Cols1() As String = {"生产工段","考勤班组","考勤员","操作人","商品编码","商品全名"}
Dim dr2 As Row = Tables("工时表").AddNew()
For i As Integer = 0 To Cols1.Length -1
    dr2(Cols1(i)) = r(Cols1(i))
Next
'-----------------------------------------------自动复制上一天数据-------------------------------------------------------
If DataTables("工时表").Find("日期='" & Date.today & "' ") IsNot Nothing Then
    Forms("考勤管理2").Open()
    'msgbox("已经添加")
Else
    Dim maxid As Integer = DataTables("工时表").compute("max([_Identify])")
    Dim f As New Filler  '数据填充器
    f.SourceTable = DataTables("工时表") '指定数据来源
    f.Filter="日期='" & Date.today.AddDays(-1) & "'"    '筛选昨天的数据
    f.DataTable = DataTables("工时表") '指定数据接收表
    f.Fill() '填充数据
    DataTables("工时表").ReplaceFor("日期",Date.today,"日期='" & Date.today.AddDays(-1) & "' and [_Identify] >" & maxid ) '昨天的日期赋值为今天
    DataTables("工时表").save
End If

 回到顶部