DBGrid中有很多条记录。我在DBGrid中选择了多条记录。想把这几条记录做成报表。该怎么做呢。在线等待。请各位大侠帮帮我!先行感谢!!

解决方案 »

  1.   

    如果只是将这几条记录做成表的话那:
    第一方法:利用sql语句将这些数据挑选出来,在报表中将数据指向该query控件即可。
    第二方法:另建一表,将你挑选的记录导入到此表中,在报表中使用该数据即可。
      

  2.   

    用sql语句怎么能把这些数据挑选出来呢?
      

  3.   

    可以在表结构中加入一个字段IS_Select(1表示已选择,0为没有选择也是默认值),接着在DBGrid中加入此字段,如是DBGridEH就更好了,还可能将字段IS_Select以checkbox的形式来显示。
    选择完后就可能这样的SQL语句挑选出来,select * from tablename where is_select='1'
      

  4.   

    当然打印完后,要将IS_Select为1的记录清掉(IS_Select=0)。
      

  5.   

    各位大侠。我用以下代码实现了:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
      S: string;
    begin
      S := '';
      for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
        DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
        S := Format('%s or NAME=%s',
          [S, QuotedStr(DBGrid1.DataSource.DataSet.FieldByName('NAME').AsString)]);
      end;
      Delete(S, 1, Length(' or '));
      DBGrid1.DataSource.DataSet.Filtered := False;
      DBGrid1.DataSource.DataSet.Filter := S;
      DBGrid1.DataSource.DataSet.Filtered := True;
      { TODO : 打印 }
      //恢复用 DBGrid1.DataSource.DataSet.Filter := '';
    end;可我还有一个问题:
    我想把选择的那几条记录的客户应付款(user_pay)合计一下。并显示在报表中,请各位大侠帮帮忙。在线等待赐教。.........