Create a new
ChartDefinition object and set
its type.
ChartDefinition chartDefinition = new ChartDefinition();
chartDefinition.setChartType(ChartType.group);
Get the conditional field of the
report's first group and set the field using the
setConditonalFields method.
IDataDefinition dataDefinition = rcd.getDataDefController().getDataDefinition();
Fields<IField> conditionFields = new Fields<IField>();
IField field = dataDefinition.getGroups().getGroup(0).getConditionField();
conditionFields.addElement(field);
chartDefinition.setConditionFields(conditionFields);
Loop through the report's summary
fields until the one matching the specified name is found, and set the summary
field of the
ChartDefinition object using
the
setDataFields method.
Fields<IField> dataFields = new Fields<IField>();
for (int i = 0; i < dataDefinition.getSummaryFields().size(); i++)
{
IField summaryField = dataDefinition.getSummaryFields().getField(i);
dataFields.addElement(summaryField);
}
chartDefinition.setDataFields(dataFields); Create a new
ChartObject
to represent the chart that will be added and set the
ChartDefinition
property.
ChartObject chartObject = new ChartObject();
chartObject.setChartDefinition(chartDefinition);
Create a
ChartStyleType object and a
AreaSectionKind object.
ChartStyleType chartStyleType = ChartStyleType.pie;
AreaSectionKind chartPlacement = AreaSectionKind.pageHeader;
Set the chart type, chart placement,
and chart title.
chartObject.getChartStyle().setType(chartStyleType);
chartObject.setChartReportArea(chartPlacement);
chartObject.getChartStyle().getTextOptions().setTitle(chartTitle);
Set the width, height, and top of the
chart.
chartObject.setHeight(5000);
chartObject.setWidth(5000);
chartObject.setTop(1000);
Add the chart to a section in the
report using the
ReportDefController object.
ReportDefController reportDefController = rcd.getReportDefController();
IArea reportHeaderArea = reportDefController.getReportDefinition().getReportHeaderArea();
Section chartSection = (Section)reportHeaderArea.getSections().getSection(0);
reportDefController.getReportObjectController().add(chartObject, chartSection, 1);
Example:
This sample creates and adds a pie chart to the
header section of a report.
void addChart(ReportClientDocument rcd) throws ReportSDKException
{
String chartTitle = "myChart";
ChartDefinition chartDefinition = new ChartDefinition();
chartDefinition.setChartType(ChartType.group);
IDataDefinition dataDefinition = rcd.getDataDefController().getDataDefinition();
Fields<IField> conditionFields = new Fields<IField>();
IField field = dataDefinition.getGroups().getGroup(0).getConditionField();
conditionFields.addElement(field);
chartDefinition.setConditionFields(conditionFields);
Fields<IField> dataFields = new Fields<IField>();
for (int i = 0; i < dataDefinition.getSummaryFields().size(); i++)
{
IField summaryField = dataDefinition.getSummaryFields().getField(i);
dataFields.addElement(summaryField);
}
chartDefinition.setDataFields(dataFields);
ChartObject chartObject = new ChartObject();
chartObject.setChartDefinition(chartDefinition);
ChartStyleType chartStyleType = ChartStyleType.pie;
AreaSectionKind chartPlacement = AreaSectionKind.pageHeader;
chartObject.getChartStyle().setType(chartStyleType);
chartObject.setChartReportArea(chartPlacement);
chartObject.getChartStyle().getTextOptions().setTitle(chartTitle);
chartObject.setHeight(5000);
chartObject.setWidth(5000);
chartObject.setTop(1000);
ReportDefController reportDefController = rcd.getReportDefController();
IArea reportHeaderArea = reportDefController.getReportDefinition().getReportHeaderArea();
Section chartSection = (Section)reportHeaderArea.getSections().getSection(0);
reportDefController.getReportObjectController().add(chartObject, chartSection, 1);
}This list includes the classes used by the sample
code:
com.crystaldecisions.sdk.occa.report.application.ReportClientDocument
com.crystaldecisions.sdk.occa.report.application.ReportDefController
com.crystaldecisions.sdk.occa.report.data.IField
com.crystaldecisions.sdk.occa.report.data.Field
com.crystaldecisions.sdk.occa.report.data.Fields
com.crystaldecisions.sdk.occa.report.data.IDataDefinition
com.crystaldecisions.sdk.occa.report.definition.AreaSectionKind
com.crystaldecisions.sdk.occa.report.definition.ChartDefinition
com.crystaldecisions.sdk.occa.report.definition.ChartType
com.crystaldecisions.sdk.occa.report.definition.ChartStyleType
com.crystaldecisions.sdk.occa.report.definition.ChartObject
com.crystaldecisions.sdk.occa.report.definition.IArea
com.crystaldecisions.sdk.occa.report.definition.Section
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException