hehe!!
这个问题我到是没有想过啊,平时只是实现简单的报表功能啊!!
你的问题不错,值得研究啊!!如何发挥报表的功能啊!!

解决方案 »

  1.   

    Cell可以实现,不过控件是要注册的。
      

  2.   

    为什么不哟功能QR了?用QR可以轻松搞定的啊?
      

  3.   

    有个控件叫EasyGrid,提供源代码,可以参考一下
    功能还不错,预览打印上比较有特色。
      

  4.   

    unit mypriv;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      QRPrntr, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls;type
      TForm2 = class(TForm)
        QRPreview1: TQRPreview;
        ToolBar1: TToolBar;
        SpeedButton1: TSpeedButton;
        SpeedButton2: TSpeedButton;
        SpeedButton3: TSpeedButton;
        SpeedButton4: TSpeedButton;
        SpeedButton5: TSpeedButton;
        SpeedButton6: TSpeedButton;
        SpeedButton7: TSpeedButton;
        SpeedButton8: TSpeedButton;
        SpeedButton9: TSpeedButton;
        SpeedButton10: TSpeedButton;
        SpeedButton11: TSpeedButton;
        Bevel3: TBevel;
        Bevel4: TBevel;
        FontDialog1: TFontDialog;
        Bevel1: TBevel;
        StatusBar1: TStatusBar;
        procedure BitBtn1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure SpeedButton4Click(Sender: TObject);
        procedure SpeedButton1Click(Sender: TObject);
        procedure SpeedButton2Click(Sender: TObject);
        procedure SpeedButton3Click(Sender: TObject);
        procedure SpeedButton6Click(Sender: TObject);
        procedure SpeedButton5Click(Sender: TObject);
        procedure SpeedButton8Click(Sender: TObject);
        procedure SpeedButton10Click(Sender: TObject);
        procedure SpeedButton9Click(Sender: TObject);
        procedure SpeedButton7Click(Sender: TObject);
        procedure SpeedButton11Click(Sender: TObject);
      private
       i:integer; { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation
    {$R *.DFM}procedure TForm2.BitBtn1Click(Sender: TObject);
    begin
      close;
    end;procedure TForm2.FormCreate(Sender: TObject);
    begin
       i:=100;
    end;procedure TForm2.SpeedButton4Click(Sender: TObject);
    begin
      close;
    end;procedure TForm2.SpeedButton1Click(Sender: TObject);
    begin
       i:=i+5;
       qrpreview1.Zoom:=i;
    end;procedure TForm2.SpeedButton2Click(Sender: TObject);
    begin
      i:=i-5;
      qrpreview1.Zoom:=i;
    end;procedure TForm2.SpeedButton3Click(Sender: TObject);
    begin
       QRPreview1.QRPrinter.Print;
    end;procedure TForm2.SpeedButton6Click(Sender: TObject);
    begin
       i:=100;
       qrpreview1.Zoom:=90;
    end;procedure TForm2.SpeedButton5Click(Sender: TObject);
    begin
      qrpreview1.Zoom:=100;
    end;procedure TForm2.SpeedButton8Click(Sender: TObject);
    begin
       qrpreview1.PageNumber:=1;
    end;procedure TForm2.SpeedButton10Click(Sender: TObject);
    begin
       qrpreview1.PageNumber:=qrpreview1.PageNumber-1;
    end;
    procedure TForm2.SpeedButton9Click(Sender: TObject);
    begin
       qrpreview1.PageNumber:=qrpreview1.PageNumber+1;
    end;procedure TForm2.SpeedButton7Click(Sender: TObject);
    begin
        qrpreview1.PageNumber:=qrpreview1.QRPrinter.PageCount;
    end;procedure TForm2.SpeedButton11Click(Sender: TObject);
    begin
        qrpreview1.QRPrinter.PrintSetup;
    end;end.
    看行吗?
      

  5.   

    有个函数是escape,可以俘获打印机的canvas句柄,,还的用图元文件,具体点有吗?
      

  6.   

    可以用Printer.Canvas.Text(OutRect:TRect;Left:Integer;Right:Integer;Str:String)
    来实现。
    不过内容、表格线和分页处理都要自己控制来实现哦。
    我就是通过这种方式来实现打印的,特灵活!:-)
    祝你好运
      

  7.   

    zzg40280614你说的对,最麻烦是预览,我要做的就是预览啊,