1.打印的时候是用什么组件实现的?(是不是用QuickRep?)
2.能不能对表中的字段进行有选择的打印?
3.为什么我用QuickRep1.DataSet:=Form1.DBGrid.DataSource.Dataset;无法联接到Form1中DBGrid的数据?

解决方案 »

  1.   

    1.QuickRep;
    2.QRDBText;
    3.未在implementation下写uses unit1;
      

  2.   

    有啊,已经写了,Uses Unit1,但是在QuickRep预览时,没有数据显示出来?这为什么?
      

  3.   

    unit1 中的数据集空间open了吗?
      

  4.   

    回JInyk(小小的猪)已经Open了。
    回yzykjh(多米诺骨牌),你说的QRDBText是什么?我没有这项,还请指教!
      

  5.   

    QRDBText组件,在QReport工具栏中,与QuickRep是同一工具栏。
      

  6.   

    回yzykjh(多米诺骨牌),以下是我的代码段,能帮我看看错在哪里吗?unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, QuickRpt, StdCtrls, DB, ADODB;type
      TForm2 = class(TForm)
        QuickRep1: TQuickRep;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        DetailBand1: TQRBand;
        PageHeaderBand1: TQRBand;
        TitleBand1: TQRBand;
        procedure Button3Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementationuses unit1;  //这里已经Uses Unit1了,但还是不行{$R *.dfm}procedure TForm2.Button1Click(Sender: TObject);
    begin
            
    Form1.ADOQuery1.Close;
            QuickRep1.DtaSet:=Form1.DBGrid1.DataSoaurce.DataSet;//这样写正确吗?
            QuickRep1.Preview;
    Form1.ADOQuery1.Open;//是否在这里将Form1中的ADOQuery打开        
    end;
      

  7.   

    procedure TForm2.Button1Click(Sender: TObject);
    begin
            Form1.ADOQuery1.Open;
            QuickRep1.DtaSet:=adoquery1;
            QuickRep1.Preview;
    end;
      

  8.   

    回yzykjh(多米诺骨牌) ,还是不能预览你刚才说的QRDBText组件怎么用来着?是不是我没有添加这个组件的原因?
      

  9.   

    QRDBText.dataset:=form1.adoquery1;
    qrdbtext.datafield:='字段名';
      

  10.   

    回wzpbobsir(傻蛋)
    我已经uses unit1了,这样应该是包含Form1的单元文件了吧?
    回yzykjh(多米诺骨牌) 
    我是要取Form1中DBGrid的数据啊,如果像你那样我得一个一个的字段名给他啊?
      

  11.   

    你可以动态创建QRDBText呀!
    var arrQRDBText: array of TQRDBText;    arrQRDBText[i]:=TQRDBText.Create(nil);
        arrQRDBText[i].Parent:=DetailBand1;
        arrQRDBText[i].Visible:=True;
        arrQRDBText[i].AutoSize:=False;
        arrQRDBText[i].Height:=...;
        arrQRDBText[i].Top:=...;
        arrQRDBText[i].Left:=...;
        arrQRDBText[i].Width:=...;
        arrQRDBText[i].Font.Name:='宋体';
        arrQRDBText[i].Font.Size:=9;
        arrQRDBText[i].Font.Charset:=GB2312_CHARSET;
        arrQRDBText[i].DataSet:=form1.adoquery1;
        arrQRDBText[i].Mask:='#.##';
        arrQRDBText[i].DataField:=form1.adoquery1.Fields[i].FieldName;
      

  12.   

    这下我更晕了,我是在Form1中已经用DBGrid取出表的数据了,我现在是要把DBGrid中的这些数据打印出来即可!