小D初学Dehphi,现在正在做报表,情况如下:
我现在正在做一张发票,显示字段用的是QRLabel控件,现在已知道用户的名称,编号并已赋给了相对应的QRLabel控件,现在我想用一个ADOQuery控件连接数据庫,并根据用户名称及编号查询出用户的其它信息,把查询出的若干个字段的值赋给了相对应的QRLabel控件,该如何处理,请各位帮忙,最好写两条语句解释一下,分不够了可以再加,谢谢!

解决方案 »

  1.   

    在你创建了这个FORM的对象之后,PREVIEW这个报表之前,加上如下代码:MRPPrintForm := TMRPPrintForm.Create(Application);
      try
        with MRPPRintForm do
        begin
          adoquery1.close;
          adoquery1.sql.clear;
          adoquery1.sql.add('select * from table1 where id='''+qlabel1.caption+'''');
          adoquery1.open;
          csmBILLNO.Caption := adoquery1.fieldbyname('BILLNO').Asstring;
          csmTYPIST.Caption := deTYPIST.Text;
          {...}
        end;
      finally
        MRPPrintForm.Free;
        MRPPrintForm := nil;
      end;
      

  2.   

    建议不要使用QRLabel控件,使用QRDBTEXT控件
      

  3.   

    with adoquery do 
      begin
        close;
        sql.add('select * from table where username='
        + ''''+qrlabel1caption+'''');
        execsql;
      end; //查询
      //以下是把结果赋给qrlabel
     if adoquery.recordcount <>0 then
        qrlabel1.caption:= adoquery1.FieldByName('id').AsString ; 
        .....
      

  4.   

    with ADORuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.ADD('select * from 你的表名 where 用户名称=当前用户 and 编号=当前编号');
      Open;
    end;
    QRlabel3.Caption:=ADOQuery1['你的对应字段名'];
    QRlabel4.Caption:=ADOQuery1['你的对应字段名'];
    ....