起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: xhsoft

代码问题**

[复制链接]
 楼主| 发表于 2009-3-10 15:37:59 | 显示全部楼层
这个是时间,我不能一天天跟踪吧
现在的情况:

比如我现在设置一个点,到那个点准提醒
但是如果我选择1号--10号,5点整提醒,那么这十天当中不是每天5点都提醒的,我也没有找到规律
回复 支持 反对

使用道具 举报

发表于 2009-3-10 15:44:01 | 显示全部楼层
那我怀疑是你上面取时间的地方不对:
t1 := stringutils.Copy(t,11,10);
    st :=stringutils.Copy(sdatetime,11,10);

比如t的格式是2009-1-1 17:00:00时,那你根据上面的取法根本就不对,sdatetime同样的道理也不一定对。
所以,你最好把t的格式和sdatetime格式都用format一下,然后再取其时间再来比较。具体需要楼主再跟踪跟踪。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-10 16:17:46 | 显示全部楼层
格式都是统一的
回复 支持 反对

使用道具 举报

发表于 2009-3-10 20:40:09 | 显示全部楼层
那具体的还需要楼主自己来跟踪调试了。要不就是做一个简单的例子传上来,我们帮你跟踪看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-11 09:16:29 | 显示全部楼层
请求远程看一下,
我刚又做了一个
我和我同事的都是9:10提醒
但是我的提醒了, 我同事机器就没有提醒,不知道是哪里的问题了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-11 09:32:39 | 显示全部楼层
var
  p1,p2,t,sdatetime,p11,p22,t1,sd,st,day1,day2,day3,m1,m2:string;
  zq :string;
  lform:ttsct;
  lday,zs,zj,iday3 :integer;
week :string;
begin
  //取星期
   lDay := DateUtils.DayOfTheWeek(SysUtils.Now);
  case lDay of
    1:
      week := ('星期一');
    2:
      week := ('星期二 ');
    3:
      week :=('星期三');
    4:
      week :=('星期四');
    5:
       week :=('星期五');
    6:
       week :=('星期六');
    7:
       week :=('星期天');
  end;
  datasetbroker1.DataSet.First;
  while not datasetbroker1.DataSet.eof do
  begin
    p1 := sysutils.DateTimeToStr(datasetbroker1.DataSet.FieldByName('txkssj').AsDateTime);  //取提醒和系统日期和时间
    p11 := stringutils.Copy(p1,1,10);
    day1 := stringutils.Copy(p11,9,2);
    m1 := stringutils.Copy(p11,6,2);
    p2 := sysutils.DateTimeToStr(datasetbroker1.DataSet.FieldByName('txjssj').AsDateTime);
    p22 := stringutils.Copy(p2,1,10);
    day2 := stringutils.Copy(p22,10,2);
    t := sysutils.DateTimeToStr(datasetbroker1.DataSet.FieldByName('txsj').AsDateTime);
    t1 := stringutils.Copy(t,11,10);
    zq := datasetbroker1.DataSet.FieldByName('zq').Asstring;
    sdatetime :=  sysutils.DateTimeToStr(Business.Data.SysSrv.SysService.Time);
    sd :=stringutils.Copy(sdatetime,1,10);
    st :=stringutils.Copy(sdatetime,11,10);
    day3 := stringutils.Copy(sd,9,2);
    iday3 := sysutils.StrToInt(day3);
    m2 := stringutils.Copy(sd,6,2);
    zs := datasetbroker1.DataSet.FieldByName('zss').AsInteger;
    zj := datasetbroker1.DataSet.FieldByName('zjs').AsInteger;
    if (zq = '天') and (((p11<sd)or (p11=sd)) and ((sd<p22) or(sd=p22)) ) and (st=t1) then  //按天周期进行提醒
    begin
    lForm := Ttsct.Create(self.Context);
    try
    lForm.ShowModal;
    finally
    lForm.Free;
    end;
    end;

这是我的代码,看看,有没有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-11 10:01:33 | 显示全部楼层
急用呀
回复 支持 反对

使用道具 举报

发表于 2009-3-11 17:05:41 | 显示全部楼层
楼主,能发个例子上来吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-12 08:39:40 | 显示全部楼层
现在正在调试,稍后告之结果
回复 支持 反对

使用道具 举报

发表于 2009-3-12 08:48:30 | 显示全部楼层
可以,其实楼主你可以做一个很简单的测试,把其他条件去掉,就看这个时间判断的条件,然后调试运行,看是否能正常触发。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-24 11:46 , Processed in 0.049613 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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