起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 141|回复: 6

[请求]Checkbox**

[复制链接]
发表于 2008-7-14 10:16:39 | 显示全部楼层 |阅读模式
我要用Checkbox来实现这样的功能:利用Checkbox的是否选中,来改变数据集的另外一个字段的值,并保存,比如:如果是选中,就让它的状态变成‘申请清理’,如果取消选中,就让它变回默认时候的‘待清理’。怎样实现才能让它比较快呢?就是性能好,我现在的方法我觉得不好,会很慢,我是用一个按钮来遍历这个字段的值,然后用sql语句改状态

未命名.jpg

12.58 KB, 下载次数: 86

回复

使用道具 举报

发表于 2008-7-14 10:18:21 | 显示全部楼层
试试自动填充。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 10:26:24 | 显示全部楼层
自动填充不行的吧,因为这个数据集在模块的其他功能里面也用,而且每个功能的时候的状态都是不一样的,比如:在申请功能的时候,它的状态是在‘待清理’和‘申请清理’,但是如果是在审批功能的时候它的状态就是‘待审批’和‘审批同意’。这样的情况能用自动填充庅?
回复 支持 反对

使用道具 举报

发表于 2008-7-14 10:55:21 | 显示全部楼层
那就动态设置字段的自动填充属性,例如在功能窗体的onshow事件上实现,
例如  http://bbs.justep.com/forum.php?mod=viewthread&tid=16014
等等,用“AutoFillDef”搜  寻
不过默认把数据集设置关闭状态
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 11:12:41 | 显示全部楼层
好的,我试试,谢谢哈~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-14 13:58:02 | 显示全部楼层
Tsqldataset(dsbMst.DataSet).Open;
Tsqldataset(dsbMst.DataSet).BizFieldByName('clean_staus').AutoFillDef.Enabled:=true;
Tsqldataset(dsbMst.DataSet).BizFieldByName('clean_staus').AutoFillDef.Expression.Text:=#39'IIf(清理=''T'',2,1)'#39;
Tsqldataset(dsbMst.DataSet).BizFieldByName('clean_staus').AutoFillDef.Options:=[0];
这个是我的代码,但是为什么会报错呢?如果我把表达式换成一个具体的值就不会报错,是因为表达式参数里面只能填充简单的值庅?
报错:在分析表达式的时候出现错误:line 1: expecting EOF, found 'T'表达式:'IIf(清理='T',2,1)'
回复 支持 反对

使用道具 举报

发表于 2008-7-14 14:22:42 | 显示全部楼层
你这样,在设计环节模拟设置一下,然后通过VCS.exe(源代码管理器)看一下代码怎么写,这样就知道了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 06:16 , Processed in 0.043240 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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