或者你导入EXCEL,用EXCEL做打印比较省力气

解决方案 »

  1.   

    因为列数不一定,做报表很麻烦。我就想把DBGrid整个打出来。
    ehlib是什么?
      

  2.   

    ehlib下载
    http://download.lycos.com.cn/soft_con_grids/ehlib.html
      

  3.   

    你可以看看这个例子,不过这个是stringgrid
    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;
      

  4.   


    只需要人民币20元,你就可以获得本灌水机的程序和Visual C++源代码,并获得永久性技术支持。还等什么?灌水等着你!就在今夜!元宵佳节!(可怜我信誉)