レポートにグラフchartを追加する方法

3663 ワード

 
 ExtendedItemHandle extendedItemHandle = elementFactory.newExtendedItem(null, "Chart"); 
 			extendedItemHandle.setHeight( "288pt" ); 
 			extendedItemHandle.setWidth( "252pt" ); 
 			extendedItemHandle.setProperty( ExtendedItemHandle.DATA_SET_PROP, "Data Set" ); 
 			// Add chart instance to IReportItem
 			extendedItemHandle.getReportItem( ).setProperty( "chart.instance", ChartUtil.createPieChart( ) );
 			designHandle.getBody().add(extendedItemHandle); 

メソッドを呼び出してグラフを作成

public static Chart createPieChart() {
		ChartWithoutAxes cwoaPie = ChartWithoutAxesImpl.create();
		cwoaPie.setDimension(ChartDimension.TWO_DIMENSIONAL_WITH_DEPTH_LITERAL);
		cwoaPie.setType("Pie Chart"); //$NON-NLS-1$    
		cwoaPie.setSubType("Standard Pie Chart"); //$NON-NLS-1$

		// Plot
		cwoaPie.setSeriesThickness(10);

		// Legend
		Legend lg = cwoaPie.getLegend();
		lg.getOutline().setVisible(true);

		// Title
		cwoaPie.getTitle().getLabel().getCaption().setValue("Pie Chart");//$NON-NLS-1$

		// Data Set
		TextDataSet categoryValues = TextDataSetImpl
				.create(new String[] {
						"New York", "Boston", "Chicago", "San Francisco", "Dallas", "cs" });//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
		NumberDataSet seriesOneValues = NumberDataSetImpl.create(new double[] {
				54.65, 21, 75.95, 91.28, 37.43, 2.2 });

		SampleData sdata = DataFactory.eINSTANCE.createSampleData();
		BaseSampleData sdBase = DataFactory.eINSTANCE.createBaseSampleData();
		sdBase.setDataSetRepresentation("");//$NON-NLS-1$
		sdata.getBaseSampleData().add(sdBase);

		OrthogonalSampleData sdOrthogonal = DataFactory.eINSTANCE
				.createOrthogonalSampleData();
		sdOrthogonal.setDataSetRepresentation("");//$NON-NLS-1$
		sdOrthogonal.setSeriesDefinitionIndex(0);
		sdata.getOrthogonalSampleData().add(sdOrthogonal);

		cwoaPie.setSampleData(sdata);

		// Base Series
		Series seCategory = SeriesImpl.create();
		seCategory.setDataSet(categoryValues);

		SeriesDefinition sd = SeriesDefinitionImpl.create();
		cwoaPie.getSeriesDefinitions().add(sd);
		// sd.getSeriesPalette( ).shift( 0 );
		final Fill[] fiaBase = {
				ColorDefinitionImpl.create(45, 150, 225),
				ColorDefinitionImpl.ORANGE(),
				ColorDefinitionImpl.CREAM(),
				ColorDefinitionImpl.RED(),
				ColorDefinitionImpl.GREEN(),
				GradientImpl.create(ColorDefinitionImpl.create(225, 225, 255),
						ColorDefinitionImpl.create(255, 255, 225), -35, false),
				ColorDefinitionImpl.CYAN().darker(), };
		sd.getSeriesPalette().getEntries().clear();
		for (int i = 0; i < fiaBase.length; i++) {
			sd.getSeriesPalette().getEntries().add(fiaBase[i]);
		}

		sd.getSeriesPalette().getEntries();
		sd.getSeries().add(seCategory);

		// Orthogonal Series
		PieSeries sePie = (PieSeries) PieSeriesImpl.create();
		sePie.setDataSet(seriesOneValues);
		sePie.setSeriesIdentifier("Cities");//$NON-NLS-1$ 
		sePie.setExplosion(5);

		SeriesDefinition sdCity = SeriesDefinitionImpl.create();
		sd.getSeriesDefinitions().add(sdCity);
		sdCity.getSeries().add(sePie);

		return cwoaPie;
	}