以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 手机端获取表数据的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178407) |
-- 作者:liujie6215 -- 发布时间:2022/7/3 15:04:00 -- [求助] 手机端获取表数据的问题 老师您好:
If bjcgbz=1 And bjlcjlbz = 2 \'这两个参数是计算完成后的标志值。 在计时器中: e.Form.TimerInterval = 5000 If bjcgbz=1 And bjlcjlbz = 2 Then \'报价成功标志 e.Form.TimerEnabled = False End If 我的意思是,计时器当检测到两个标志值时,就终止计时器,创建table1,不知我哪里错了,始终不能创建表taible1,找了很长时间,也没有发现问题,麻烦老师,给看看,问题出在什么地方?
[此贴子已经被作者于2022/7/3 15:05:13编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/7/3 21:10:00 -- 服务端程序建议使用计划管理,不要使用窗口计时器。 服务处理是即时的,没有办法等待计时器结束。应该在前端使用js计时器,定时查询服务端的状态。差不多这样吧 HttpRequest事件代码: Select Case e.Path Case "启动计算.htm" \'开启计时器启动计算 e.WriteString(“已启动计算”) \'生成网页 Case "查询结果.htm" If bjcgbz=1 And bjlcjlbz = 2 \'这两个参数是计算完成后的标志值。 Dim wb As New weui With wb.AddTable("","Table1") .CreateFromDataTable(DataTables("产品报 价表"),True,"材料规格 is not null or 金额>0","","类别","材料名称","材料规格","单位","数量","单价_元","金额" ) End With e.WriteString(wb.Build) \'生成网页 else e.WriteString(“计算未结束”) \'生成网页 End If End Select 即使这样仍然是有问题的,因为计时器也好,计划管理也好,其实都是处于主线程的,如果计算费时仍然是会卡住主线程。比较合理的可以在计时器或者计划管理里调用异步函数进行计算。或者干脆再开一个程序进行计算
|
-- 作者:liujie6215 -- 发布时间:2022/7/4 10:09:00 -- 感谢蓝老师 通过您的多次帮助,我可以尝试通过其他方式进行尝试。不知用do loop 循环,每隔2秒循环一次可行?但不知道怎么去写。您抽空的话,再给指点一下。
[此贴子已经被作者于2022/7/4 10:10:18编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/7/4 10:27:00 -- https://www.baidu.com/baidu?ie=UTF-8&word=js%E8%AE%A1%E6%97%B6%E5%99%A8%E5%87%BD%E6%95%B0 https://www.runoob.com/w3cnote/js-timer.html
|