以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何实现窗口上的按键在每月最后一天自动执行?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=163068)

--  作者:lin98
--  发布时间:2021/4/22 15:07:00
--  如何实现窗口上的按键在每月最后一天自动执行?
如何实现窗口上的按键在每月最后一天自动执行?

在窗口1上放一个“审核”功能的按键,如何在每月最后一天自动执行(不用打开“窗口1”或打开项目就能每月最后这一天22:00自动执行)

--  作者:有点蓝
--  发布时间:2021/4/22 15:12:00
--  
肯定要打开项目,并且打开窗口,否则都是镜花水月。

如果不需要窗口,也可以把审核功能放到计划管理中,但是也必须打开项目。



--  作者:lin98
--  发布时间:2021/4/22 15:48:00
--  

示例一

如果你希望每5分钟自动保存一次数据,可以增加一个计划,计划的执行间隔为300000(毫秒),也就是5分钟,计划的代码设为:

For Each dt As DataTable In DataTables
    dt.Save()

Next

示例二

假定希望系统每十分钟自动备份一次项目,可以增加一个计划,计划的执行间隔600000(毫秒),也就是10分钟,计划的代码为:

Static dt As Date \'静态变量,用于保存上次备份的时间
Dim
 tp As TimeSpan
tp
 = Date.Now - dt
If
 tp.TotalHours >= 1 Then \'如果距离上次备份已经超过一个小时
    dt = Date.Now
    Syscmd.Project.Backup("c:\\data"True\'自动备份到c:\\data目录

End
 If


每月最后一天22:00自动执行,如何写代码?



--  作者:有点蓝
--  发布时间:2021/4/22 15:58:00
--  
执行间隔3600000(毫秒),也就是60分钟,可以保证在月底最后一天22::00~23:00之间执行一次

dim d as date = date.today
if d.day = Date.DaysInMonth(d.year,d.month) andalso d.hour = 22 then
执行审核功能的代码
end if
[此贴子已经被作者于2021/4/22 16:00:15编辑过]

--  作者:lin98
--  发布时间:2021/4/22 16:31:00
--  
在“计划管理”里写下面代码,就是可以保证在月底最后一天22::00~23:00之间执行一次对表A进行保存,不用在项目打开事件或其他也调取它的事件?

Dim d As Date = Date.today
If d.day = Date.DaysInMonth(d.year,d.month) AndAlso d.hour = 22 Then
DataTables("表A").Save()
End If

--  作者:有点蓝
--  发布时间:2021/4/22 16:37:00
--  
是的