Foxtable(狐表)用户栏目专家坐堂 → AFTERLOAD事件的调整问题


  共有2513人关注过本帖树形打印复制链接

主题:AFTERLOAD事件的调整问题

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
AFTERLOAD事件的调整问题  发帖心情 Post By:2016/10/25 11:49:00 [显示全部帖子]

请教老师,以下代码在AFTERLOAD下打开窗口执行,用局域网,如何实现 计算机A 发布指令后, 计算机B能及时收到 就是LABEL的数字及时变化

 

目前,计算机B要重新登录后才能得到计算机A发布的指令,AFTERLOAD代码应该放在哪个属性下

(服务器的表里已经有指令数据了)

 

AFTERLOAD

Dim Filter181 As String = ""
Dim Count181 As Double
Count181 = DataTables("投标策划安排意见").Compute("Count(信息编号)","执行人 Like  '%" & _UserName & "%' and (收阅确认 not Like '%" & _UserName & "%' or 收阅确认 Is null)")
Dim lbl181 As WinForm.Label
lbl181 = e.Form.Controls("Label181")
Application.DoEvents()
lbl181.Text = "" & Count181 & ""

 

TIMETICK

Dim pbx181 As WinForm.PictureBox = e.Form.Controls("PictureBox37")
Dim lbl181 As WinForm.Label = e.Form.Controls("Label181")
If lbl181 IsNot Nothing Then
   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 & ""
   'End If
End If

[此贴子已经被作者于2016/10/25 11:51:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/10/25 13:56:00 [显示全部帖子]

老师,加了Application.DoEvents() 还是原来的问题,计算机B只有重新登录后LABEL的数值才会有变化,TIMETICK不会及时同步反应代码功能

 

 

[此贴子已经被作者于2016/10/25 14:11:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/10/25 14:59:00 [显示全部帖子]

单机测试时就都启用了,在计算机A上发布指令后,切换登录用户后LABEL的值能变电,就是在计算机B上无法变动,感觉是要重新加载表LABEL的值才会变化

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/10/25 15:57:00 [显示全部帖子]

老师不是内部表,启动项目后从服务器上加载进来的。      启动项目后弹出的值为0 

 

保存:在计算机A发指令的时候,通过BUTTON已经保存表数据了,保存后,服务器上SQLSERVER里面的表也及时增加行和数据了,经测试就是要重新加载表才能在

 

计算机B上变电数值。

[此贴子已经被作者于2016/10/25 16:01:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/10/25 16:52:00 [显示全部帖子]

msgbox(Count181) ‘看能不能弹出内容’加入这句代码后,一启动登录就无限的不断的出现小窗口显示值为0,只有重新启动计算机。

 

测试过程中,又发现,如果通过按键重新加载这张表后,数字可以变化。

 

相当于:第一次启动项目登录的时候,所COUNT的行为0,LABEL也显示0 ;   当计算机A增加行发布指令后,数据库里面的表也同步增加行和数据了,

 

            但是此时,计算机B已先于计算机A启动项目登录,所加载的表还没有计算机A后增加的行,不能被COUNT到,只要计算机B重新登录后,才加载新行进来被COUNT

 

           这时的LABEL才统计行。

 

问题:应该是后台的数据表的变动,怎样能及时同步加载到每台计算机上。


 回到顶部
帅哥哟,离线,有人找我吗?
douglas738888
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1174 积分:8782 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/10/25 17:33:00 [显示全部帖子]

OK!     图片点击可在新窗口打开查看   非常感谢蓝老师如此耐心的指导,真心感谢!!!!!!!!!

 

看到蓝老师最后的SQL,也突然提醒了自己,帮助里面的好东西掌握的不牢靠啊

 

SQLCompute

DataTable的SQLCompute方法和Compute方法类似,不过Compute用于计算已经加载的数据,而SQLCompute用于计算后台所有数据。


 回到顶部