2013-06-24 1 views
0

FastReport의 크로스 탭에서 행을 숨기려고했지만 어떻게 할 수 없습니까?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

사용 이벤트 OnCalcHeight DBCross

+0

내가 해봤지만 내 버전 (빠른 보고서에서 원래 –

+0

보다 낮은 높이를 넣어하지 않는 4

뭔가) 작동합니다. 그렇지 않으면 기본 높이를 0으로 설정하고 다른 모든 행을 원하는 높이로 설정하십시오. – slotomo

+0

아직 없습니다. 어쩌면이 이미지가 내 문제를 이해하는 데 도움이 될 수 있습니다. http://twitpic.com/cyx4hc –

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;* 

*

관련 문제