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