以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  消息标题:如何比较本表不同行不同列但是同一类型的数据  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=7847)

--  作者:gddjy
--  发布时间:2007/5/11 22:09:00
--  消息标题:如何比较本表不同行不同列但是同一类型的数据
[这个贴子最后由gddjy在 2007/05/31 01:36am 第 2 次编辑]

smileboy:您好!今天新来不知道您高人在前,真是多多得罪,想必高人心怀如天高如海阔,所以还是希望再来向您请教?
我有一个问题不明白,就是在本表中,如果要比较不同行、不同列,但是同一类型的数据,应该用什么公式?用什么函数?


消息标题:Re:如何比较本表不同行不同列但是同一类型的数据
发文件导论坛上,并详细说明一下

egd文件下载

对了,smileboy:您好!上面以经没有密码了


--  作者:wjq1072
--  发布时间:2007/5/11 22:27:00
--  
没有明白你想解决什么问题?
--  作者:Czy
--  发布时间:2007/5/11 22:47:00
--  
想问一下楼主,你想在哪里设置公式?
--  作者:Czy
--  发布时间:2007/5/11 22:57:00
--  
如果想把公式放在行验证中,这样试试:

if(CountFor(Grid,"产品组码","=",[产品组码],1,Row)=1,True,if([起始时间]<FindText(Grid,"截至时间","产品组码","=",[产品组码],CountFor(Grid,"产品组码","=",[产品组码],1,Row)-1),MsgBox("内容重复!",0),True))

如果想把公式放在组码列的刷新公式中,这样试试:

if(CountFor(Grid,"产品组码","=",[产品组码],1,Row)=1,True,if([起始时间]<FindText(Grid,"截至时间","产品组码","=",[产品组码],CountFor(Grid,"产品组码","=",[产品组码],1,Row)-1),MsgBox("内容重复!",0),True))


--  作者:gddjy
--  发布时间:2007/5/12 11:49:00
--  
[这个贴子最后由gddjy在 2007/05/31 01:34am 第 1 次编辑]

产品组码由产品编码和物品代码组成,产品组码不能重复,物品代码可以重复,但是,在物品代码重复的时候,产品组码的起始时间和截至时间规定的这个时段不能重叠
行验证公式已经有:

FindRow(Gridname,"产品组码", "=" ,[产品组码],2)=0


--  作者:gddjy
--  发布时间:2007/5/12 17:33:00
--  
[这个贴子最后由gddjy在 2007/05/31 01:33am 第 2 次编辑]

下面引用由czy2007/05/11 10:57pm 发表的内容:
如果想把公式放在行验证中,这样试试:
if(CountFor(Grid,"产品组码","=",,1,Row)=1,True,if(<FindText(Grid,"截至时间","产品组码","=",,CountFor(Grid, ...


好了,非常感谢,很受启发,用现在行验证公式:

if(CountFor(Grid,"物品代码","=",[物品代码],1,Row)=1,True,if([起始时间] <= FindText(Grid,"截至时间","物品代码","=",[物品代码],CountFor(Grid,"物品代码","=",[物品代码],1,Row)-1),MsgBox("不能有两条空行,或同一物品代码时间段不能重复!",0),True))

原来的验证公式FindRow(Gridname,"产品组码", "=" ,[产品组码],2)=0多余

非常感谢smileboy

非常感谢czy