class %ZEN.Report.Display.Chart.chart
extends %ZEN.Report.Display.childrenNode, %ZEN.Report.Display.tableOutput
parameter DEFAULTASPECT = "none";
Do not worry about preserving the aspect ratio.
parameter DEFAULTMARKERSVISIBLE = 0;
Default value for the markersVisible property.
parameter DEFAULTPLOTTOEDGE = 1;
Default value for the plotToEdge property.
parameter DEFAULTVIEWBOXHEIGHT = 100;
Default viewBoxHeight of this component.
This is set to 100 to provide a fixed coordinate system for meters.
parameter DEFAULTVIEWBOXWIDTH = 100;
Default viewBoxWidth of this component.
This is set to 100 to provide a fixed coordinate system for meters.
property backgroundStyle
as %ZEN.Datatype.style;
Optional: style used for chart background panel.
property bandLower
as %ZEN.Datatype.float;
If defined, then a colored band (specified by bandLowerStyle)
is displayed on the plot area covering the range lower than this value;
property bandLowerStyle
as %ZEN.Datatype.style;
Optional: style used for upper band on plot area.
property bandUpper
as %ZEN.Datatype.float;
If defined, then a colored band (specified by bandUpperStyle)
is displayed on the plot area covering the range greater than this value;
property bandUpperStyle
as %ZEN.Datatype.style;
Optional: style used for upper band on plot area.
property children
as list of %ZEN.Report.Display.Chart.axis(XMLELEMENTREF=1,XMLPROJECTION="ELEMENT",XMLTYPECONSTRAINT="CHOICE");
Typical children property for a childrenNode,
but every child must be an axis.
property dataFields
as %ZEN.Datatype.csv;
Comma-delimited list of fields to acquire data from. If dataGroup
is provided, only the first data field is used.
property dataGroup
as %ZEN.Datatype.string;
Specifies the group the group that corresponds to the data elements for the chart.
property field
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
property gridStyle
as %ZEN.Datatype.style;
Optional: default style applied to all grid line elements for this chart.
If defined, this style overrides any styles define in the CSS style
definition for the page, but is in turn overridden by any styles defined
by a specific axis element.
property group
as %ZEN.Datatype.string(XMLPROJECTION="NONE");
property height
as %ZEN.Datatype.length;
Height of the chart within the report.
property labelStyle
as %ZEN.Datatype.style;
Optional: default style applied to all grid label elements for this chart.
If defined, this style overrides any styles define in the CSS style
definition for the page, but is in turn overridden by any styles defined
by a specific axis element.
property labelsVisible
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
If true, display axis labels for this chart (or slice labels in the
case of a pie chart).
property legendAutoPosition
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
If true, auto-position the legend
property legendHeight
as %ZEN.Datatype.float;
If this chart has a legend, height (within the chart coordinate space) of legend box.
If not specified a default height (based on number of data series) will be used.
property legendLabelStyle
as %ZEN.Datatype.style;
Optional: style used for text within the legend box.
property legendStyle
as %ZEN.Datatype.style;
Optional: style used for background of the legend box.
property legendVisible
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
If true, display a legend for this chart.
property legendWidth
as %ZEN.Datatype.float;
If this chart has a legend, width (within the chart coordinate space) of legend box.
If not specified a default width will be used.
property legendX
as %ZEN.Datatype.float [ InitialExpression = 0 ];
If this chart has a legend, x-position (within the chart coordinate space) of legend box.
property legendY
as %ZEN.Datatype.float [ InitialExpression = 0 ];
If this chart has a legend, y-position (within the chart coordinate space) of legend box.
property marginBottom
as %ZEN.Datatype.float [ InitialExpression = 10 ];
Margin (within the chart coordinate space) from bottom edge of chart to bottom edge of grid (plot area).
property marginLeft
as %ZEN.Datatype.float [ InitialExpression = 10 ];
Margin (within the chart coordinate space) from left edge of chart to left edge of grid (plot area).
property marginRight
as %ZEN.Datatype.float [ InitialExpression = 2 ];
Margin (within the chart coordinate space) from right edge of chart to right edge of grid (plot area).
property marginTop
as %ZEN.Datatype.float [ InitialExpression = 6 ];
Margin (within the chart coordinate space) from top edge of chart to top edge of grid (plot area).
property markerScale
as %ZEN.Datatype.float [ InitialExpression = 1 ];
Scaling applied to chart markers:
A value of 1.0 (or '') will display markers with their default size.
This only applies to charts that support markers.
property markerShapes
as %ZEN.Datatype.csv [ InitialExpression = "circle,up,down,square" ];
Comma-delimited list of marker shapes used for data series markers.
Possible values are 'up','down','square','circle'.
This only applies to charts that support markers.
property markerStyle
as %ZEN.Datatype.style;
Optional: style used for series markers.
property markersVisible
as %ZEN.Datatype.boolean [ InitialExpression = ..#DEFAULTMARKERSVISIBLE ];
Specifies whether markers should be displayed for the data
points within the line chart.
This only appies to charts that display markers.
property ongetLabelX
as %ZEN.Datatype.eventHandler;
ongetLabelX event handler:
This event handler, if defined, is called by the chart
to get the text for a given label on the x axis.
property ongetLabelY
as %ZEN.Datatype.eventHandler;
ongetLabelY event handler:
This event handler, if defined, is called by the chart
to get the text for a given label on the y axis.
property plot
as %ZEN.Report.Display.Chart.plot(XMLPROJECTION="none");
Internal property used to keep track of plot information.
property plotAreaStyle
as %ZEN.Datatype.style;
Optional: style used for chart plot area panel.
property plotStyle
as %ZEN.Datatype.style;
Optional: default style applied to svg elements used for plotting
data by this chart (such as the line in a line chart).
property plotToEdge
as %ZEN.Datatype.boolean [ InitialExpression = ..#DEFAULTPLOTTOEDGE ];
Specifies how values should be plotted along a category axis.
If true, plot the first and last values on the edges of the plotArea
(as in a line chart). If false, plot values in the centers of each
unit (as in a bar chart).
This is specified by subclasses.
property removeEmpty
as %ZEN.Datatype.boolean(XMLPROJECTION="NONE") [ InitialExpression = 0 ];
property seriesColors
as %ZEN.Datatype.csv [ InitialExpression = "blue,red,green,yellow,orange,plum,purple" ];
Comma-delimited list of CSS color values used for data series. The colors can
be acquired dynamically by using the form "!fieldname".
property seriesCount
as %ZEN.Datatype.string;
Number of data series to display on this chart.
If "", then this is computed automatically from the chart's data source.
property seriesGroup
as %ZEN.Datatype.string;
Specifies the group the group that corresponds to the list of series for the chart.
property seriesNames
as %ZEN.Datatype.csv;
Comma-delimited list of names used to label each data series in the legend box. The
series names can be acquired dynamically by beginning them with a "!". If
seriesGroup is provided, only the first series name field is
considered.
property seriesSize
as %ZEN.Datatype.string;
Number of items within each data series to display on this chart.
If "", then this is computed automatically from the chart's data source.
property title
as %ZEN.Datatype.caption;
Title to display for chart.
property titleStyle
as %ZEN.Datatype.style;
Optional: style used for title text.
property titleX
as %ZEN.Datatype.float [ InitialExpression = 50 ];
If this chart has a title, x-position (within the chart coordinate space) of the title.
property titleY
as %ZEN.Datatype.float [ InitialExpression = 5 ];
If this chart has a legend, y-position (within the chart coordinate space) of the title.
property xAxis
as %ZEN.Report.Display.Chart.axis(XMLPROJECTION="none");
Internal property that references this charts xaxis object.
property yAxis
as %ZEN.Report.Display.Chart.axis(XMLPROJECTION="none");
Internal property that references this charts yaxis object.
method %DrawToHTML(ByRef context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream)
as %Status
This method outputs the necessary stylesheet information for the HTML report.
Every tag should override this method.
method %DrawToXSLFO(ByRef context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream)
as %Status
This method outputs the necessary stylesheet information for the PDF report.
Every tag should override this method.
classmethod OnSVGAttribution(ByRef context As %String)
method calcLegendArea(ByRef context As %String, ByRef XSL As %GlobalCharacterStream, ByRef delay As %GlobalCharacterStream)
Calc Legend Area
method getColorCount()
as %Integer
Return the number of colors provided.
method getSeriesColor(series As %Integer)
as %String
Return the CSS color that should be used for the given series.
method getXAxis()
as %ZEN.Report.Display.Chart.xaxis
Return the x-axis definition for this chart.
method getXAxisType()
Return the type of x axis (category or value) used by
this chart.
method getYAxis()
as %ZEN.Report.Display.Chart.yaxis
Return the y-axis definition for this chart.
method getYAxisType()
Return the type of y axis (category or value) used by
this chart.
method hasAxes()
Indicates that this chart has axes and associated grids
A subclass may override this to turn off axis display.
method render(ByRef context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream, labelValues As %String)
method renderAxes(context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream)
Draw the x and y axes and grid lines.
method renderBands(context As %String, XSL As %GlobalCharacterStream)
Draw the upper/lower bands for the chart.
method renderLegend(ByRef context As %String, ByRef XSL As %GlobalCharacterStream, ByRef delay As %GlobalCharacterStream, labelValues As %String)
Draw the legend for the chart.
method renderPlotArea(context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream)
Draw the plot area of the chart.
method renderSeries(ByRef context As %String, ByRef XSL As %GlobalCharacterStream, ByRef delay As %GlobalCharacterStream)
Draw data series for this chart.
This is implemented by subclasses.
group is the SVG container for the chart components.
method renderSeriesGroup(ByRef context As %String, XSL As %GlobalCharacterStream, ByRef delay As %GlobalCharacterStream)
as %Status
Draw the data series for this chart.
This method renders the container for the data series and
then invokes a sub-class specific renderSeries method.
method renderSeriesGroupLabels(ByRef context As %String, XSL As %GlobalCharacterStream, ByRef delay As %GlobalCharacterStream)
as %Status
Draw the data labels for this chart.
This method renders the container for the data series and
then invokes a sub-class specific renderSeries method.
method renderSeriesLabels(ByRef context As %String, ByRef XSL As %GlobalCharacterStream, ByRef delay As %GlobalCharacterStream)
Draw data label series for this chart.
This is implemented by subclasses.
group is the SVG container for the chart components.
method renderTitle(ByRef context As %String, ByRef XSL As %GlobalCharacterStream)
as %Status
Draw the title for the chart.
method renderXLabels(context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream)
Draw the labels for the x axis.
method renderYLabels(context As %String, XSL As %GlobalCharacterStream, delay As %GlobalCharacterStream)
Draw the labels for the y axis.
method useSumForRange()
This method returns true if data series should be summed
when calculating data range for the chart.
Typically a chart will return true if it is in "stacked" mode.
method writeLoadParams(ByRef XSL As %GlobalCharacterStream)
method writeLoadParamsNoBase(ByRef XSL As %GlobalCharacterStream)
method writeWithParams(ByRef XSL As %GlobalCharacterStream)
method writeWithParamsNoBase(ByRef XSL As %GlobalCharacterStream)