QuickReport根据每行的内容长度动态调整DetailBand1的行高

procedure TPosPubFactureRep.DetailBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
var
    n, total : integer;
    str : String;
begin
    total := 1;
    str := ADOArticle.FieldByName('my_data').AsString;
  Repeat
    n := Pos(#13, str);
    if n>0 then
    begin
        Inc(total);
        Str:=RightStr(str, Length(str)-n-1);
    end;
  until n=0;

    DetailBand1.Height:=total*18;
end;

还有SubDetail的行高:

procedure TFEDAV.QRSubDetail1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
    if ( QRSubDetail1.Expanded > 0) then
      begin
        QrShape18.Size.Height := QRSubDetail1.size.Height + QRSubDetail1.Expanded;
        QrShape19.Size.Height := QRSubDetail1.size.Height + QRSubDetail1.Expanded;
        QrShape20.Size.Height := QRSubDetail1.size.Height + QRSubDetail1.Expanded;
        QrShape21.Size.Height := QRSubDetail1.size.Height + QRSubDetail1.Expanded;
        QrShape22.Size.Height := QRSubDetail1.size.Height + QRSubDetail1.Expanded;
        QrShape23.Size.Height := QRSubDetail1.size.Height + QRSubDetail1.Expanded;
      end;
end;

 

posted @ 2017-06-08 23:43  findumars  Views(827)  Comments(0Edit  收藏  举报