In a section layout, you can create a base report as a template from which other reports can inherit. This behavior is similar to creating a master report and is available in a Section Report (code-based) layout.
Inheriting reports is useful when multiple reports share common features, such as identical page headers and footers. Instead of recreating the look every time, create template headers and footers once and use inheritance to apply them to other reports.
Use the following instructions to create a base report and inherit it in other reports.
|Caution: Base reports and the reports that inherit from them cannot contain controls with duplicate names. You can compile and run your project with duplicate control names, but you cannot save the layout until you change the duplicate names.|
To create a base report
- In a Visual Studio project, add a Section Report (code-based) template and name it rptLetterhead. See Adding an ActiveReport to a Project for more information.
- In the report template that appears, add the following controls from the Visual Studio toolbox to the indicated section of rptLetterhead and set the properties.
Control Section Location Size Miscellaneous Picture PageHeader 0, 0 in 3, 0.65 in Image = (click ellipsis and navigate to the location of your image file)
PictureAlignment = TopLeft
Label PageHeader 1.16, 0.65 in 1.8, 0.25 in Text = Inheritance
Font = Arial, 15pt, style=Bold
Label PageFooter 0, 0 in 6.5, 0.19 in Text = http://www.grapecity.com
HyperLink = http://www.grapecity.com
Font/Bold = True
Alignment = Center
- Right-click the gray area below the design surface and choose properties, to open the Properties window.
- In the Properties window, set the MasterReport property to True. Setting the MasterReport property to True locks the Detail section.
You can use the Page Header and Page Footer sections to design the base report. When you create reports that inherit the layout from this base report, only the detail section is available for editing.
|Caution: Do not set the MasterReport property to True until you have finished designing or making changes to the report. Setting this property to True triggers major changes in the designer file of the report.|
To inherit layout from a base report
These steps assume that you have already added another Section Report (code-based) template. This report functions like a content report where you can create the layout of the Detail section.
- In a Visual Studio project, add a Section Report (code-based) template and name it rptLetter.
- In the Solution Explorer, right-click the new report and select the View Code option to open the code behind of the report.
- In the code view, modify the inheritance statement as shown below. The content report inherits from the base report instead of GrapeCity.ActiveReports.SectionReport.
Caution: The existing report layout in the content report is lost once you inherit the base report. Even if you change it back to GrapeCity.ActiveReports.SectionReport, the original layout in content report will not be retrieved. Visual Basic.NET code. Replace YourContentReport, YourProjectName and YourMasterReportName with relevant names. Copy Code Partial Public Class rptLetter Inherits YourProjectName.rptLetterhead C# code. Replace YourContentReport, YourProjectName and YourMasterReportName with relevant names. Copy Code public partial class rptLetter : YourProjectName.rptLetterhead
- Close the reports and from the Build menu on the Visual Studio menu bar, select Rebuild. When you reopen the report, the inherited sections and controls are disabled.
Note: To apply further changes from the base report to the content report, you might have to rebuild the project again.