[{"id":"425f2be4-b65d-4cdf-b543-fb4397f51672","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"a1041c29-1f9f-497e-b577-3e673e487c51","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"c1e3b2a0-7159-4980-a5e1-4fbb04c7fcc1","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"128acbbc-5c49-416b-9c1f-91f679362b23","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"3bc7a653-1dd3-4a33-b35c-41b0ddc2f446","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"cecedb46-bf12-401c-a04c-5282e11b8274","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"2f1768df-3e8b-41c2-826e-93f1a82273d1","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"d9528848-3bae-42c1-8f6d-410a78341cef","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"2683b3de-5c23-429d-9a88-4917616d20ad","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"b96827a0-6bd4-4184-86a4-6fe503d0e4b4","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"96d2140c-5bb6-49b6-a4c7-4af4b7de2e52","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"11f27d32-9547-4a8c-9e88-5dd2bffffeda","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"d186bc7e-cbae-4d23-9cd9-a54880be8e4d","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"26754bf1-707e-4815-b6d3-dcdc87a59188","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"e4c0a89e-cceb-4863-a30a-dff94f1d8d08","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"c4f826a6-5d16-4399-8f1a-7b8449594941","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"ff2b9815-2596-47f7-8793-3585c9ee24a2","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"46851ce2-51a2-4af4-969d-9fe989997135","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"e3e87330-5250-4923-9cdf-e7e8afd353ab","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"a04db983-f77b-4ec6-857c-1c01afaed85a","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"434eed34-9059-46e4-88f9-15e47d09622c","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"30988f2a-ebd5-4a8c-b20e-54a11a528d30","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"a59719c8-0df2-44e1-b89c-9d8fa0312857","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"4be1ecee-287b-43a2-ba99-cfa89de88187","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"ea04cced-7866-48e5-a5fe-1e9f11004d59","tags":[{"product":null,"links":null,"id":"fe610228-9cf6-417f-813a-dcbfd25406c3","name":"upd","color":"#7e678a","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]},{"id":"ab17d080-0112-4ba4-8dae-ef367bec7b78","tags":[{"product":null,"links":null,"id":"4d7b6a40-ab32-4c71-a381-58f3ffd2653e","name":"new","color":"#ed7422","productId":"d699a6af-e150-4da3-ab30-25fd97934601"}]}]
        
(Showing Draft Content)

Get Started With Banded Reports

Introduction

A banded report is a way to present your data with a list-like view where each data record displays in a free-form layout fashion. In ActiveReportsJS you can build such a report using List or Banded List data regions. We recommend using the latter because it provides a flexible layout organized with multiple types of sections called bands. Examples of banded reports are product catalogs, people directories, and others.


In this tutorial, we build the Employee Directory from the ground up, providing experience with the typical report designing process. By the end, you will be able to do the following:

Upon completion of all tutorial steps, the final report will look like this: live demo.

Prerequisites

The following content assumes that you have the Standalone Report Designer running. Visit the tutorial for detailed information. A stable internet connection is also required to access the Demo Data Hub.

Creating a New Report

In the standalone report designer, click the File menu and select the Continuous Page Layout template for a newly created report. Click anywhere on the gray area around the report layout to load the report properties in the properties panel. In the Margins section, set the Style property to Narrow to change the report page margins size.


Expand to watch creating a new report in action

CreatingNewReport.4ae444

Data Binding

Data binding establishes a connection between a report and the data it displays. In this tutorial, we use the MESCIUS Demo OData API that contains the sales data for a fictitious company called Contoso that is a manufacturing, sales, and support organization with more than 100,000 products.

Adding Data Source

You can think of the Contoso OData API as the "database" that you can connect to using its root URL https://demodata.mescius.io/contoso/odata/v1, and that has multiple "tables" which presented with endpoints such as /DimCustomers, /DimStores, and /DimProducts. You can create a Report DataSource that establishes the connection to such a "database" using the following steps.

  • Open the Data panel of the property inspector and click the Add button.

  • In the Data Source editor dialog, type Contoso in the NAME field and https://demodata.mescius.io/contoso/odata/v1 in the ENDPOINT field.

  • Click the Save Changes button

image

Adding Data Set

Data Sets represent one or more endpoints of the Data Source. For the Employee Directory Report, we need to access the data from the /DimEmployees endpoint of the Contoso Data Source that we added in the previous section.


Use the following steps to add the Employees data set:

  • Click the + icon near Contoso in the Data panel.

  • In the Data Set Editor dialog, type Employees in the NAME field, /DimEmployees in the Uri/Path field, and $.value.* in the Json Path field.

  • By default, each Employee record includes 28 fields, but we don't need them all. Therefore we limit the retrieved fields by applying the OData $select query option via a query parameter.

    • Click the + icon on the right side of the Parameters section.

    • Type $select in the Parameter field of the newly added Parameter item.

    • Type FirstName, LastName, MiddleName, Title, EmailAddress, Phone, DepartmentName, AvatarUrl in the Value field of the same Parameter item.

  • Click the Validate button.

  • Ensure that the DataBase Fields section displays [8 items] text.

  • Click the Save Changes button.

Expand to watch adding the Employees data set in action


Adding Banded List

To display the employee directory, we will use Banded List:

  • Expand the toolbox using the Hamburger menu located on the left side of the toolbar.

  • Drag and drop the Banded List item from the toolbox to the report page area's top-left corner.

  • Switch to the Properties panel in the Property inspector.

  • Select the Employees item in the Data Set Name drop-down and set the Width property to 7.5in so that the banded list occupies the available printable area defined by the report page size and margins.

Expand to watch adding the Banded List in action


Configuring Header Section

By default, the newly added Banded List has the Header section that displays either once at the beginning or at the start of each page, the Details section that appears once per each data record, and the Footer section that shows up either once after all sections complete rendering or on each page.


We use the Header section to display the report title:

  • Click anywhere inside the banded list to display the band handlers.

  • Click the first section's handler and set its height to 0.75in in the Properties panel.

  • Turn off the Repeat On New Page switch.

  • Expand the toolbox using the Hamburger menu located on the toolbar's left side.

  • Drag and drop the TextBox item from the toolbox to the header section's top-left corner.

  • Set the following properties for the newly added textbox in the properties panel.

Property

Value

Value

Employee Directory

Font Size

26pt

Vertical Align

Middle

Left

0in

Top

0in

Width

7.5in

Height

0.75in

Expand to watch configuring the Header section and setting the value of the textbox in action


Adding Data Grouping

Employees in the Contoso database belong to different departments, such as Production, Marketing, etc. Thus, we can group the employee directory by the department name.

  • Switch to the Data panel in the Property inspector.

  • Expand the "Employees" data set using the chevron-down icon.

  • Click anywhere inside the banded list to display the Group editor.

  • Drag and drop the DepartmentName field to the Group Editor's <New Group> highlighted area.

  • Select the newly appeared BandedList1_DepartmentName1 item in the group editor.

  • Switch to the Properties panel of the Property Inspector.

  • Set the newly added group name to DepartmentName.

  • Set the Page Break property of the group to Between so that each group instance starts on the new page.

Expand to watch adding data grouping in action


Configuring Group Header section

The group header displays once per grouping value, thus once per different Department Name. We configure the group header accordingly:

  • Click anywhere inside the banded list so that it displays the band handlers.

  • Click the second section's handler and set its height to 0.6in in the Properties panel.

  • Expand the toolbox using the Hamburger menu located on the toolbar's left side.

  • Drag and drop the TextBox item from the toolbox to the group header section's top-left corner.

  • Set the following properties for the newly added textbox in the properties panel.

Property

Value

Value

{DepartmentName}

Text Color

#0096aa

Font Size

20pt

Font Weight

Bold

Vertical Align

Middle

Left

0in

Top

0in

Width

7.5in

Height

0.6in

Note that the group header will display at the top of each page because its Repeat On New Page property is True by default.

Configuring Details section

The details section displays once per data record. We use the Container report item to set the background and border for each details section occurence.

  • Click anywhere inside the banded list so that it displays the band handlers.

  • Click the third section's handler and set its height to 2in in the Properties panel.

  • Expand the toolbox using the Hamburger menu located on the toolbar's left side.

  • Drag and drop the Container item from the toolbox to the details section's top-left corner.

  • Set the following properties for the newly added Container in the properties panel.

Property

Value

Background Color

#f9f9f9

Border Style

Solid

Border Color

#e8e8e8

Border Rounding Radius

4pt

Left

0in

Top

0in

Width

7.5in

Height

1.75in

Next, drag and drop four textboxes from the toolbox into the newly added Container and set their properties as per the following map.

Property

Full Name textbox

Title textbox

Email textbox

Phone textbox

Value

{FirstName} {MiddleName} {LastName}

{Title}

{EmailAddress}

{Phone}

Font Size

14pt

Leave as default

Leave as default

Leave as default

Vertical Align

Middle

Middle

Middle

Middle

Text Color

Leave as default

#5e5e5e

#5e5e5e

#5e5e5e

Left

0.3in

0.3in

0.3in

0.3in

Top

0.3in

0.85

1.15

1.45

Width

4in

4in

4in

4in

Height

0.5in

0.3in

0.3in

0.3in

You can now preview the report output and notice that it prints the grouped employee list grouped by the department name.

Using dynamic images

Each employee record includes the AvatarUrl field that is either Null or contains the employee photo's relative URL. We will use the Image report item to either show a picture or the placeholder if the photo is missing.

  • Go back to the report design.

  • Expand the toolbox using the Hamburger menu.

  • Drag and drop the Image item from the toolbox to the details section closer to its right edge.

  • In the Properties panel, expand the Image editor using the icon on its right side.

  • Set the Value property to {IIF(AvatarUrl Is Null, "https://demodata.mescius.io/images/contoso/EmployeePhotos/no-photo.jpg", "https://demodata.mescius.io" + AvatarUrl)}. This Expression is using the IIF function to dynamically identify the picture to display. If the AvatarUrl is Null meaning that an employee has no photo, the IIF function returns the URL of the placeholder. Otherwise, it returns the full URL of the photo.

  • Set the rest of the Image properties as per the following table

Property

Value

MIME Type

image/jpeg

Image Sizing

Fit Proportional

Horizontal Alignment

Center

Vertical Alignment

Middle

Left

5.65in

Top

0.15in

Width

1.45in

Height

1.45in

You can preview the report output and notice that each employee record now displays the photo or "no image" placeholder.

Adding Report Map

To improve the report reading experience, we add the Report Map that displays the departments' list and allows the report reader to jump from one to another quickly.

  • Go back to the report design.

  • Click anywhere inside the banded list so that it displays the group editor.

  • Select the DepartmentName item in the group editor.

  • In the Properties panel, set the Label property to {DepartmentName}

Preview the report and open and pin the Report Map panel. It shows all the employee directory departments, and you can switch from one to another to read the employee list of a selected department.

Expand to watch using the report map in action


The final version of report is available at the demo web-site.