---
title: "Adding Data-Driven Components"
canonical: "https://docs.rubiconwater.com/space/RptNC/1979548825/Adding%20Data-Driven%20Components"
format: markdown
---
# What are data-driven components?

Data driven report components extract report data from the application database.

- Use paragraphs with useful built-in queries for displaying commonly used data. These include Network Tables, Object Attribute tables and Object Attribute Party tables.
- Use a SQL Table paragraph for more precise control over exactly what data is extracted.

Data-driven components have two layers;

- A *data layer* that contains a data table extracted from the application database.
- A *report layer* where columns from the data table are bound to report table columns and formatted.

## Building data-driven components

This is the process for building data-driven report components in the Paragraph Properties screen:

### Define the data layer

Define the data to extract to the data table. Do this in the **Data** or the **Query** tab. Remember to click **Apply** when you have finished defining your data columns.

See these topics for specific paragraph types:

> Macro (pagetree)



### Bind the data layer to the report layer

Click **Bind Data** to bind the data columns to report table columns. When you click the **Bind Data** button, the Report Editor does the following:

- Checks the validity of your data table definition.
- Creates a report table column for each data table column and binds the report table column to the corresponding data table column.

### Define the report layer

Define the content and format of the report table. Do this in the **Table** tab.

You can also add more report table columns that are not directly bound to data table columns. For example, add a calculated column that sums the data other columns.

See <u>[Working with Report Tables and Columns](https://rubiconwater.atlassian.net/wiki/spaces/RptNC/pages/1979744611)</u> for more details.

---