delphi 怎样使dbgrideh 中符合某个条件的记录不能修改

是在DBGRIDeh里面符合某个一定条件的某个行不能修改!比如ifDateset.fieldByName('完工标记'):=1then符合这样的条件的记录不能修改。... 是在DBGRIDeh 里面符合某个一定条件的某个行不能修改!比如 if Dateset.fieldByName('完工标记'):=1 then 符合这样的条件的记录不能修改。 展开
 我来答
tangdaizuo
推荐于2016-08-09 · TA获得超过515个赞
知道小有建树答主
回答量:127
采纳率:0%
帮助的人:193万
展开全部
你可以在dbgrideh的ONCellClick事件里写符合某个条件的记录不能修改的代码,如果符合条件,dbgrideh1.ReadOnly:=true,试一试。
procedure Tform1.DBGridEh1CellClick(Column: TColumnEh);
begin
if Dateset.fieldByName('完工标记')=1 then
dbgrideh1.ReadOnly:=true
else
dbgrideh1.ReadOnly:=false;
end;
KDERP
推荐于2018-03-30 · 知道合伙人软件行家
KDERP
知道合伙人软件行家
采纳数:266 获赞数:699
2016-2017荣获 金达软件(广州) 最佳项目负责人

向TA提问 私信TA
展开全部
可以写入ADO.beforeedit事件中,代码如下:
if ado.fieldbyname('fieldname').asstring = '' then
begin
showmessage('某某字段为空,不能修改!'); //如符合条件,给出提示
abort; //退出执行
end
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
两只老虎之霸天虎
2010-11-05 · TA获得超过883个赞
知道小有建树答主
回答量:651
采纳率:0%
帮助的人:493万
展开全部
条件是动态的吗?

如果你是想不能修改某些记录,你可以在建表的时候多加个字段,boolean属性,为true是可以修改,为false是不能修改,自己在程序里控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
googleyeyou
2010-11-08 · TA获得超过186个赞
知道小有建树答主
回答量:269
采纳率:100%
帮助的人:130万
展开全部
dbgrideh只不过是数据的表现形式。
如我要某个字段等于1时可编辑,其余则不可编辑
则可以
if DataSet.FieldByName('zd').asString = '1' then
dbgrideh.readonly := false
else
dbgrideh.readOnly:= True;

可以把这段代码写在数据集的afterscroll事件里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式