aText := TQRDBText.Create(self);
   aText.Parent :=DetailBand1;
   with aText do
   begin
    AutoSize:=False;
    AutoStretch:=True;
    Left :=300;
    Top :=320;
    Height:=17;
    DataSet:=DDBB_ZQ.Table2;
    DataField:=DDBB_ZQ.Table2.FieldbyName('WDXH').AsString;
    End;
想在报表特定位置创建一个QRDBText,可是编译通过,报表上却没有,怎么回事?

解决方案 »

  1.   

    aText := TQRDBText.Create(self);
       //aText.Parent :=DetailBand1;
       QuickRep1.DetailBand1.InsertControl(aText );
       with aText do
       begin
        AutoSize:=False;
        AutoStretch:=True;
        Left :=30;//小一点
        Top :=32;//小一点
        Height:=17;
        DataSet:=DDBB_ZQ.Table2;
        DataField:=DDBB_ZQ.Table2.FieldbyName('WDXH').AsString;
        End;
      

  2.   

    Left和Top是对应窗体的位置啊,小点只不过位置变了
      

  3.   

    这里的left和Top是相对QuickRep1.DetailBand1容器的,你要对窗口的位置的话,还得转换如Top := 320 - QuickRep1.DetailBand1.Top就是你要的值了
    left := 300 - QuickRep1.DetailBand1.left就是你要的值了
      

  4.   

    哎,告诉你不是这个的问题,老大你别拐错方向了。
    这个位置是肯定没错的,我在这个地方显示QRlabel都行的,换成QRtext就是空白
    我是说是不是我的语句少了什么??
      

  5.   

    aText := TQRDBText.Create(self);
     with aText do
       begin
        AutoSize:=False;
        AutoStretch:=True;
        Left :=300;
        Top :=320;
        Height:=17;
        DataSet:=DDBB_ZQ.Table2;
        DataField:=DDBB_ZQ.Table2.FieldbyName('WDXH').AsString;
     End;
     aText.Parent :=DetailBand1;  //将此行放后面另:你这段创建代码应在 ReportForm.Create之后,在TQuickrep.Preview或Print之前