我一直试图在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;
答案 0 :(得分:0)
在DBCross上使用事件OnCalcHeight
答案 1 :(得分:0)
我找到了一种方法来解决这个问题。您必须在交叉表中禁用自动调整大小,并在您已经获得的相同过程中管理脚本中单元格的大小和位置。
像这样的东西
*
*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;*
*