用quickrep就可以实现了,不知道你还有什么特别的要求

解决方案 »

  1.   

    可以把报表的窗口hide,然后继续打印或者直接写一个打印机,printer,delphi提供的.
      

  2.   

    给你一段代码参考,打印TstringGrid
    procedure PrintGrid(sGrid: TStringGrid; sTitle: String);
    var
     X1, X2 : Integer;
     Y1, Y2 : Integer;
     TmpI   : Integer;
     F      : Integer;
     TR     : TRect;
    begin
     Printer.Title:=sTitle;
     Printer.BeginDoc;
     Printer.Canvas.Pen.Color:=0;
     Printer.Canvas.Font.Name:='Times New Roman';
     Printer.Canvas.Font.Size:=12;
     Printer.Canvas.Font.Style:=[fsBold, fsUnderline];
     Printer.Canvas.TextOut(0, 100, Printer.Title);
     For F:=1 to sGrid.ColCount-1 do begin
       X1:=0;
       For TmpI:=1 to (F-1) do
         X1:=X1+5*(sGrid.ColWidths[TmpI]);
       Y1:=300;
       X2:=0;
       For TmpI:=1 to F do
         X2:=X2+5*(sGrid.ColWidths[TmpI]);
       Y2:=450;
       TR:=Rect(X1, Y1, X2-30, Y2);
       Printer.Canvas.Font.Style:=[fsBold];
       Printer.Canvas.Font.Size:=7;
       Printer.Canvas.TextRect(TR, X1+50, 350, sGrid.Cells[F, 0]);
       Printer.Canvas.Font.Style:=[];
       For TmpI:=1 to sGrid.RowCount-1 do begin
         Y1:=150*TmpI+300;
         Y2:=150*(TmpI+1)+300;
         TR:=Rect(X1, Y1, X2-30, Y2);
         Printer.Canvas.TextRect(TR, X1+50, Y1+50, sGrid.Cells[F, TmpI]);
       end;
     end;
     Printer.EndDoc;
    end;
      

  3.   

    用控件的话,ReportMachin可以
    http://reportmachine.delphibbs.com/