起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 869|回复: 13

【结贴】数据集字段编辑属性,只读

[复制链接]
发表于 2010-7-12 18:12:21 | 显示全部楼层 |阅读模式
在数据集字段编辑属性只读里面,写IFF(A IS NULL False,True)
当A 为null时为不只读,但是当为A赋值以后就变成只读。
也就是只能对A修改一次。
我的原意是,在dataonchang事件里面连接数据库进行查询,如果没有查到值,则用户可以手动输入,否则只读。
请问该如何实现?
回复

使用道具 举报

发表于 2010-7-13 10:06:00 | 显示全部楼层
如果你的A字段是字符型
则在数据表的A字段的属性里[编辑属性(Attributes)]下的[只读(ReadOnly)]里填入[IIf(A = '',False,true)]
如果是数字型  则填入[IIf(A  is null,False,true)]       可实现你的要求
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 10:18:39 | 显示全部楼层
我正是这样做的,我的原意你还是没看明白,我的意思是,IIf(A  is null,False,true)不能实现我的需求,因为一旦用户为A赋了值,A就变成只读,不能再修改.

在dataonchang事件里面连接数据库进行查询,如果没有查到值,则用户可以手动输入(这里,比如用户第一次输入1,应该允许用户再次输入,比如将1修改为2),否则只读。
请问该如何实现?
回复 支持 反对

使用道具 举报

发表于 2010-7-13 10:59:09 | 显示全部楼层
那楼主不要设置这些属性了
直接在dataonchang事件上用代码来控制,如果没有查到值,就设置字段的ReadOnly为False,如果查到了就设置为True
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 11:19:24 | 显示全部楼层
不行,不能直接设置字段的READONLY,如果直接设置字段为只读,那么点击复制新增按钮则无法复制该字段的值。这个已经发帖验证过。
请问,怎么样在代码里面写,设置字段的编辑属性中的只读属性?
回复 支持 反对

使用道具 举报

发表于 2010-7-13 11:43:35 | 显示全部楼层
哦,代码设置是否可编辑表达式,参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=17826
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 12:06:37 | 显示全部楼层
DataSetBrokerBC_DETAIL_DT.CanEditExpression.Text := 'True';这是对数据集整个的设置,请问怎么对单个数据字段进行修改?
另外,这样的修改的作用范围是怎样的?对下次登录不起作用吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 12:09:43 | 显示全部楼层
TSQLDataSet(DataSetBrokerBC_DETAIL_DT.DataSet).BizFieldByName('BID_PRICE').Attributes.ReadOnly.Text := True';
这个是设置字段的只读属性吗?为什么不起作用?
回复 支持 反对

使用道具 举报

发表于 2010-7-13 14:07:16 | 显示全部楼层
DataSetBrokerBC_DETAIL_DT.CanEditExpression.Text := 'True';这是对数据集整个的设置,请问怎么对单个数据字段进行修改?
你在这样的设置肯定是整个数据集的,如果勇iif这样的条件的,可以对符合某个条件的记录设置只读

另外,这样的修改的作用范围是怎样的?对下次登录不起作用吧?
不是,立刻就起作用的,但前提是该记录已经做过applyupdate。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 14:17:26 | 显示全部楼层
请问怎么样在代码里面写,设置某个字段的编辑属性中的只读属性?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 01:07 , Processed in 0.042738 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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