setChartData
The Chart functionality requires additional licenses. Please contact support@documill.com to enable the licenses.
A logic command that creates a variable holding a Chart data value, which may be given to certain content commands to draw a chart. Certain features of the chart are defined through this command itself, but the majority of the data is defined through various child commands. Notably, either an addSeries or a deriveSeries child command is required to add at least one data series to the chart.
Child commands
addSeries and deriveSeries
Required. Either of these two commands are used to add data series for the chart. A chart requires at least one data series, therefore at least one of these child commands is required.defineAxis
Optional. Defines an axis for the chart. Up to four of these child commands may be added, one for each of the four sides of the chart.
Attributes
var | ||
---|---|---|
Required | Value type | EL-evaluated |
Yes | String | No |
Defines the name of the variable that will hold the Chart data value. |
type | ||
---|---|---|
Required | Value type | EL-evaluated |
Yes | String | Yes |
Defines the type of the chart. The resolved value is expected to be one of the following chart type Strings:
|
Examples
If you have a Collection of data you'd like to get onto a chart, doing so can be fairly simple. Here's the most minimalistic approach using deriveSeries
to create the data series:
<setChartData var="chart" type="line">
<deriveSeries value="${quarterlySales}" label="Sales by Quarter" valueExpr="${item.value}" labelExpr="${item.quarter}">
Here's the same done with addSeries
. This approach requires more commands, but allows use of logic control commands to direct the creation of data points:
<setChartData var="chart" type="line">
<addSeries label="Sales by Quarter" >
<forEach value="${quarterlySales}" var="item">
<addDataPoint value="${item.value}" label="${item.quarter}">
If creating a chart of a type with axes, the defineAxis
command can be used to specify some details of them, such as the value range of the value-displaying axis:
<setChartData var="chart" type="line">
<deriveSeries value="${quarterlySales}" label="Sales by Quarter" valueExpr="${item.value}" labelExpr="${item.quarter}">
<defineAxis type="linear" position="left" min="${0}" max="${10000000}">
Use of defineAxis
is not absolutely necessary, as the chart-drawing commands will use default axes in case axis definitions are not present.