数据库结构:
员工编号       款号      部门      金额 
  001        XX8800      aa      100.00         
  002        Tx1000      bb      190.00
  003        DC3001      aa      100.00
  004        Tx1000      bb      170.00
  005        BX3000      cc      100.00
  006        CQ1000      aa      200.00
  007       Tx1000       aa      150.00我想打印这样的效果,
部门:aa
-----------------
 001        XX8800      aa      100.00 
 003        DC3001      aa      100.00      
 006        CQ1000      aa      200.00
 007       Tx1000       aa      150.00
--------------------
小计     4人       金额:550
部门:aa
-----------------
002        Tx1000      bb      190.00
004        Tx1000      bb      170.00
--------------------
小计     4人       金额:550........我以前用过quickreport,可我看大家用fastreport,怎么用?如果能用quickreport实现最好

解决方案 »

  1.   

    看delphi自己的例子,里边有,
    C:\Program Files\Borland\Delphi7\Demos\Quickrpt\Qr3
      

  2.   

    能不能帮我写这个功能的sql语句?谢谢
      

  3.   

    select 员工编号,款号,部门,金额 from 表 group by 员工编号,部门
    打印的时候分两个query一个用来查部门,一个用来打印.
    quickreport可以做倒.
      

  4.   

    在QRExpr1,DetailBand1,QRSubDetail2,要有这些控件.
    在DataSource1DataChange里写查询条件.
    detailband1里放部门
      

  5.   

    在DataSource1DataChange里写查询条件.比如:
    procedure TYIZDY.DataSource1DataChange(Sender: TObject; Field: TField);
    begin
    if not query1.Eof then
        begin
           query2.Close;
            while query2.SQL.Count>2  do
            query2.SQL.Delete(2);
            query2.SQL.Add(' and zhuyh='+#39+query1zhuyh.AsString+#39);
            Query2.SQL.Add('And YIZZXZ='+#39+FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date+1)+#39);
            query2.Open;
        end;
      

  6.   

    select * from yb1 order by 部门
    怎么记录只有一条?
      

  7.   

    QuickReport不会用,FastReport里面很简单,设置一对GroupHeader和GroupFooter就可以了,在GroupHeader里的汇总条件里放 部门 字段
      

  8.   

    在网上用Google搜一搜FastReport就能搜到好多的。
      

  9.   

    procedure TYIZDY.DataSource1DataChange(Sender: TObject; Field: TField);
    begin
    if not query1.Eof then
        begin
           query2.Close;
            while query2.SQL.Count>2  do
            query2.SQL.Delete(2);
            query2.SQL.Add(' and zhuyh='+#39+query1zhuyh.AsString+#39);
            Query2.SQL.Add('And YIZZXZ='+#39+FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date+1)+#39);
            query2.Open;
        end;