[]
This walkthrough creates a Gantt Chart to layout recommended child immunization schedule based on age in the United States. The schedule shows recommended vaccines at an acceptable age range, the number of doses, and highlights the recommendations for all children, catch-up vaccinations in case of missed vaccines, and other high-risk groups.

In the ActiveReports Designer, create a new RDLX report and follow the New Report wizard to bind the report to data. You can also perform data binding later using the Report Data Source dialog accessed from the Report Explorer.
In the Report Data Source dialog, select the General page and enter the name of the data source.
Under Type, select 'Json Provider'.
Go to the Content tab under Connection and set the type of JSON data to 'Embedded'.
In the Select or type the file name or URL or enter the data to be embedded field, enter the following data:
JSON Data
[
{
"Vaccine": "Hepatitis B (HepB)",
"Start": 0,
"End": 1,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Hepatitis B (HepB)",
"Start": 1,
"End": 3,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Hepatitis B (HepB)",
"Start": 4,
"End": 5,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Hepatitis B (HepB)",
"Start": 6,
"End": 18,
"Dose": "3rd Dose",
"Range": "For all children"
},
{
"Vaccine": "Hepatitis B (HepB)",
"Start": 19,
"End": 216,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Rotavirus (RV)",
"Start": 2,
"End": 3,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Rotavirus (RV)",
"Start": 4,
"End": 5,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Rotavirus (RV)",
"Start": 6,
"End": 7,
"Dose": "3rd Dose",
"Range": "For all children"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 2,
"End": 3,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 4,
"End": 5,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 6,
"End": 7,
"Dose": "3rd Dose",
"Range": "For all children"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 9,
"End": 12,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 15,
"End": 18,
"Dose": "4th Dose",
"Range": "For all children"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 18.5,
"End": 48,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Diptheria, Tetanus & Acellular pertussis (DTaP)",
"Start": 48,
"End": 84,
"Dose": "5th Dose",
"Range": "For all children"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 2,
"End": 3,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 4,
"End": 5,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 9,
"End": 10,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 12,
"End": 16,
"Dose": "3rd Dose or 4th Dose",
"Range": "For all children"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 18,
"End": 36,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 48,
"End": 84,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Haemophilus Influenzae type b (Hib)",
"Start": 84,
"End": 216,
"Dose": " ",
"Range": "For certain high-risks groups"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 2,
"End": 3,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 4,
"End": 5,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 6,
"End": 7,
"Dose": "3rd Dose",
"Range": "For all children"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 9,
"End": 10,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 12,
"End": 16,
"Dose": "4th Dose",
"Range": "For all children"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 19,
"End": 84,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Pneumococcal conjugate (PCV13)",
"Start": 84,
"End": 216,
"Dose": " ",
"Range": "For certain high-risks groups"
},
{
"Vaccine": "Inactivated poliovirus (IPV)",
"Start": 2,
"End": 3,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Inactivated poliovirus (IPV)",
"Start": 4,
"End": 5,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Inactivated poliovirus (IPV)",
"Start": 6,
"End": 18,
"Dose": "3rd Dose",
"Range": "For all children"
},
{
"Vaccine": "Inactivated poliovirus (IPV)",
"Start": 18.1,
"End": 48,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Inactivated poliovirus (IPV)",
"Start": 48,
"End": 84,
"Dose": "4th Dose",
"Range": "For all children"
},
{
"Vaccine": "Inactivated poliovirus (IPV)",
"Start": 84,
"End": 204,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Influenza (IIV)",
"Start": 6,
"End": 18,
"Dose": "Annual vaccination 1 or 2 doses ",
"Range": "For all children"
},
{
"Vaccine": "Influenza (IIV)",
"Start": 18,
"End": 19,
"Dose": " ",
"Range": "For all children"
},
{
"Vaccine": "Influenza (IIV)",
"Start": 19,
"End": 84,
"Dose": "Annual vaccination 1 or 2 doses",
"Range": "For all children"
},
{
"Vaccine": "Influenza (IIV)",
"Start": 96,
"End": 216,
"Dose": "Annual vaccination 1 dose only",
"Range": "For all children"
},
{
"Vaccine": "Measles, mumps, rubella (MMR)",
"Start": 6,
"End": 9,
"Dose": " ",
"Range": "For certain high-risks groups"
},
{
"Vaccine": "Measles, mumps, rubella (MMR)",
"Start": 12,
"End": 16,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Measles, mumps, rubella (MMR)",
"Start": 18.1,
"End": 48,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Measles, mumps, rubella (MMR)",
"Start": 48,
"End": 84,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Measles, mumps, rubella (MMR)",
"Start": 84,
"End": 216,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Varicella (VAR)",
"Start": 12,
"End": 16,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Varicella (VAR)",
"Start": 18.1,
"End": 48,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Varicella (VAR)",
"Start": 48,
"End": 84,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Varicella (VAR)",
"Start": 84,
"End": 216,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Hepatitis A (HepA)",
"Start": 6,
"End": 9,
"Dose": " ",
"Range": "For certain high-risks groups"
},
{
"Vaccine": "Hepatitis A (HepA)",
"Start": 12,
"End": 18,
"Dose": "2nd Dose Series",
"Range": "For all children"
},
{
"Vaccine": "Hepatitis A (HepA)",
"Start": 18,
"End": 23,
"Dose": " ",
"Range": "For all children"
},
{
"Vaccine": "Hepatitis A (HepA)",
"Start": 24,
"End": 216,
"Dose": "",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Meningococcal (MenACWY)",
"Start": 2,
"End": 132,
"Dose": " ",
"Range": "For certain high-risks groups"
},
{
"Vaccine": "Meningococcal (MenACWY)",
"Start": 132,
"End": 156,
"Dose": "1st Dose",
"Range": "For all children"
},
{
"Vaccine": "Meningococcal (MenACWY)",
"Start": 156,
"End": 180,
"Dose": " ",
"Range": "For catch-up immunization"
},
{
"Vaccine": "Meningococcal (MenACWY)",
"Start": 180,
"End": 191,
"Dose": "2nd Dose",
"Range": "For all children"
},
{
"Vaccine": "Meningococcal (MenACWY)",
"Start": 191,
"End": 216,
"Dose": " ",
"Range": "For catch-up immunization"
}
]
For more information, see the JSON Provider topic.
Go to the Connection String tab and verify the generated connection string by clicking the Validate DataSource ![]()
icon.
Click OK to save the changes and open the DataSet dialog.
In the Chart Wizard, from the Select Data Set dialog, select a suitable Dataset name from the dropdown menu.
Go to the Query page and enter the following query to fetch the required fields:
$.[*]
Click OK to save the changes.
We will use the Chart Wizard dialog to configure chart data values and basic customization. If you have a dataset added to your report, on Chart's drag-drop operation, the wizard appears. See the topic on Chart Wizard for more information. You can make further adjustments to the chart after you exit the wizard by accessing the properties of chart elements through dialogs, property panels, and adorners.
Drag-drop Chart data region onto the design area. The New Chart dialog appears with an option to select the query and the plot type.
Select the Query as the dataset name (Stats) and the Plot Type as 'Gantt'.
Click Next to configure data values.
Under Configure Chart Data Values, set the Start and End fields, aggregates, and captions as shown below, and click Next.
| Field | Aggregate | Caption |
|---|---|---|
| [Start] | Min | Start |
| [End] | Max | End |
In the Configure Chart Data Groupings, set the Categories > Group By to [Vaccine].
Set Series > Group By to [Dose]. Keep the remaining settings as it is.
Click Next and Choose Report Colors from Theme and Style, and preview your chart.
Now that the basic structure of your chart is ready, let us add more meaning to the chart using the properties via the Chart Panels, Adorners, and Property Panel.
type=note
Note: We use stub data at design time and not real data. So to view the actual final chart, you need to view the chart on preview.