以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  独占式编辑之一的项目的问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146998)

--  作者:fengwenliuyan
--  发布时间:2020/3/7 14:08:00
--  独占式编辑之一的项目的问题?
独占式编辑之一的项目:

项目测试步骤:
分别以“张三”和“李四”登录,“张三”点选一行“用户名”不为“张三”的行,双击进入编辑状态,但不录入,此时“编辑者”变为“李四”,然后直接点击下方保存按钮,会发现该行的“编辑者”列无法清空

需求:
想要,当前用户点击保存时,用户名等于当前用户的全部行的“编辑者”列清空?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:cs0001.foxdb


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:5555555555555.zip



--  作者:有点蓝
--  发布时间:2020/3/7 14:35:00
--  
保存前结束编辑状态即可,比如

Tables("表C").FinishEditing
其它处理
Tables("表C").save

--  作者:fengwenliuyan
--  发布时间:2020/3/7 15:56:00
--  回复:(有点蓝)保存前结束编辑状态即可,比如Tables...
貌似不好着手呢!
请帮忙在上面的实例项目中修改测试,谢谢!

--  作者:fengwenliuyan
--  发布时间:2020/3/7 15:59:00
--  回复:(有点蓝)保存前结束编辑状态即可,比如Tables...
具体带入试过,还是不行,拜托,帮忙在实例中直接修改吧!
谢谢!

--  作者:有点蓝
--  发布时间:2020/3/7 16:27:00
--  
startedit事件调换一下位置,Syscmd.Row.Load()会导致数据保存且不会触发保存事件

If e.Row("编辑者") = User.Name Then \'如果编辑者是当前用户
    Return
End If

Dim cmd As New SQLCommand
cmd.ConnectionName = "仓管系统"
Dim id As Integer = e.Row("_Identify")
cmd.CommandText = "Select 用户名 From {入库表} Where [_Identify] = " & id
Dim nm As String = cmd.ExecuteScalar
If nm <> User.Name Then
    Syscmd.Row.Load()
End If

Dim cmd2 As New SQLCommand
Dim exp2 As String  = "编辑者 Is Null And [_Identify] = " & e.Row("_Identify")
cmd2.ConnectionName = "仓管系统"
cmd2.CommandText = "Update {入库表} Set 编辑者 = \'" & User.Name & "\' Where " & exp2
If cmd2.ExecuteNonQuery = 1 Then
    e.Row("编辑者") = User.Name
Else
    cmd2.CommandText = "Select 编辑者 From {入库表} Where [_Identify] = " & e.Row("_Identify")
    Dim nm2 As String = cmd2.ExecuteScalar
    If nm2 > "" Then
        MessageBox.show(nm2 & "正在编辑此行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        MessageBox.show("此行可能已经被删除,无法编辑!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
    e.Cancel = True \'取消编辑
End If

--  作者:fengwenliuyan
--  发布时间:2020/3/7 16:47:00
--  回复:(有点蓝)startedit事件调换一下位置,Syscmd....
换了后,直接死机
错误提示:
无法创建新的堆栈防护页面

--  作者:fengwenliuyan
--  发布时间:2020/3/7 16:49:00
--  回复:(有点蓝)startedit事件调换一下位置,Syscmd....
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:cs000111.foxdb


--  作者:有点蓝
--  发布时间:2020/3/7 17:20:00
--  
1楼实例我测试没有问题。如果是放到自己的项目,应该是和其它事件冲突导致死循环了
--  作者:fengwenliuyan
--  发布时间:2020/3/7 17:22:00
--  回复:(有点蓝)1楼实例我测试没有问题。如果是放到自...
我也是放到这个实例修改的,要不,您把您的成功实例发上来我试试!
--  作者:fengwenliuyan
--  发布时间:2020/3/7 17:32:00
--  回复:(有点蓝)1楼实例我测试没有问题。如果是放到自...
或者您下载我上传的失败的实例试试? 帮忙看看我错在哪儿?