Crystal Reports for Eclipse Developer Guide

To create and add a chart to a report

  1. Create a new ChartDefinition object and set its type.
      ChartDefinition chartDefinition = new ChartDefinition(); 
      chartDefinition.setChartType(ChartType.group);
    
  2. Get the conditional field of the report's first group and set the field using the setConditonalFields method.
      IDataDefinition dataDefinition = clientDoc.getDataDefController().getDataDefinition();
    
      Fields conditionFields = new Fields(); 
      IField field = dataDefinition.getGroups().getGroup(0).getConditionField();
      conditionFields.addElement(field); 
      chartDefinition.setConditionFields(conditionFields);
    
  3. 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 dataFields = new Fields(); 
      
      for (int i = 0; i < dataDefinition.getSummaryFields().size(); i++) 
      { 
        IField summaryField = dataDefinition.getSummaryFields().getField(i); 
        dataFields.addElement(summaryField); 
      }
      chartDefinition.setDataFields(dataFields);
    
  4. Create a new ChartObject to represent the chart that will be added and set the ChartDefinition property.
      ChartObject chartObject = new ChartObject();
      chartObject.setChartDefinition(chartDefinition);
    
  5. Create a ChartStyleType object and a AreaSectionKind object.
      ChartStyleType chartStyleType = ChartStyleType.pie; 
      AreaSectionKind chartPlacement = AreaSectionKind.pageHeader;
    
  6. Set the chart type, chart placement, and chart title.
      chartObject.getChartStyle().setType(chartStyleType);
      chartObject.setChartReportArea(chartPlacement);
      chartObject.getChartStyle().getTextOptions().setTitle(chartTitle);
    
  7. Set the width, height, and top of the chart.
      chartObject.setHeight(5000); 
      chartObject.setWidth(5000);
      chartObject.setTop(1000);
    
  8. Add the chart to a section in the report using the ReportDefController object.
      IArea reportHeaderArea = reportDefController.getReportDefinition().getReportHeaderArea();
      Section chartSection =(Section)reportHeaderArea.getSections().getSection(0);
      clientDoc.getReportDefController().getReportObjectController().add(chartObject, chartSection, 1);
    
Example: 
This sample creates and adds a pie chart to the header section of a report.
void AddChart(ReportClientDocument clientDoc, String chartTitle)
{
  ChartDefinition chartDefinition = new ChartDefinition(); 
  chartDefinition.setChartType(ChartType.group);

  IDataDefinition dataDefinition = clientDoc.getDataDefController().getDataDefinition();
 
  Fields conditionFields = new Fields(); 
  IField field = dataDefinition.getGroups().getGroup(0).getConditionField();
  conditionFields.addElement(field); 
  chartDefinition.setConditionFields(conditionFields);
  
  Fields dataFields = new Fields(); 
  
  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);

  IArea reportHeaderArea = reportDefController.getReportDefinition().getReportHeaderArea();
  Section chartSection =(Section)reportHeaderArea.getSections().getSection(0);
  clientDoc.getReportDefController().getReportObjectController().add(chartObject, chartSection, 1);
}



SAP BusinessObjects
http://www.sap.com/sapbusinessobjects/
Support services
http://service.sap.com/bosap-support/
Product Documentation on the Web
http://help.sap.com/