【问题标题】:Hide rows in cross-tab for FastReport在 FastReport 的交叉表中隐藏行
【发布时间】:2018-01-25 14:42:23
【问题描述】:

我一直试图在 FastReport 的交叉表中隐藏行,但我找不到方法。

当我隐藏 MemoViews 时,它给我留下了一个空白空间,我不知道如何摆脱它。

代码如下:

procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
begin
       if (cellindex = 1) and (rowindex = 1) then begin
               memo.visible := false;
               memo.height  := 0;    
       end;                                  
end;

procedure DBCross1OnPrintRowHeader(Memo: TfrxMemoView; HeaderIndexes, HeaderValues, Value: Variant);
begin                                           
  if (trim(memo.memo.text) = 'HORA') and ( HeaderIndexes[0] = 1 ) then begin              
       memo.visible:=false;
       memo.height  := 0;           
  end;                                  
  if (trim(memo.memo.text) = 'individual') then begin
       memo.height  := memo.height /2;               
  end;
end;

【问题讨论】:

    标签: delphi pascal fastreport


    【解决方案1】:

    在 DBCross 上使用事件 OnCalcHeight

    【讨论】:

    • 我试过了,但它不允许我把高度低于原来的
    • 在我的版本(快速报告 4)中它可以工作。否则尝试将默认高度设置为 0,然后将所有其他行设置为您喜欢的高度。
    • 还是什么都没有。也许这张图片可以帮助你理解我的问题twitpic.com/cyx4hc
    • 我理解你的问题,我试图模拟,但在我的情况下它可以工作。行不可见。
    • procedure DBCross1OnCalcHeight(RowIndex: Integer; RowValues: Variant; var Height: Extended);如果 RowIndex = 1 则开始,然后高度:=0;结束;
    【解决方案2】:

    我只找到了一种解决此问题的方法。您必须在交叉表中禁用自动调整大小,并在您已经获得的相同过程中从脚本中管理单元格的大小和位置。

    类似的东西

    *

    *procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
    begin
    
    if (checkbox1.checked = false) and (cellindex = 0) then begin
    memo.width := 0;    
    memo.visible := false;
    memo.printable := false;          
    end; if (checkbox1.checked = false) and (cellindex <> 0) then begin
    memo.left := memo.left - ((columnindex+1)*100);
    end;
    end;
    procedure DBCross1OnPrintColumnHeader(Memo: TfrxMemoView; HeaderIndexes, HeaderValues, Value: Variant);
    begin
    
    if (checkbox1.checked = false) and (trim(memo.memo.text) = 'Первичные пациенты') then begin
    memo.width := 0; memo.text := '';memo.visible := false;memo.printable := false; end;          
    
    if (checkbox1.checked = false) and (HeaderIndexes[0] >= 0) and (memo.width > 100) then begin
    memo.width := memo.width - 100; end;    
    
    end;
    end;*
    

    *

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多