以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助] 多用户同时编辑限制 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83863)
|
-- 作者:wumingrong1
-- 发布时间:2016/4/18 19:45:00
-- [求助] 多用户同时编辑限制
我在表的Click中写有以下命令;但是由于在执行加载当前行命令时、加载需要一定的时间,在还没有加载完成前、就执行了后面的命令;造成后面执行了错误的判断。我该怎么做才能保证在执行加载命令完成后才开始执行后面的命令?
If Forms("宽带帐号割接回访主窗口").Opened() Then If vars("换行前") = False Then If e.Table.Name = "宽带帐号割接回访表" Then Forms("宽带帐号割接回访主窗口").Controls("Table1").Table.Current.Load()
在此处能否加入什么命令来确保上面的加载命令完成后、才执行下面的命令?
Dim drn As Row = e.Table.Current If drn("编辑锁定") =False Then Dim p1 As object = Forms("宽带帐号割接回访主窗口").Controls("Panel4") p1.Visible = True Forms("宽带帐号割接回访主窗口").Controls("Panel3").Width=Forms("宽带帐号割接回访主窗口").Controls("Panel2").Width-Forms("宽带帐号割接回访主窗口").Controls("Panel4").Width Else If User.Name = drn("编辑锁定工号") Then Dim p1 As object = Forms("宽带帐号割接回访主窗口").Controls("Panel4") p1.Visible = True Forms("宽带帐号割接回访主窗口").Controls("Panel3").Width=Forms("宽带帐号割接回访主窗口").Controls("Panel2").Width-Forms("宽带帐号割接回访主窗口").Controls("Panel4").Width Else Dim p1 As object = Forms("宽带帐号割接回访主窗口").Controls("Panel4") p1.Visible = False Forms("宽带帐号割接回访主窗口").Controls("Panel3").Width=Forms("宽带帐号割接回访主窗口").Controls("Panel2").Width-Forms("宽带帐号割接回访主窗口").Controls("Panel4").Width End If End If End If End If End If
|
-- 作者:大红袍
-- 发布时间:2016/4/18 19:47:00
--
本来就是执行完,才会执行的。
|
-- 作者:wumingrong1
-- 发布时间:2016/4/18 20:44:00
--
我知道是执行完才执行后面的,但是有时候加载需要一定的时间才显示出重新加载的结果;但是在显示重新加载的结果前就已经开始执行后面的命令啦;所以造成无法正确做成判断。
比如我所点击的当前行其实是已经有其他工号在编辑,那么按理来说当我重新加载当前行后、那么就会看到当前行的 drn("编辑锁定") =True ;这个时候就应该跳过 drn("编辑锁定") =False 的命令去执行后面的命令;但是事实是当前行还没有显示出drn("编辑锁定") =True 时,命令就开始按照drn("编辑锁定") =False 来执行。
所以我想、如果在加载当前行数据的命令后面,增加一条延时命令;比如等待2秒后再执行后面的命令。就应该可以解决这个问题
[此贴子已经被作者于2016/4/18 20:47:03编辑过]
|
-- 作者:大红袍
-- 发布时间:2016/4/18 20:47:00
--
具体实例说明。
|
-- 作者:wumingrong1
-- 发布时间:2016/4/18 20:57:00
--
此主题相关图片如下:360截图20160418204948726.jpg
此主题相关图片如下:360截图20160418205648479.jpg
|
-- 作者:大红袍
-- 发布时间:2016/4/18 20:59:00
--
请,上传,具体实例。
|
-- 作者:大红袍
-- 发布时间:2016/4/18 21:00:00
--
那你也可以直接获取后台值啊
http://www.foxtable.com/help/topics/2955.htm
|
-- 作者:wumingrong1
-- 发布时间:2016/4/19 9:20:00
--
以下命令提示:
Dim drt As String Dim dr As DataRow = Tables("宽带帐号割接回访表").Current.DataRow drt = dr.SQLGetValue("编辑锁定工号") Output.Show(drt)
msgbox(drt)
此主题相关图片如下:360截图20160419091914975.jpg
|
-- 作者:大红袍
-- 发布时间:2016/4/19 10:04:00
--
Dim drt As Object Dim dr As DataRow = Tables("宽带帐号割接回访表").Current.DataRow drt = dr.SQLGetValue("编辑锁定工号")
If drt.GetType.Name <> "DBNull" Then msgbox(drt)
Else
msgbox("空值")
End If
|
-- 作者:wumingrong1
-- 发布时间:2016/4/19 11:11:00
--
以下命令提示错误,是哪里错啦?
此主题相关图片如下:360截图20160419111042446.jpg
If e.Table.Name = "宽带帐号割接回访表" Then
Dim drq As String Dim dr1 As DataRow = Tables("宽带帐号割接回访表").Current.DataRow drq = dr1.SQLGetValue("编辑锁定") Output.Show(drq) Dim drw As Object Dim dr2 As DataRow = Tables("宽带帐号割接回访表").Current.DataRow drw = dr2.SQLGetValue("编辑锁定工号") If drw.Gettype.Name <> "DBNull" Then Output.Show(drw) End If If drq = False Then Dim p1 As object = Forms("宽带帐号割接回访主窗口").Controls("Panel4") p1.Visible = True Forms("宽带帐号割接回访主窗口").Controls("Panel3").Width=Forms("宽带帐号割接回访主窗口").Controls("Panel2").Width-Forms("宽带帐号割接回访主窗口").Controls("Panel4").Width Else If User.Name = drw Then Dim p1 As object = Forms("宽带帐号割接回访主窗口").Controls("Panel4") p1.Visible = True Forms("宽带帐号割接回访主窗口").Controls("Panel3").Width=Forms("宽带帐号割接回访主窗口").Controls("Panel2").Width-Forms("宽带帐号割接回访主窗口").Controls("Panel4").Width Else Dim p1 As object = Forms("宽带帐号割接回访主窗口").Controls("Panel4") p1.Visible = False Forms("宽带帐号割接回访主窗口").Controls("Panel3").Width=Forms("宽带帐号割接回访主窗口").Controls("Panel2").Width-Forms("宽带帐号割接回访主窗口").Controls("Panel4").Width MessageBox.show("当前行已经被【" & drw & "】[ 锁定编辑 ]; 你不能同时进行编辑!!!", "非常关键提醒") End If End If End If
|