以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为什么计划不会执行 ?  (http://foxtable.com/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
--  
我把这个全部代码贴出来吧     不是休眠   晚上的报餐提醒和上午的余额不足提醒都是正常的


图片点击可在新窗口打开查看此主题相关图片如下:tim截图20180913161127.jpg
图片点击可在新窗口打开查看


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、调整你的时钟,设置到对应时间去,等候运行。