Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 在FastReport的交叉选项卡中隐藏行_Delphi_Pascal_Fastreport - Fatal编程技术网

Delphi 在FastReport的交叉选项卡中隐藏行

Delphi 在FastReport的交叉选项卡中隐藏行,delphi,pascal,fastreport,Delphi,Pascal,Fastreport,我一直试图在FastReport中隐藏交叉表中的行,但找不到方法 当我隐藏备忘视图时,它给我留下了一个空白,我不知道如何摆脱它 代码如下: procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant); begin if (cellindex = 1) and (rowindex

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

当我隐藏备忘视图时,它给我留下了一个空白,我不知道如何摆脱它

代码如下:

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;

在DBCross上使用event OnCalcHeight

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

像这样的

*

*过程DBCross1OnPrintCell(备注:TfrxMemoView;行索引、列索引、单元格索引:整数;行值、列值、值:变量);
开始
如果(checkbox1.checked=false)和(cellindex=0),则开始
备注宽度:=0;
memo.visible:=false;
memo.printable:=false;
结束;如果(checkbox1.checked=false)和(cellindex 0),则开始
memo.left:=memo.left-((columnindex+1)*100);
结束;
结束;
过程DBCross1OnPrintColumnHeader(备注:TfrxMemoView;HeaderIndex,HeaderValue,Value:Variant);
开始
如果(checkbox1.checked=false)和(trim(memo.memo.text)='
备注宽度:=0;memo.text:='';memo.visible:=false;memo.printable:=false;结束;
如果(checkbox1.checked=false)和(HeaderIndexes[0]>=0)以及(memo.width>100),则开始
memo.width:=memo.width-100;结束;
结束;
结束*

*

我已经试过了,但在我的版本(Fast Report 4)中,它不能让我的高度低于原始高度。否则,请尝试将默认高度设置为0,然后将所有其他行的高度设置为您喜欢的高度。仍然为空。也许这张图片可以帮助你理解我的问题,我理解你的问题,我试着去模拟,但在我的情况下它是有效的。行不可见。过程DBCross1OnCalHeight(行索引:整数;行值:变量;变量高度:扩展);如果RowIndex=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;*