关于TABLE的ONFILTERRECORND的难点(100)

  • 主题发起人 主题发起人 terry_zhou82
  • 开始时间 开始时间
T

terry_zhou82

Unregistered / Unconfirmed
GUEST, unregistred user!
只用TABLE的FILTER.比如说一个程序,上面有2个按钮,其中一个是显示数据表中当天的所有记录,另外一个是本周的所有记录。其中我把当天记录的代码写在Table1FilterRecord时间中,那么我想请问另外的一个本周记录的代码是不是也同样写在Table1FilterRecord中,是不是会重复啊,我用IF语句判断,好像总不行啊。
 
下面是我的代码,是不是那里写错了。每天的代码可以运行,但是每周的就出错。procedure TForm1.ABSTable1FilterRecord(DataSet: TDataSet; var Accept: Boolean);var testDay,testday1,a,b,c,d:TDateTime;begin testDay := absTable1.FieldByName('提醒日期').Asdatetime; testDay1 := absTable1.FieldByName('每月').Asdatetime; WeekFromDayToDay(testDay , a, b); WeekFromDayToDay(testDay1 , c, d);Accept:= false; if (FormatDateTime('yyyy-MM-dd',now)=FormatDateTime('yyyy-MM-dd',absTable1.FieldByName('提醒日期').AsDateTime))or (formatdatetime('ddd',now)=absTable1.FieldByName('每周').asstring) or (FormatDateTime('MM-dd',Now)=FormatDateTime('MM-dd',absTable1.FieldByName('每月').AsDateTime)) thenAccept:= true; if (absTable1.FieldByName('提醒日期').AsString = '' ) and (absTable1.FieldByName('每周').asstring='') and (DateToStr(absTable1.FieldByName('提醒时间').AsDateTime)<>'') and (absTable1.FieldByName('每月').Asstring='') thenAccept:= true;//以上为筛选每天记录 if (FormatDateTime('yyyy-MM-dd',abstable1.fieldbyname('提醒日期').asdatetime)>=FormatDateTime('yyyy-MM-dd',a)) and(formatDateTime('yyyy-MM-dd',abstable1.fieldbyname('提醒日期').asdatetime)<=FormatDateTime('yyyy-MM-dd',b)) thenaccept:=true;if (FormatDateTime('MM-dd',abstable1.fieldbyname('每月').asdatetime)>=FormatDateTime('MM-dd',c)) and(FormatDateTime('MM-dd',abstable1.fieldbyname('每月').asdatetime)<=FormatDateTime('MM-dd',d)) thenAccept:= true; if (absTable1.FieldByName('每周').asstring<>'') and (DateToStr(absTable1.FieldByName('提醒时间').AsDateTime)<>'') then Accept:= true;end;procedure TForm1.WeekFromDayToDay(ADay: TDateTime; var FromDay, ToDay: TDateTime);var i:word;begin i := DayOfTheWeek(ADay);FromDay := ADay - i + 1;ToDay := aDay + ( 7- i );end;//以上为筛选每周记录。由于我设了2个按钮,其中一个是每天,一个是每周,是不是把代码都写在一起,还是怎么样,我这么写,连原来的每天筛选都不起作用了。大大们帮我分析下。
 
看的头晕。想查询数据,干嘛一定要用Table?用Query直接就可以根据条件把数据检索出来了,你作的也太复杂了。记得毕业前,我也一直用Table查询数据,后来找工作,面试后,公司需要上机测试,我还是用Table来处理,被对方狠批,当然也就没录用,回来后发狠学SQL!现在才发现,SQL学好,数据库方面的许多数据处理,可以轻易地完成,而不必写一大堆Delphi代码,让人看的头晕,维护也麻烦。现在,如果再次遇到那个经理,我应该感谢他!
 
有没有知道答案的啊?
 
自己已经搞定,进者有分可拿
 
呵呵2~~接分了~
 
de410动作好快啊,呵呵
 
多人接受答案了。
 
后退
顶部