可能性有很多
看一下delphi的demo照着做就行了

解决方案 »

  1.   

    代码
    unit rtest;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids,rep, QRCtrls, QuickRpt;type
      TMainForm = class(TForm)
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        Button1: TButton;
        Button2: TButton;
        Edit1: TEdit;
        Table1: TTable;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.Button1Click(Sender: TObject);
    //var s:string;
    begin
    //   s:=edit1.text;
    //   with query1 do
    //      begin
    //         close;
    //         sql.clear;
    //         sql.add(s);
    //         open;
    //      end;
    end;
    procedure TMainForm.Button2Click(Sender: TObject);
    var
    leftv,i:integer; //leftv为报表起始位置
    cheader:Tqrlabel;
    detailtext:Tqrdbtext;
    begin
       repform.QuickRep1.Bands.HasPageHeader:=true;
       leftv:=0;
       for i:=0 to dbgrid1.columns.Count-1 do
           begin
              cheader:=TQRLabel.Create(repform);
              with cheader do
                 begin
                    parent:=repform.QuickRep1.Bands.PageHeaderBand;
                    caption:=dbgrid1.columns[i].fieldname;
                    width:=dbgrid1.columns[i].width;
                    height:=repform.columnheaderband1.height;
                    left:=leftv+2;
                    top:=5;
                 end;
                //在leftv 处画表格竖线
               leftv:=dbgrid1.columns[i].width+leftv;
            end;
       //画表头栏边框。起始位为0,总宽度为leftv,也就是dbgrid1的各列宽度之和
       leftv:=0;
       //显示记录内容
       for i:=0 to dbgrid1.columns.Count-1 do
       begin
          detailtext:=TQrdbtext.create(repform);
          with detailtext do
          begin
             parent:=repform.DetailBand1;
             dataset:=table1; // query1;
             datafield:=dbgrid1.columns[i].fieldname;
             width:=dbgrid1.columns[i].width;
             height:=repform.detailband1.height;
             left:=leftv+2;
             top:=5;
          end;
          //在leftv 处画表格竖线
          leftv:=dbgrid1.columns[i].width+leftv;
       end;
       // 画明晰栏边框。
       repform.quickrep1.preview(); //报表预览
    end;
    end.
      

  2.   

    伴水,能交个朋友吗?可以给你的mail我吗?,我的mail是[email protected]
      

  3.   

    窗体里设置
      QuickRep1.DataSet := Table1;
      

  4.   

    to NotDo(无为):好呀!把问题解决先mailto:[email protected]
    oicq:45531143
      

  5.   

    repform.QuickRep1.DataSet := Table1;
      

  6.   

    我很少玩qq,你有好的qq介绍吗?
      

  7.   

    procedure Trepform.Button1Click(Sender: TObject);
    var
    leftv,i:integer; //leftv为报表起始位置
    cheader:Tqrlabel;
    detailtext:Tqrdbtext;
    begin
      repform.QuickRep1.Bands.HasPageHeader:=true;
      repform.QuickRep1.Bands.HasDetail:=true;
      leftv:=0;
      for i:=0 to dbgrid1.columns.Count-1 do
          begin
              cheader:=TQRLabel.Create(repform);
              with cheader do
                begin
                    parent:=repform.QuickRep1.Bands.PageHeaderBand;
                    caption:=dbgrid1.columns[i].fieldname;
                    width:=dbgrid1.columns[i].width;
                    height:=repform.QuickRep1.Bands.DetailBand.height;
                    left:=leftv+2;
                    top:=5;
                end;
                //在leftv 处画表格竖线
              leftv:=dbgrid1.columns[i].width+leftv;
            end;
      //画表头栏边框。起始位为0,总宽度为leftv,也就是dbgrid1的各列宽度之和
      leftv:=0;
      //显示记录内容
      for i:=0 to dbgrid1.columns.Count-1 do
      begin
          detailtext:=TQrdbtext.create(repform);
          with detailtext do
          begin
            parent:=repform.QuickRep1.Bands.DetailBand;
            dataset:=table1; // query1;
            datafield:=dbgrid1.columns[i].fieldname;
            width:=dbgrid1.columns[i].width;
            height:=repform.QuickRep1.Bands.DetailBand.height;
            left:=leftv+2;
            top:=5;
          end;
          //在leftv 处画表格竖线
          leftv:=dbgrid1.columns[i].width+leftv;
      end;
      // 画明晰栏边框。
      repform.quickrep1.preview(); //报表预览
    end;
      

  8.   

    玩delphi多久了?我玩了半个月,我做了一个dbgrid,可以自动检查
    增加,修改等功能,你做过吗?
      

  9.   

    两年多了不要把精力放在处理DBGrid上
    应放在DBGrid.DataSource.DataSet
    //既是Table1,Query1,ADOTable1..............等数据集控件上