以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  行自动复制  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189465)

--  作者:fangshen
--  发布时间:2023/12/4 9:24:00
--  行自动复制
各位大侠:
A表有“计划保养日期”、“保养内容”-------

当  计划保养日期=今天的日期

执行
A表的  计划保养日期   复制到   B表的   报修日期
A表的  保养内容        复制到   B表的   原因分析
------

谢谢

--  作者:有点蓝
--  发布时间:2023/12/4 9:37:00
--  
如果B表有好多行数据,A表的  计划保养日期   复制到   B表的哪一行的   报修日期?
--  作者:fangshen
--  发布时间:2023/12/4 10:07:00
--  
B表是新增的行
--  作者:有点蓝
--  发布时间:2023/12/4 10:23:00
--  
表A,datacolchanged事件


If e.DataCol.Name = "计划保养日期" Then 
    If 
e.DataRow("计划保养日期") = date.today Then 
        Dim
 dr As DataRow  = DataTables("表B").addnew
        
dr("报修日期") =e.DataRow("计划保养日期")
        dr("原因分析") =e.DataRow("保养内容")
    End
 If
End
 If

--  作者:fangshen
--  发布时间:2023/12/4 14:37:00
--  
非常感谢,成功了
--  作者:fangshen
--  发布时间:2023/12/6 9:25:00
--  
上面的代码好像不行,
我把“计划保养日期”修改成2023年12月7日,然后把电脑的时间修改成12月6号23点28分,等到电脑显示12月7日后查看表B,没有增加相关行
但是我现在把“计划保养日期”从12月20日修改成12月7日,表B中会增加相关方
不知道哪里出了问题?

表A,datacolchanged事件


If e.DataCol.Name = "计划保养日期" Then 
    If 
e.DataRow("计划保养日期") = date.today Then 
        Dim
 dr As DataRow  = DataTables("表B").addnew
        
dr("报修日期") =e.DataRow("计划保养日期")
        dr("原因分析") =e.DataRow("保养内容")
    End
 If
End
 If



--  作者:有点蓝
--  发布时间:2023/12/6 9:36:00
--  
电脑的时间走动是不可能会影响程序的。

被动处理可以这样。

在项目事件AfterOpenProject里添加代码重置列,比如:http://www.foxtable.com/webhelp/topics/1587.htm
DataTables("表A").DataCols("计划保养日期").RaiseDataColChanged()

这样就可以在打开项目的时候,把符合当天时间的数据处理一下