小弟碰到的问题是这样的:
    我想把通过查询得到的数据用报表显示出来,但问题是我的查询语句带有参数,于是通过SQL.ADD()形式进行查询,并未在属性面板中设置SQL属性;因此作报表的时候我需要在预览是动态的把记录集中的数据赋值给报表中的QRDBText控件,
现在我不清楚的是在哪个窗口的哪个事件中写赋值代码,如何写,请高手赐教!!

解决方案 »

  1.   

    procedure TFraQuery.Preview;
    begin
        with TQuickReport1.Create(nil) do
        begin
            DataSet :=DataSource1.DataSet;
            QTxtCarcode.DataSet:=DataSource1.DataSet;
            QTxtCarCode.DataField:='Carcode';
            QTxtCarType.DataSet:=DataSource1.DataSet;
            QTxtCarType.DataField:='CarType';
            QTxtCarName.DataSet:=DataSource1.DataSet;
            QTxtCarName.DataField:='CarName';
            QTxtCompany.DataSet:=DataSource1.DataSet;
            QTxtCompany.DataField:='Company';
            QTxtExhaust.DataSet:=DataSource1.DataSet;
            QTxtExhaust.DataField:='Exhaust';
            QTxtBuyDate.DataSet:=DataSource1.DataSet;
            QTxtBuydate.DataField:='BuyDate';
            QTxtRejectDate.DataSet:=DataSource1.DataSet;
            QtxtRejectDate.DataField:='RejectDate';
            QTxtCarStatus.DataSet:=DataSource1.DataSet;
            QTxtCarStatus.DataField:='Status';
            Preview;
        end;
    end;
      

  2.   

    我试过,但问题是我在窗体FrmQueryTeachPlan(有报表生成按钮)中引用有报表控件的窗体Frmteachplanrepor,在报表生成按钮生成按钮的单击事件中写了如下代码:
    procedure TFrmTeachPlanQuery.Button4Click(Sender: TObject);
    begin
    Frmteachplanreport:=TFrmteachplanreport.Create(Application);
    with  FrmDataModule.QueryTeachingPlan do
     Frmteachplanreport.QuickRep1.QRDBText2.datafield:=fieldbyname('专业名').AsString;
     Frmteachplanreport.QuickRep1.PreviewModal;
    end;但编译是出现错误:[Error] QueryTeachPlan.pas(221):Undeclaredidentifier: 'QRDBText2'请问是哪里错了,在线等ING
      

  3.   

    'QRDBText2'检查一下拼写错误,
      

  4.   

    TO huayuxing(huayuxing):
    拼写没问题啊,我是直接拷贝报表中控件的NAME啊,大哥在帮我看看吧
      

  5.   

    QuickRep1.QRDBText2在报表窗体中定义了吗?
      

  6.   

    Frmteachplanreport.QuickRep1.QRDBText2.datafield:=fieldbyname('专业名').AsString;
    换成这个试试QRDBText2.datafield:=fieldbyname('专业名').AsString;