起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 92|回复: 5

【结帖】可不可以通过稍微复杂的表达式限制数据集行的约束**

[复制链接]
发表于 2008-6-26 21:26:30 | 显示全部楼层 |阅读模式
假设我的一个数据集有

工序、暂停日期、继续日期
三个字段
分别为 字符串,日期,日期


能否限制,
1、新加行的暂停日期必须已有行中最大的继续日期
2、数据集中最多只能有一行的继续日期可为空(也就是最后添加的一行可以为空也可以不为空,为空的时候不可以新家行,不为空的时候,其他行不可编辑)

3、更为复杂的,估计不好实现,已有数据中,任意一行暂停和继续都可修改,但是,暂停日期和继续日期的时间段不可以和其他行重叠。


不知道描述清楚了没有


比如 有数据
工序    暂停日期  继续日期
---------------------------------
工序1  2008-6-1   2008-6-5
工序1  2008-6-7  2008-6-10
工序1 2008- 6-17  (NULL)

最后一行继续日期为空,则不可以新加行,只能修改现有数据

假设暂停日期和继续日期都有数据

工序    暂停日期  继续日期
---------------------------------
工序1  2008-6-1   2008-6-5
工序1  2008-6-7  2008-6-10
工序1 2008- 6-17  2008-6-21


此时如果新加的话,暂停日期只能大于 2008-6-21

假如修改第一行的继续日期,继续日期只能早于2008-5-7(第二行的暂停)
假如修改第二行的数据,暂停日期和继续日期的时间段不能和第一行和第三行的时间段重合
回复

使用道具 举报

发表于 2008-6-27 08:31:01 | 显示全部楼层
楼主,对于你这些需求需要自己来做一些函数判断(可以用TQuery)。无非就是在数据集的相应事件中来控制,比如beforeInsert中来控制是否可以增加新行,beforeEdit中来判断是否允许编辑行,beforePost中来判断那个日期是否符合条件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-27 08:34:34 | 显示全部楼层
不好意思 代码不熟 先问下路
X3通过设置属性或其他的的确实现不了这样的功能就弄代码了
怕万一X3功能很强大 却不知道 走了冤枉道
回复 支持 反对

使用道具 举报

发表于 2008-6-27 08:52:22 | 显示全部楼层
呵呵,这个通过设置属性实现不了,确实需要用代码来做控制。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-27 15:21:39 | 显示全部楼层
好的  X3肯定实现不了的 就用代码去控制
回复 支持 反对

使用道具 举报

发表于 2008-6-27 15:48:28 | 显示全部楼层
嗯,好,谢谢反馈,揭帖!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 16:11 , Processed in 0.058780 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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