提交后让数据窗口处于不可编辑状态如何实现

提交后让数据窗口处于不可编辑状态怎么实现?
请教,数据窗口中数据保存到数据库后,再次点提交按钮,数据窗口中的数据不能修改。我将数据窗口设为保护模式。我在提交按钮下写dw_1.Object.DataWindow.ReadOnly=‘Yes’ ,此时数据窗口时不能修改状态,可是再次打开,还是能修改里面数据啊?怎么实现我提交按钮按下后,再次打开数据窗口时,数据窗口只能看不能修改呢?

------解决方案--------------------
做个标志,再做个函数来执行是否可以编辑
------解决方案--------------------
提交数据完成后,再次打开DW时,进行判断是处理于只读还是可修改状态。
建议使用一个变量来进行跟踪判断!
------解决方案--------------------
一般的设计是两类窗口,一类是录入的窗口,只能新增数据;另一类是查询窗口,只检索数据,不能修改。

如果你想在一个数据窗口控制的话,可以使用行列状态;
你看看GetItemStatus函数,就明白啦。


------解决方案--------------------
引用:
请教,数据窗口中数据保存到数据库后,再次点提交按钮,数据窗口中的数据不能修改。我将数据窗口设为保护模式。我在提交按钮下写dw_1.Object.DataWindow.ReadOnly=‘Yes’ ,此时数据窗口时不能修改状态,可是再次打开,还是能修改里面数据啊?怎么实现我提交按钮按下后,再次打开数据窗口时,数据窗口只能看不能修改呢?


再次打开数据窗口是什么意思?是把窗口关闭再打开吗?

可以考虑在数据窗口列的protect属性里写表达式来实现

if(isrownew(), 0, 1) //如果是新增加的行,可以修改,如果保存以后,不可修改

PB帮助:

This expression defined in the Properties view for the Protect property of a column prevents the user from modifying the column unless the row has been newly inserted:

If(IsRowNew(), 0, 1)
------解决方案--------------------
dw的sql可以这样设计
select xxx
,1 bhbj  //保护标记
from bbb

将dw中的column的protect属性设置成检索出来的bhbj值就可以实现了.你只要控制每一行的bhbj值,就会导致相关的column的protect属性.设置成0,可以修改;设置成1,不可修改
------解决方案--------------------
楼主这个问题,只需在表结构上改动一下即可解决。在你数据库的数据表结构上加上一个标志位(例如:bz int 0表示可修改;1表示不能修改)。然后每次用datawindow检索出来后根据这个标志位设只读属性(数据窗口列的protect属性)或者和你写的代码那样根据标志位判断datawindow的ReadOnly属性,习惯用什么方式都行