这个是一个关于房地产中介的软件。管理中介公司内部的所有租赁房源,当录入一张合同的时候,我们会设定合同的起租日期和止租日期。并且选择付租方式(方式有如下几种:1个月付1次、2个月付1次、3个月付1次、6个月付1次、1年付1次、1次性付清)。当选择了任何一种方式。程序会在起租之后,止租之前,按照付租的方式进行提醒。时间到了,就把合同的内容提取出来。当我们收完租金之后,我们就点击结算完成,这个时候,我们会写入合同的数据表的其中一个字段,写入结算日期,然后下个月在根据最后结算日期,推算出下次的提醒日期。这个程序该如何写?我最近头疼死了。程序基本都完成了。就差这个步骤没有完成,请各位高手帮忙。

解决方案 »

  1.   

    不知道这是不是你要的
    用encodedate,decodedate可以解决。
    比如开始租赁:decodeDate(idate,iyear,imonth,iday);
    udate:=encodeDate(iyear,imonth+3,iday);
    curDate:=now;
    if udate> cudate then
    ...
      

  2.   

    http://www.playicq.com/dispdocnew.php?id=20336需要注册,下载是免费的
      

  3.   

    我以前做过一个建筑租赁系统 ,时间是real类型的  你可以加和减  然后就知道了吧
      

  4.   

    楼主  1, 知道不知道 时间是可以 加减的  数字1 代表1天  (可以字定义一个函数算出当月的天数)
          2,副款方式 INTEGER
          3.BEGIN_TIME和END_TIME两个字段日期
    4,STATE 为A 或者X 分别代表已经结算 或者 未结算
      

  5.   

    要我说既然是提醒,就应该在程序启动时检测有没有提示信息。时间到了要取出合同我觉得再单独做一个提示表也可以(启动时检测提示表是否为空)。
    估计你表的结构是一条记录既保存了付费日期又保存了付费方式。(第一次付费,起租日期等于付费日期,以后结算日期等于付费日期)先用select * where 付费方式<>"1次付清" 打开表,然后first。
    while not eof do begin。next;end;做一个循环,查询每一条记录是否到了提示时间,(也许提示也有分当天提示,三天内提示等等)
    判断付费方式,如果一个月用MyDate:=IncMonth(PlyDdate,1);//给付费日期加一个月。(MyDate:=MyDate-3,三天内提示)两个月MyDate:=IncMonth(PlyDate,2)....一年就加12个月好了。 然后和当前日期比较:if MyDate-Date=0 then begin
    查询提示表中有没有这条信息。如果没有就插入一条,把合同内容导入提示表中。返回一个有提示信息的变量。(程序启动时检测提示表中有没有记录)点击结算完成:先找到合同表中的记录,更改付费日期,如缴费方式是一个月,Edit;PlyDate:=IncMonth(PlyDate,1).;post;然后删除提示表中记录;
      

  6.   

    觉得rcaicc(√(没完没了)) 让我有新的顿悟,我将在软件完工的时候结贴。然后在这里拿出我所有的可用分,3300,分给各位。谢谢大家。