如题,请问如何实现
FastReport中memo2根据memo1动态调整垂直位置???

解决方案 »

  1.   

    可以设置自动伸展,memo2紧跟memo1,如果需要特定位置,那就自己写代码控制吧或者写脚本
      

  2.   

    但是memo1动态变化就会遮挡住memo2的
      

  3.   

    动态时位置缺少不好控制,除非你计算的非常准确。
    你说的:memo1动态变化就会遮挡住memo2的,如果上下变化,应该不会遮挡,除非memo1和memo2是上下位置的。你可以继续发帖把:位置、如何变化、达到什么效果都说清楚一些。
      

  4.   

    根据memo1的top+height 来设置memo2的top~~
      

  5.   

    楼上说的还有点靠谱,但是没这样使用过FastReport---memo位置还要脚本控制
      

  6.   

    垂直和水平写法都差不多,指定第一个memo1,Left,Top,Width,Height
    后面的memo,根据前一个计算memo2.Left:=memo1.Left
    memo2.Height:=memo1.Height;
    memo2.Width:=memo1.Width;
    memo2.Top:=memo1.Top+memo1.Height;
      

  7.   

    下面是一个方法 你可以看下是否可以在 BeforePrint里面能不能行var
      i: Integer;
      aPath: String;
    begin
      for i := 0 to frxPrintReport.ComponentCount - 1 do
      begin
        if LowerCase(frxPrintReport.Components[i].Name) = LowerCase('JinBanRen') then
        begin
          TfrxMemoView(frxPrintReport.Components[i]).Text := '经办人:' + edtDo.Text;
        end;
        if LowerCase(frxPrintReport.Components[i].Name) = LowerCase('RuKuDanHao') then
        begin
          TfrxMemoView(frxPrintReport.Components[i]).Text := '入库单编号:' + edtInputNo.Text;
        end;
        if LowerCase(frxPrintReport.Components[i].Name) = LowerCase('BookFrom') then
        begin
          TfrxMemoView(frxPrintReport.Components[i]).Text := ComboBoxInInfo.Text;
        end;
        if LowerCase(frxPrintReport.Components[i].Name) = LowerCase('BaoGuan') then
        begin
          TfrxMemoView(frxPrintReport.Components[i]).Text := '保  管:' + edtBaoGuan.Text;
        end;
        if LowerCase(frxPrintReport.Components[i].Name) = LowerCase('PrintDate') then
        begin
          TfrxMemoView(frxPrintReport.Components[i]).Text := lblDate.Caption;
        end;
      end;
        
      frxPrintReport.ShowReport();
      

  8.   

    FastReport不太好用,建议通过直接操作EXCEL表更方便.