quickrep中,在什么地方可以判断到了当前记录集的最后一条?
为什么我的 QUERY2。EOF判断没有用??基本意思就是在一个BAND条中,
  如果不是最后一条记录,就要显示当前记录中的一些数据
  如果到了最后一条,就要显示数据和一条 线,起 分栏 的作用,
我的是一个三重关系的主从表,
  在subdetail2.beginprint事件中判断,没有效果

解决方案 »

  1.   

    在打印内容所在BAND的BEFOREPRINT事件中判断:
    IF QUERY1.EOF THEN DO SOMETHING
      

  2.   

    来晚了。
    你是怎么做判断的?好象数据集指针刚走到最后一条的时候不能判断出是否是最后,要再走一下才知道是last。
      

  3.   

    if recno=recordcount then do.....
      

  4.   

    最好的办法:(能够避免各种问题)
    function IsEof(DataSet: TDataSet): Boolean;
    var
      B1, B2: TBookMark;
    begin
      B1:=DataSet.BookMark;
      try
        DataSet.Last;
        B2:=DataSet.BookMark;
        Result:=B1=B2;
      finally
        DataSet.BookMark:=B1;
      end;
    end;
      

  5.   

    我的是一个三重关系
    query1,query2,query3 ,因为要根据query1,query2来做两个合计
    query1.sql.add('select distinct address from table_name');
    query2.sql.add('select distinct address,date_time from table_name where address=:address');
    query3.sql.add('select * from table_name where address=:address and date_time=:date_time');
    有两个合计的bands,bands_1是对分类date_time求和,bands_2是对address分类求和
    在bands_1的beginprint中做 if query3.eof then dosth; 成功
               做 if query2.eof then dosth;失败
    实际中我需要 if query2.eof then dosth;成功
      

  6.   

    query1,query2,query3是用datasource来联系的!没有出错!datasource1.dataset=query1;
    query2.datasource=datasource1;datasorce2.dataset=query2;
    query3.datasource:=datasource2;
      

  7.   

    我觉得最简单的就是将BANDS的HASSUMMARY设为TRUE,然后将SUMMARY的FRAME加条底线就行了