以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  三个问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188452)

--  作者:lesei
--  发布时间:2023/9/20 18:38:00
--  三个问题
谢谢版主。


以下内容是专门发给有点蓝浏览



--  作者:lesei
--  发布时间:2023/9/21 8:22:00
--  
麻烦回复一下哈,谢谢
--  作者:有点蓝
--  发布时间:2023/9/21 9:24:00
--  
1、

    ElseIf rs.Count = 1 Then
        r = rs(0)
        newRowNum = r.Index
        Dim nr As Row = r.Clone()
        nr("企业名称") = "临时-" & r("企业名称")
        nr("名称简码") = "temp-" & r("名称简码")
        nr.Move(newRowNum + 1)
    End If

2、锁定的行是不能编辑和删除的:http://www.foxtable.com/webhelp/topics/0111.htm

先解锁,再删除
            r.Locked = False
            r.Delete()

3、不是prepareEdit不行,是你不会用
If e.Col.Name = "审核状态" orelse e.Col.Name = "批准状态" Then
     e.Cancel = True
 End If

--  作者:lesei
--  发布时间:2023/9/21 15:15:00
--  
启奏万岁,臣仍有一事不明:
针对于第一个问题,您只是把代码做了很小的改动,单独声明了一个新row、代替了currenttable.current这个写法,为什么就不出现延迟(第17-19行有时得不到执行,有时又能被执行)了?

--  作者:有点蓝
--  发布时间:2023/9/21 15:17:00
--  
current指的是当前行,当前行是会根据实际情况发上变化,不是固定不变的,不是特别情况,最好都不要使用。r.Clone()会返回克隆后的行,才是正确的用法
--  作者:lesei
--  发布时间:2023/9/21 15:24:00
--  
我知道了,是因为clone后,光标还没移到新行上。
那又有个新问题了:
如果我把代码改成如下,加入e.table.refresh,然后再写第17-19行,是不是就能保证光标先移动到被clone行上,然后再执行第17-19行?
r.clone()
e.table.refresh
currenttable.current("企业名称")="临时-" & r("企业名称")
currenttable.current("名称简码")="临时-" & r("名称简码")
currenttable.current.movve(newrownum + 1)

--  作者:有点蓝
--  发布时间:2023/9/21 15:25:00
--  
无法保证