起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 305|回复: 19

【结贴】checkbox 排他设置**

[复制链接]
发表于 2008-9-3 10:15:31 | 显示全部楼层 |阅读模式
我的数据表中有字段a1,a2,a3,a4,都设置成数字类型,表现形式为checkbox,通过代码控制它们之间的排他性,同一时间最多只能有一个处于选中状态,但是为什么保存以后4个都是选中状态。而且表现为灰色
回复

使用道具 举报

发表于 2008-9-3 10:18:45 | 显示全部楼层
哦,这个效果是在datagrid上吗?
应该是属性设置的问题。论坛里搜索一下吧,有答案。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-3 10:24:17 | 显示全部楼层
我是要在表单文档里面实现,现在需要在选中一个字段时,马上触发排他动作,但是做不到,必须离开焦点以后才触发
回复 支持 反对

使用道具 举报

发表于 2008-9-3 10:50:00 | 显示全部楼层
你是怎么做的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-3 11:20:06 | 显示全部楼层
1.有9个字段设置成数字型,表现类型是checkbox,自动填充‘0’,打开表单文档时不显示checkbox

2.当填写其他字段信息后,可以显示为checkbox

3.现在需要对这一组checkbox进行排他选择,保存后所有字段都处于选中状态???

4.要实现排他选择应该怎样操作???

check.jpg

1.67 MB, 下载次数: 130

回复 支持 反对

使用道具 举报

发表于 2008-9-3 11:48:15 | 显示全部楼层
你是怎么保证只能选择多个中的1个的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-3 11:55:28 | 显示全部楼层
我为每个字段在数据集中建立了对应的数据字段,在数据字段的OnEnter中写下如下代码:

procedure TCSDLWJSQXX_INFO_1.SetWJLX(fieldName:string);
var
i : integer;
temp : string;
begin
WJLXFieldNames :=['WJLX_YD','WJLX_RQ','WJLX_PS',
                   'WJLX_SM','WJLX_DX','WJLX_QL',
                   'WJLX_FH','WJLX_GS','WJLX_QT'];
   DataSetDLWJSJJ.Edit;
  if DataSetDLWJSJJ.FieldByName(fieldName).AsInteger = 0 then
  begin
   for i:=0 to WJLXFieldNames.Length -1 do
   begin
     temp := variants.VarToStr(WJLXFieldNames.GetValue(i));
     if temp <> fieldName  then
        DataSetDLWJSJJ.FieldByName(temp).AsInteger := 0;
     end;
     DataSetDLWJSJJ.ApplyUpdates;
   end;
  end;


procedure TCSDLWJSQXX_INFO_1.FIELD_DLWJSJJ_WJLX_YDEnter(Sender: TDataField);
begin
SetWJLX('WJLX_YD');
end;
其他数据字段的OnEnter事件代码同上
回复 支持 反对

使用道具 举报

发表于 2008-9-3 13:52:16 | 显示全部楼层
放一个datagrid,显示一下修改完成后数据集的值。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-3 14:08:20 | 显示全部楼层
数据库中这几个字段的值都是空,不是0也不是1,不明白为什么和会产生这样的结果
回复 支持 反对

使用道具 举报

发表于 2008-9-3 14:39:16 | 显示全部楼层
if DataSetDLWJSJJ.FieldByName(fieldName).AsInteger = 0 then
这个似乎有问题吧!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 01:35 , Processed in 0.044344 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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