How To : Toggle Visibility of Subreports Using C1ReportDesigner
A SubReport is a report that is inserted in another report. Subreports are useful when you want to combine several reports into one. In C1Report, creating a Subreport is very simple. To know, how to create Subreports, you can read this Documentation link. Now, there might be certain scenarios where you would like to customize the way how the Subreports appear in the final output. In this Blog, we are covering the following two scenarios.
*** Display Subreports conditionally
- Vary the number of Subreports to be displayed**
This can be done only using VBScript editor of C1ReportDesigner. We need to add the desired script-code into the OnPrint property of Detail section of the report. In our blog implementation, we will handle the custom display of Subreports on the basis of the field value in the Main Report.
Case1 : Display different SubReports
This implementation toggles the visibility of the SubReports on the basis of a field value in the Main report. That is, if there are multiple Subreports, only the related Subreport is displayed and rest of the reports are hidden. To do this, follow the mentioned steps :
- Add the different subreports in the detail section one over the other in C1ReportDesigner. Since, in this case only one field will be visible at a time, the fields are added one over the other to avoid any blank spaces while rendering of the report.
- Set the Visible property of each of them to False.
- Now check the last fetched value in the Detail Section and toggle the visibility of the subreports on it’s basis. Add the following code in the VBScript Editor :
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 : Display different number of SubReports
In case, you want to display different number of SubReports on the main report, follow the under mentioned steps :
- Add multiple subreports vertically, one below the other in the Detail Section of C1ReportDesigner. Set the height of each to "1". Since, more than one Subreport might be visible at a time, the fields are added one below the other to avoid any overlapping of text in the rendered report. Also, note that the height of each subreport is set to a minimum value of "1". This is done to ensure that no blank space is present in the rendered report, if the visibility of that subreport is set to false.
- Set the Visible property of each of them to False and CanGrow property to True.
- Now check the last fetched value in the Detail section and toggle the visibility of the subreports on it’s basis. Add the following code in the VBScript Editor :
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
Refer to the attached report xml for the complete implementation. Download XML