起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 152|回复: 8

【搞定】[请求]字段的OnExit事件中的问题**

[复制链接]
发表于 2007-8-2 18:11:34 | 显示全部楼层 |阅读模式
我在数据集中的一个字段的OnExit事件中将该数据集的其它4个字段设为只读属性,结果执行的时候报错,如图。
如果只将其它的1个字段设为只读则顺利通过测试。
数据集换其它表用其它的字段进行测试均出现相同情况。
附 :业务信息,业务功能均是纯净的,除了OnExit事件代码外没有任何代码。试验窗体采用DocView和表格文档显示数据。
不知道是什么原因。

snap114.jpg

10.82 KB, 下载次数: 93

回复

使用道具 举报

发表于 2007-8-2 19:35:51 | 显示全部楼层
不建议使用ReadOnly属性设置字段的只读属性。
推荐用户使用字段的Attributes属性的ReadOnly的text属性(在设计期写)
如字段A,B,B的Attribute.ReadOnly.text='A='abc''
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-3 08:41:09 | 显示全部楼层
感谢回复,这样做有个小小的不足,就是不能直接在表格上看出那些字段是只读的(变灰),只能焦点移到这些字段上时才可看到(即单元格变灰),一旦焦点移开单元格又变成白色。不够直观呀。
回复 支持 反对

使用道具 举报

发表于 2007-8-3 09:16:38 | 显示全部楼层
调一下数据集.UpdateRecord应该就是立即变灰的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-3 10:40:05 | 显示全部楼层
这样改似乎有问题,有时候焦点转移但是并没有修改数据,UpdateRecord就会报错
又发现了个问题:
我现在有A、B、C三个字段,B、C字段的只读依赖A字段的值,比如A字段值为1时B、C字段只读,A字段值为0时,B、C字段可写
我现在在A字段的OnExit事件中判断并设置了
          DataSetSBSJJ.UserFields[6].Attributes.ReadOnly.Text := 'True' ;  
          DataSetSBSJJ.UserFields[7].Attributes.ReadOnly.Text := 'True'  ;
(分别是B、C字段),
当A字段为0时
我又设置:         
          DataSetSBSJJ.UserFields[6].Attributes.ReadOnly.Text := 'False' ;  
          DataSetSBSJJ.UserFields[7].Attributes.ReadOnly.Text := 'False'  ;
但是字段仍然只读,
是不是我的做法不对?
回复 支持 反对

使用道具 举报

发表于 2007-8-3 11:06:15 | 显示全部楼层
那你这样设置
DataSetSBSJJ.UserFields[6].Attributes.ReadOnly.Text := 'A=1' ;  
DataSetSBSJJ.UserFields[7].Attributes.ReadOnly.Text := 'A=1'  ;
回复 支持 反对

使用道具 举报

发表于 2007-8-8 14:39:18 | 显示全部楼层
在设计期在表字段或数据集字段上设置。动态设置无效。数据集的结构没有刷新
回复 支持 反对

使用道具 举报

发表于 2007-8-13 11:51:22 | 显示全部楼层
由于长时间没有回复,先结贴了,有问题请开新帖。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-15 09:14:57 | 显示全部楼层
不好意思,后来这个部分的需求变动了,这个功能暂时不用了。
来工曾经在其他机子上测试设置字段的ReadOnly属性并没有问题
只是在我们的系统上会有这种情况
以后再用到的时候再去研究它吧
谢谢了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-13 19:42 , Processed in 0.037552 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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