起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: ccyy0112

【搞定】[请求] 关于事件的问题**

[复制链接]
 楼主| 发表于 2007-4-3 09:44:54 | 显示全部楼层
现在 现面的代码可以执行 设置了断点 程序没有问题 但是所有的数据都还为只读,ELSE语句也能通过 但是数据字段仍然为只读
procedure TGDZCTZ.DataSetBroker1AfterScroll(DataSet: TDataSet);
begin
     if(datasetbroker1.DataSet.FieldByName('sftj').AsString = '1') then
     begin
         datasetbroker1.DataSet.FieldByName('bgbm').ReadOnly := true;
     end
     else
     begin
          datasetbroker1.DataSet.FieldByName('bgbm').ReadOnly := false;
     end;

end;
回复 支持 反对

使用道具 举报

发表于 2007-4-3 10:54:11 | 显示全部楼层
1、首先,这个代码设置只读是针对数据集的所有记录的

2、在AfterScroll中写代码,并不是针对每条记录单独设置只读
  而是在记录滚动时,每次都重新设置整个字段的只读。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 11:11:13 | 显示全部楼层
但是只要我选择了 其他不等于1的字段时候 就应该 执行ELSE语句 现在ELSE语句是执行 但是字段仍然为只读
回复 支持 反对

使用道具 举报

发表于 2007-4-3 11:57:56 | 显示全部楼层
字段应该不是只读了

你是否表现控件也被设置成只读了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 12:51:07 | 显示全部楼层
没有 我只是 只读了部分 在数据集中固定只读字段
回复 支持 反对

使用道具 举报

发表于 2007-4-3 13:43:31 | 显示全部楼层
楼主,你可以设置断点,或者用showmsg的方法,确认一下字段的控件的只读状态。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-3 13:56:47 | 显示全部楼层
断点设置了 程序运行没有问题
showmsg的方法 如何作 不太明白能所的 再详细些吗
回复 支持 反对

使用道具 举报

发表于 2007-4-3 15:05:04 | 显示全部楼层
楼主,如果你的需求只是:
在当前记录sftj字段为1时,bjbm只读。

那么,还是使用10楼提供的方法吧。那样效率更高,而且实现起来非常简单。

在bjbm字段上定义编辑属性-只读这个属性上,定义表达式就可以了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-4 09:23:42 | 显示全部楼层
不是这样的 是比如我有 20 个字段 sftj字段为1时 其中当前行的 10个字段为只读
回复 支持 反对

使用道具 举报

发表于 2007-4-4 09:25:34 | 显示全部楼层
是这样的,
你要为这10个字段分别设置编辑属性-只读 的表达式。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-18 21:05 , Processed in 0.047406 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表