C1ReportDesigner切换Subreports 的可见性

发布时间:2012/12/06 00:12 发布者:iceman

返回博客中心

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


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网