← 返回所有博客文章

子报表是嵌套到另一个报表中的报表。当我们需要多张报表显示在同一一报表中时我们就需要子报表。在报表中,创建子报表是非常简单的。关于怎样实现子报表,请参考Documentation

有很多使用场景,我们需要操作子报表的可见性。在这篇文章中,我们将实现以下两个功能:

1. 操作子报表的可见性。

2. 操作子报表展示数量。

以上两个功能只能通过C1ReportDesigner VBScript 编辑器实现。我们需要添加script代码到Detail 区域的OnPrint 事件中。

Case1 : 操作报表的可见性

操作步骤如下:

1. 在报表的 detail 区域添加多个子报表。

2. 设置这些子报表的可见性为 false。

3. 现在,检查标记位的字符串,进而切换子报表的可见性。添加以下代码到VBScript 编辑器中:

str=VehicleName

Field2.Text=str

If str="Car" then

    CarSubReport.Visible= True

    BikeSubReport.Visible= False

    BoatSubReport.Visible= False

Elseif str="Boat" then

    BoatSubReport.Visible= True

    CarSubReport.Visible= False

    BikeSubReport.Visible= False

Elseif str="Bike" then

    BikeSubReport.Visible= True

    CarSubReport.Visible= False

    BoatSubReport.Visible= False

Endif

clip_image002

Case2 :显示不同数量的子报表

在这个case中, 你想在主报表中展示不同数量的子报表,步骤如下:

1. 添加多个纵向的子报表,设置高度为1。因为,一次性可能会出现多个报表。标记字段需要依次自上而下添加避免折叠现象。

2. 设置子报表的Visible 属性为false,设置CanGrow属性为True

3. 现在检测 Detail 区域的标记字段值,切换报表的可见性。:

str=Number

If str="1" then

     CarSubReport.Visible= True

     BikeSubReport.Visible= False

     BoatSubReport.Visible= False

Elseif str="2" then

     CarSubReport.Visible= True

     BikeSubReport.Visible= True

     BoatSubReport.Visible= False

Elseif str="3" then

     CarSubReport.Visible= True

     BikeSubReport.Visible= True

     BoatSubReport.Visible= True

Endif

clip_image004