以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问,以下代码帮忙把把关,谢谢!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146704)

--  作者:fengwenliuyan
--  发布时间:2020/2/29 16:47:00
--  请问,以下代码帮忙把把关,谢谢!
请问,以下代码帮忙把把关,谢谢!
需求:
数据库 {员工} 中的行的“用户名”列内容,不等于当前用户名的,则同步当前表,并返回至同步前的选定行:

粗略写了点:


图片点击可在新窗口打开查看此主题相关图片如下:11111111.png
图片点击可在新窗口打开查看


请问哪些需要改?

--  作者:有点蓝
--  发布时间:2020/2/29 17:28:00
--  
代码在什么表什么事件?代码文字发上来:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=69632

这个需求看不懂,截图说明一下

--  作者:fengwenliuyan
--  发布时间:2020/2/29 17:44:00
--  回复:(有点蓝)代码在什么表什么事件?代码文字发上...
Dim cmd As New SQLCommand
cmd.CommandText = "Select 用户名 F rom {员工} Where [_Identify] = " & e.Row("_Identify")
Dim nm As String = cmd.ExecuteScalar
If nm <> User.Name Then
syscmd.table.datatable("员工表").load()
table("员工表窗口_员工表").position = table("员工表窗口_员工表").rows.count - 1

代码是放在“员工表”表事件的startedit中,是对“独占式编辑之一”这个帮助实例的延伸,
“用户名”列是,除了“编辑者”列“用户名”列以外的任意列内容发生变化时,用户名列内容变为当前的登录用户名。
需求:
数据库 {员工} 中的行的“用户名”列内容,不等于当前登录的用户名时,则同步当前表(刷新指定窗口的指定表),并返回至同步之前的选定行位置?

--  作者:有点蓝
--  发布时间:2020/2/29 17:56:00
--  
这样很诡异,当用户准备编辑的时候,突然数据跳来跳去的。

Dim cmd As New SQLCommand
dim id as integer = e.Row("_Identify")
cmd.CommandText = "Select 用户名 F rom {员工} Where [_Identify] = " & id 
Dim nm As String = cmd.ExecuteScalar
If nm <> User.Name Then
e.table.datatable.load()
dim idx as integer = e.table.findrow("_Identify=" & id)
if idx > -1 then e.table.position = idx
end if


--  作者:fengwenliuyan
--  发布时间:2020/2/29 19:14:00
--  回复:(有点蓝)这样很诡异,当用户准备编辑的时候,...
试了一下,的确是会跳来跳去,而且还是需要3次双击才能进行正常编辑。

那么,若是把返回选定行,改为同步当前表,并定位到当前表的最下方一行位置,应该怎么改?

Dim cmd As New SQLCommand
dim id as integer = e.Row("_Identify")
cmd.CommandText = "Select 用户名 F rom {员工} Where [_Identify] = " 
Dim nm As String = cmd.ExecuteScalar
If nm <> User.Name Then
e.table.datatable.load()
    DataTables("员工").LoadFilter = ""
    DataTables("员工").Load
    Tables("意和窗口_员工").Position = Tables("员工窗口_员工").Rows.Count - 1
end if

不知这样改有没有错漏?请指正,拜托了!

--  作者:fengwenliuyan
--  发布时间:2020/3/1 16:42:00
--  
求帮助
--  作者:有点蓝
--  发布时间:2020/3/1 23:08:00
--  
一样会跳。合理的做法是选中那行编辑就只加载这行的数据。如果是并发操作,数据永远都无法保证每一秒都是最新的。
--  作者:fengwenliuyan
--  发布时间:2020/3/1 23:56:00
--  回复:(有点蓝)一样会跳。合理的做法是选中那行编辑...
觉得您的做法应该是对的,那么,应该怎么改呢?
怎样改,才能做到只加载这行的数据呢?

[此贴子已经被作者于2020/3/1 23:56:27编辑过]

--  作者:fengwenliuyan
--  发布时间:2020/3/2 9:36:00
--  
求帮助?
--  作者:有点蓝
--  发布时间:2020/3/2 10:00:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=146405&skin=0