以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- AFTERLOAD事件的调整问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92062) |
-- 作者:douglas738888 -- 发布时间:2016/10/25 11:49:00 -- AFTERLOAD事件的调整问题 请教老师,以下代码在AFTERLOAD下打开窗口执行,用局域网,如何实现 计算机A 发布指令后, 计算机B能及时收到 就是LABEL的数字及时变化
目前,计算机B要重新登录后才能得到计算机A发布的指令,AFTERLOAD代码应该放在哪个属性下 (服务器的表里已经有指令数据了)
AFTERLOAD Dim Filter181 As String = ""
TIMETICK Dim pbx181 As WinForm.PictureBox = e.Form.Controls("PictureBox37") [此贴子已经被作者于2016/10/25 11:51:05编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/10/25 12:00:00 -- TIMETICK Dim pbx181 As WinForm.PictureBox = e.Form.Controls("PictureBox37") Dim lbl181 As WinForm.Label = e.Form.Controls("Label181") Dim Count181 As Double Count181 = Tables("投标策划安排意见").DataTable.Compute("Count(信息编号)","执行人 Like \'%" & _UserName & "%\' and (收阅确认 not Like \'%" & _UserName & "%\' or 收阅确认 Is null)") If Count181 = 0 Then pbx181.ImageFile = "GGreen.ico" \'显示图片 ElseIf Count181 >= 1 Then pbx181.ImageFile= "RRed.ico" \'显示图片 End If lbl181.Text = "" & Count181 & "" Application.DoEvents() |
-- 作者:douglas738888 -- 发布时间:2016/10/25 13:56:00 -- 老师,加了Application.DoEvents() 还是原来的问题,计算机B只有重新登录后LABEL的数值才会有变化,TIMETICK不会及时同步反应代码功能
[此贴子已经被作者于2016/10/25 14:11:53编辑过]
|
-- 作者:18523982317 -- 发布时间:2016/10/25 13:58:00 -- 。。。。 [此贴子已经被作者于2016/10/25 13:58:32编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/10/25 14:26:00 -- TIMETICK启用了没有? |
-- 作者:douglas738888 -- 发布时间:2016/10/25 14:59:00 -- 单机测试时就都启用了,在计算机A上发布指令后,切换登录用户后LABEL的值能变电,就是在计算机B上无法变动,感觉是要重新加载表LABEL的值才会变化 |
-- 作者:有点蓝 -- 发布时间:2016/10/25 15:39:00 -- TIMETICK Dim pbx181 As WinForm.PictureBox = e.Form.Controls("PictureBox37") Dim lbl181 As WinForm.Label = e.Form.Controls("Label181") Dim Count181 As Double Count181 = Tables("投标策划安排意见").DataTable.Compute("Count(信息编号)","执行人 Like \'%" & _UserName & "%\' and (收阅确认 not Like \'%" & _UserName & "%\' or 收阅确认 Is null)") If Count181 = 0 Then pbx181.ImageFile = "GGreen.ico" \'显示图片 ElseIf Count181 >= 1 Then pbx181.ImageFile= "RRed.ico" \'显示图片 End If lbl181.Text = "" & Count181 & "" msgbox(Count181) ‘看能不能弹出内容’ Application.DoEvents() 另外表数据要保存,查出来的数据才会变化。最后如果这些都是内部数据表,放弃吧
|
-- 作者:douglas738888 -- 发布时间:2016/10/25 15:57:00 -- 老师不是内部表,启动项目后从服务器上加载进来的。 启动项目后弹出的值为0
保存:在计算机A发指令的时候,通过BUTTON已经保存表数据了,保存后,服务器上SQLSERVER里面的表也及时增加行和数据了,经测试就是要重新加载表才能在
计算机B上变电数值。 [此贴子已经被作者于2016/10/25 16:01:02编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/10/25 16:32:00 -- 有没有每隔一段时间就弹出msgbox(Count181) |
-- 作者:douglas738888 -- 发布时间:2016/10/25 16:52:00 -- msgbox(Count181) ‘看能不能弹出内容’加入这句代码后,一启动登录就无限的不断的出现小窗口显示值为0,只有重新启动计算机。
测试过程中,又发现,如果通过按键重新加载这张表后,数字可以变化。
相当于:第一次启动项目登录的时候,所COUNT的行为0,LABEL也显示0 ; 当计算机A增加行发布指令后,数据库里面的表也同步增加行和数据了,
但是此时,计算机B已先于计算机A启动项目登录,所加载的表还没有计算机A后增加的行,不能被COUNT到,只要计算机B重新登录后,才加载新行进来被COUNT
这时的LABEL才统计行。
问题:应该是后台的数据表的变动,怎样能及时同步加载到每台计算机上。 |