康虎云报表中如何根据条件动态隐藏某些组件

admin 2020-11-20 13879

在康虎云报表使用中,某些业务场景下,需要根据条件动态隐藏某些组件。例如页面中一个二维码组件,如果对应的字段值为空时则不显示,那么可以按下面方式处理:

在二维码组件的OnBeforePrint事件中,编写如下脚本:

procedure Barcode2D1OnBeforePrint(Sender: TfrxComponent);
begin
  //字段值为NUL或空字符串时
  if (<DBSend_master."source_order_code"> = NULL) or (<DBSend_master."source_order_code"> = '') then  
  begin
     TfrxBarcode2DView(Sender).SetBounds(-1000, -1000, 1, 1);   //把二维码移到(-1000, -1000)坐标位置,就不会打印在报表上了     
  end;  
end;


在OnAfterData事件中也可以达到相同效果

=================

在康虎云报表的 SetBounds 函数中,参数是以像素计算的,像素与厘米/毫米或英寸之间需要转换,在康虎云报表中已经内置了四个转换常量:

fr01cm = 3.77953;    //毫米转像素
fr1cm  = 37.7953;    //厘米转像素
fr01in = 9.6;        //0.1英寸转像素
fr1in  = 96;         //1英寸转像素

例如:在设计器中有一个组件的位置及大小:

Left:   13.31 cm

Top:    0.38  cm 

Width:  1.4   cm

Height: 0.4   cm

则使用SetBounds把该组件设置到正常位置(显示)的方式为:

  TfrxMemoView(Memo156).SetBounds(13.31 * fr1cm, 0.38 * fr1cm, 1.4 * fr1cm, 0.4 * fr1cm);



最新回复 (0)
返回