以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  执行保存后还能用菜单的撤销功能  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=101004)

--  作者:ymseu
--  发布时间:2017/5/23 14:32:00
--  执行保存后还能用菜单的撤销功能
我在DataColChanged 里面先执行保存,再锁定。但菜单上的undo功能还是可以用。按理来讲,应该undo按钮应该不可以用,才对呀。否则程序就乱了。

        If Not e.DataRow.IsNull("统计结果") Then \'如果统计结果列不是空值
            e.DataTable.Save()
            e.DataRow.Locked = True \'那么锁定此行
        End If

--  作者:有点色
--  发布时间:2017/5/23 14:52:00
--  

AfterSelChange事件,写代码

 

Dim r As Row = e.Table.Rows(e.NewRange.Rowsel) \'获得原来选择的行
If Not r.IsNull("统计结果") Then \'如果统计结果列不是空值
    e.Table.Save()
End If


--  作者:ymseu
--  发布时间:2017/5/23 16:11:00
--  
谢谢老师这么快回复。

我试了下,还是不行。

我讲下想要实现的功能:当输入实际完成数量后,程序自动与订单数量对比,在统计结果中显示少发,发完等状态。随后便锁定这行。锁定后,大家都不能修改了。唯一的就是菜单中的撤销功能,可以让这个想法有漏洞。

撤销后,实际完成的数量没有了,但这行依然是锁定状态。

我试着直接点击菜单上的保存功能,还是发现撤销按钮依然可用。


[此贴子已经被作者于2017/5/23 16:12:05编辑过]

--  作者:ymseu
--  发布时间:2017/5/23 16:42:00
--  
不好意思,我刚才写成了r.save()了,应该是用e.Table.Save(),现在实现了。

另外,对单元格有没有锁定功能呢?

--  作者:有点色
--  发布时间:2017/5/23 17:17:00
--  
以下是引用ymseu在2017/5/23 16:42:00的发言:
不好意思,我刚才写成了r.save()了,应该是用e.Table.Save(),现在实现了。

另外,对单元格有没有锁定功能呢?

 

没有对单元格的锁定功能。如果要锁定单元格,需要编写 startEdit 事件进行控制。