In an earlier blog, we covered the times it will be necessary to migrate from Section reports to Page/RDL reports and the different conversion methods.
Before you begin with the actual conversion process, you'll need to know what all in the report needs to be converted:
In this blog, we'll cover the report layout/design aspect through the guidelines.
This will assist in deciding the following factors:
First, we need to decide on the best report type for conversion.
This involves the following:
By taking the time for this careful analysis, you can easily choose the best report type for conversion based on the report layout/business needs. The basic design requirements in the report can be implemented through different structures and features offered by Page and RDL reports. See the table below.
Design requirements in report | Implemented in Section report by | Supported in Page Report (feature) | Supported in RDL report (feature) |
Size of controls are fixed at both design-time and run-time | Setting CanGrow / CanShrink properties of controls to False |
Y (WYSIWYG layout of Page report, with FixedSize property of data regions) |
N (Though supported for TextBox control and bands of BandedList by setting their CanGrow / CanShrink property to False) |
Allowing controls to grow / shrink as per their content | Setting CanGrow / CanShrink properties of controls to True |
N |
Y (Continuous layout of RDL report) |
Different layouts on different pages of report | Using PageBreak control |
Y (Adding pages through Page tabs (recommended for easy designing)) |
Y (Differentiating layouts by inserting a page break using PageBreakAtEnd property of Container control) |
Columnar layout of report | Setting ColumnCount property of Detail section |
Y (Creating columnar layout using OverflowPlaceHolder control) |
Y (Columns property of Body region) |
Report with Page Header and Footer | Adding PageHeader / PageFooter sections in report |
N |
Y (Page Header / Footer regions) |
Report templates | Inheriting report template |
N |
Y (Master reports) |
Sub-reports | Using SubReport control |
Y (Subreport control) |
Y (Subreport control) |
Generation of new page before or after the control | Using PageBreak control |
Y (Adding pages through Page tabs, Using PageBreakAtEnd / Start property of BandedList, Table and Tablix groups) |
Y (PageBreakAtEnd / Start property of controls / data regions) |
Customizing placement for the overflowing content | Changing position of controls at run-time through code |
Y (OverflowPlaceHolder control) |
N |
Repetition of blank rows till the end of page | Using RepeatToFill property of Detail section |
Y (RepeatToFill property of Table / Tablix data regions) |
N |
Rendering group footer at the bottom of page | Using PrintAtBottom property of Group Footer (Can also be done for Report Footer) |
Y (PrintAtBottom / PrintFooterAtBottom property of Table / Tablix group) |
N |
Eliminating vertical blank spaces | Setting CanShrink property of different sections to True | N |
Y (ConsumeWhiteSpace property of Report, Container, List or BandedList) |
Selection of controls/data regions to be added in converted Page/RDL report is quite simple, regardless of conversion through Import tool or manually. The following tables provide the basic mapping of controls between Section and Page/RDL reports and list the data regions to be chosen based on the report layout.
Section Report | Page/RDL report |
Label | TextBox |
TextBox | TextBox |
CheckBox | CheckBox |
RichTextBox | FormattedText |
Shape | Shape |
Picture | Image |
Line | Line |
PageBreak | Page report – Adding Pages through Page tabs RDL report – Adding Blank Container control with PageBreakAtEnd property set to True |
Barcode | Barcode |
SubReport | SubReport |
Chart | Chart |
ReportInfo | TextBox |
CrossSectionLine | Line |
CrossSectionBox | Container |
Layouts/Data regions | Table | Tablix | BandedList | List |
Tabular | Y | Y | Y | Y |
Cross-Tabular | N | Y | N | N |
Free-flow | N | N | Y | Y |
Grouped | Y | Y | Y | N |
Let's understand how these guidelines can help convert a Customers report shown below.
This report was prepared last year by a software-based product company using Section report to depict:
Let’s say this year there is an additional requirement: the company will need to sort the customer list on the fly. This would require an Interactive Sorting feature, which is not available in the Section report but in the Page or RDL report. This means the report needs to be re-created.
This can be done either manually or using the Import tool.
Utilizing the understanding gained in this blog, the report author can analyze the existing report design and map with the Page/RDL report as follows:
Requirement | Report type | Report feature | Description |
Layout of the first page is different from other pages | Page report | Adding Pages in Page tabs | To design different layouts on different pages |
RDL report | PageBreakAtEnd property of Container control | To insert a page break for differentiating the layout of Page 1 from rest of the pages. | |
Company information appears on every page in the footer | RDL report | Page Footer region | To display the company information on each page |
Chart appears after Customers details complete rendering | RDL report | Continuous layout | Through this, Chart will appear after the Customers list completes rendering |
Now, based on the priority of Customer report requirements in the discussion it is very clear from the above table that RDL report should be chosen for conversion, in this case.
Further, following controls and data regions can be added in the converted report based on their operations.
This blog covers guidelines on converting the layout/design of the existing Section report to the corresponding Page or RDL report.
If you have any questions, please leave us a comment. Additionally, if you have a request for a specific demo, be sure to leave a comment below!