子报表是嵌套到另一个报表中的报表。当我们需要多张报表显示在同一一报表中时我们就需要子报表。在报表中,创建子报表是非常简单的。关于怎样实现子报表,请参考http://helpcentral.componentone.com/nethelp/c1report/#!Documents/creatingamasterdetai.htm 。
有很多使用场景,我们需要操作子报表的可见性。在这篇文章中,我们将实现以下两个功能:
1. 操作子报表的可见性。
2. 操作子报表展示数量。
以上两个功能只能通过C1ReportDesigner VBScript 编辑器实现。我们需要添加script代码到Detail 区域的OnPrint 事件中。
Case1 : 操作报表的可见性
操作步骤如下:
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 |
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 |