以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]复制指定行后整行不能编辑  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=56040)

--  作者:liujywwy
--  发布时间:2014/8/28 11:25:00
--  [求助]复制指定行后整行不能编辑

代码如下:复制完指定行(当然此行是locked的),复制成功后的新行,希望除“需求编号”之外的列都是可以编辑的。可结果是不能编辑。

Tables("需求明细表").Current.Clone
Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current.locked= True


--  作者:有点甜
--  发布时间:2014/8/28 11:28:00
--  

 控制能否编辑,可以参考这里

 

http://www.foxtable.com/help/topics/1473.htm

 


--  作者:有点甜
--  发布时间:2014/8/28 11:29:00
--  

 通过事件控制

 

http://www.foxtable.com/help/topics/0605.htm

 


--  作者:Bin
--  发布时间:2014/8/28 11:36:00
--  
在 PrepareEdit 事件做禁止编辑限制

http://www.foxtable.com/help/topics/0605.htm


添加一个列作为判断    例如   逻辑列  "锁定"  你可以选择隐藏

PrepareEdit 


   if e.datarow("锁定") andalso e.datacol.name <> "需求编号" then
       e.cancel=true
    end if
Tables("需求明细表").Current.Clone
Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current("锁定")= True


--  作者:liujywwy
--  发布时间:2014/8/28 12:25:00
--  
以下是引用Bin在2014-8-28 11:36:00的发言:
在 PrepareEdit 事件做禁止编辑限制

http://www.foxtable.com/help/topics/0605.htm


添加一个列作为判断    例如   逻辑列  "锁定"  你可以选择隐藏

PrepareEdit 


   if e.datarow("锁定") andalso e.datacol.name <> "需求编号" then
       e.cancel=true
    end if
Tables("需求明细表").Current.Clone
Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current("锁定")= True

PrepareEdit代码如下。

If e.Col.name <> "QQ号码" AndAlso e.Col.name <> "附件" AndAlso e.Col.name <> "状态" AndAlso e.Col.name <> "需求描述" Then
    If e.Row("已提交") Then
        e.cancel=True
    End If
End If

If e.Row("克隆") AndAlso e.Col.name <> "需求编号" Then
    e.cancel=True
End If

克隆指定行的代码如下。

Tables("需求明细表").Current.Clone
Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current("克隆")= True
DataTables.Save()

但是呢我在后台需求明细表查看了一下,发现已提交已打勾,克隆没打勾,说明下面2行代码应该没生效。如附件。

Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current("克隆")= True


图片点击可在新窗口打开查看此主题相关图片如下:已提交克隆.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2014/8/28 14:18:00
--  

Tables("需求明细表").Current.Clone
Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current("克隆")= True
DataTables.Save()

 

这段代码你单独执行,不可能有你说的不赋值的情况。


--  作者:liujywwy
--  发布时间:2014/8/28 14:27:00
--  
以下是引用有点甜在2014-8-28 14:18:00的发言:

Tables("需求明细表").Current.Clone
Tables("需求明细表").Current("已提交")= False
Tables("需求明细表").Current("克隆")= True
DataTables.Save()

 

这段代码你单独执行,不可能有你说的不赋值的情况。

是真的,我试了好几次了。要不上例子看看?

你在需求明细表克隆指定行,然后看看需求明细表的已提交和克隆列。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临时版本跟踪系统26.rar


--  作者:有点甜
--  发布时间:2014/8/28 14:34:00
--  
Dim r As Row = Tables("需求明细表").Current.Clone
r("已提交")= False
r("克隆")= True
DataTables.Save()