以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 为什么计划不会执行 ? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124749) |
-- 作者:YDS -- 发布时间:2018/9/13 8:22:00 -- 为什么计划不会执行 ? 计划代码如下 计划名称:upyc 间隔时间:30000 If Date.Today.DayOfWeek > 0 AndAlso Format(Date.now, "HHmm") >= 1130 AndAlso Format(Date.now, "HHmm") <= 1300 Then MyTimers("upyc").Enabled = False DataTables("pos").load() Dim d As Date = Date.Today Dim unn As String = Functions.Execute("ycun",d,"unn") Dim dr As DataRow = DataTables("yc").find("date = \'" & d & "\'") If dr IsNot Nothing Then dr("n_y") = unn dr.save End If MyTimers("upyc").Enabled = True End If 为什么有时候不执行 必须重启一下才行
|
-- 作者:YDS -- 发布时间:2018/9/13 8:25:00 -- 我还在系统启动后加了个MyTimers("upyc").Enabled = True,计划管理已经设置启动和不允许暂停 |
-- 作者:有点甜 -- 发布时间:2018/9/13 8:57:00 -- 1、代码没问题,重新打开后测试。
2、你修改了里面的代码以后才无效的?那你再加上msgbox看是否进入执行。
3、必须到达11:30到13:00才会进入执行的。 |
-- 作者:YDS -- 发布时间:2018/9/13 12:32:00 -- 不是周末 在11:30到13:00之间 计划不会自动执行 必须重启项目后这个计划才会执行 |
-- 作者:有点甜 -- 发布时间:2018/9/13 12:33:00 -- 请加入msgbox测试,代码没问题。 |
-- 作者:YDS -- 发布时间:2018/9/13 13:28:00 -- 额 这个不用测试啊 他除了不会自动执行 没有别的问题 程序编译后在服务器上一直开着 但是时间一长就不会自动执行了 比如今天可以执行 每天到1130的时候就不会执行了 时间间隔我设置的是30秒啊 |
-- 作者:YDS -- 发布时间:2018/9/13 13:32:00 -- 可能我表述的有问题吧 不是不会执行 是时间长了就不会自动执行了 比如我现在设置的1130到1300点之间 30秒 DataTables("pos").load() 而且pos只加载当天的数据 但是第二天来了来了以后 pos表里还是昨天的数据
|
-- 作者:有点甜 -- 发布时间:2018/9/13 14:38:00 -- 以下是引用YDS在2018/9/13 13:32:00的发言:
可能我表述的有问题吧 不是不会执行 是时间长了就不会自动执行了 比如我现在设置的1130到1300点之间 30秒 DataTables("pos").load() 而且pos只加载当天的数据 但是第二天来了来了以后 pos表里还是昨天的数据
1、要避免是不是你长时间不使用电脑的时候,电脑进入了休眠的状态,导致程序代码失效?
阻止休眠看看 http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=102477&skin=0
2、试试升级到最新版,看能否改善。 |
-- 作者:YDS -- 发布时间:2018/9/13 16:12:00 -- 我把这个全部代码贴出来吧 不是休眠 晚上的报餐提醒和上午的余额不足提醒都是正常的 If Date.Today.DayOfWeek > 0 AndAlso Format(Date.now, "HHmm") >= Functions.Execute("Get","设置",2).split("-")(0) AndAlso Format(Date.now, "HHmm") <= Functions.Execute ("Get","设置",2).split("-")(1) Then MyTimers("upyc").Enabled = False DataTables("pos").load() Dim d As Date = Date.Today.AddDays(0) Dim unn As String = Functions.Execute("ycun",d,"unn") Dim dr As DataRow = DataTables("yc").find("date = \'" & d & "\'") If dr IsNot Nothing Then dr("n_y") = unn dr.save End If MyTimers("upyc").Enabled = True End If If Date.Today.DayOfWeek > 0 AndAlso Format(Date.now, "HHmm") >= Functions.Execute("Get","设置",3).split("-")(0) AndAlso Format(Date.now, "HHmm") <= Functions.Execute("Get","设置",3).split("-")(1) Then MyTimers("upyc").Enabled = False DataTables("pos").load() Dim d As Date = Date.Today.AddDays(0) Dim une As String = Functions.Execute("ycun",d,"une") Dim dr As DataRow = DataTables("yc").find("date = \'" & d & "\'") If dr IsNot Nothing Then dr("e_y") = une dr.save End If MyTimers("upyc").Enabled = True End If Static dm As Date If dm <> Date.today AndAlso Date.today.AddDays(1).DayOfWeek > 0 AndAlso Format(Date.now, "HHmm") >= Functions.Execute("Get","设置",12) AndAlso Format(Date.now, "HHmm") <= Functions.Execute("Get","设置",12) + 5 Then MyTimers("upyc").Enabled = False dm = Date.Today Dim drs As List(Of DataRow) = DataTables("Users").Select("tx = 1 and dc = 1") For Each dr As DataRow In drs If dr("userid") > "" And dr("name") > "" Then Dim dr1 As DataRow = DataTables("yc").SQLFind("date = \'" & Date.today.AddDays(1) & "\' and (n_b like \'%" & dr("name") & "%\' or e_b like \'%" & dr("name") & "%\')") If dr1 Is Nothing Then Functions.Execute("sendmsg","textcard",dr("userid"),"","报餐通知",Date.now & vbcrlf & "根据公司相关规定,在食堂用餐员工需要提前一天报餐,您" & Date.today.adddays(1) & "还没有报餐,如需用餐请尽快报餐,以便厨师根据报餐人数安排食材采购等相关事宜!","http://m.xoar.me:81/index.htm","详 情") End If End If Next MyTimers("upyc").Enabled = False End If Static dn As Date If dn <> Date.today AndAlso Date.Today.DayOfWeek > 0 AndAlso Format(Date.now, "HHmm") >= Functions.Execute("Get","设置",14) AndAlso Format(Date.now, "HHmm") <= Functions.Execute("Get","设置",14) + 5 Then MyTimers("upyc").Enabled = False dn = Date.Today Dim drs As List(Of DataRow) = DataTables("Users").Select("dc = 1") For Each dr As DataRow In drs If dr("userid") > "" And dr("name") > "" Then Dim dr1 As DataRow = DataTables("pos").SQLFind("user_name = \'" & dr("name") & "\'","pos_time Desc",0) If dr1 IsNot Nothing Then dr("ye") = dr1("balance") dr.save If dr("ye") > 0 AndAlso dr("ye") <= 30 Then Functions.Execute("sendmsg","textcard",dr("userid"),"","余额不足",Date.now & vbcrlf & "您的餐卡余额仅剩" & dr("ye") & "元,为了不影响您的用餐,请您尽快充值!----卓尔航空后勤部","http://m.xoar.me:81/cx.htm","详 情") End If End If End If Next MyTimers("upyc").Enabled = False End If |
-- 作者:有点甜 -- 发布时间:2018/9/13 17:20:00 -- 1、加入msgbox测试,看能否弹出。你msgbox,把各个值也弹出看一下。
如果觉得msgbox碍事,你可以用output.show显示信息。
2、调整你的时钟,设置到对应时间去,等候运行。 |