=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java' --- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2011-10-20 09:35:23 +0000 +++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/chart/impl/DefaultChartService.java 2011-10-20 12:45:10 +0000 @@ -828,14 +828,30 @@ List indicators = chart.getIndicators(); List dataElements = chart.getDataElements(); + List dataSets = chart.getDataSets(); boolean isIndicatorChart = chart.isDimension( DIMENSION_INDICATOR_PERIOD ) || chart.isDimension( DIMENSION_ORGANISATIONUNIT_INDICATOR ) || chart.isDimension( DIMENSION_PERIOD_INDICATOR ); - boolean isDataElementChart = !isIndicatorChart; - - int loopSize = isIndicatorChart ? indicators.size() : dataElements.size(); + boolean isDataElementChart = chart.isDimension( DIMENSION_DATAELEMENT_PERIOD ) + || chart.isDimension( DIMENSION_ORGANISATIONUNIT_DATAELEMENT ) + || chart.isDimension( DIMENSION_PERIOD_DATAELEMENT ); + + boolean isCompletenessChart = chart.isDimension( DIMENSION_COMPLETENESS_PERIOD ) + || chart.isDimension( DIMENSION_ORGANISATIONUNIT_COMPLETENESS ) + || chart.isDimension( DIMENSION_PERIOD_COMPLETENESS ); + + int loopSize = indicators.size(); + + if ( isDataElementChart ) + { + loopSize = dataElements.size(); + } + else if ( isCompletenessChart ) + { + loopSize = dataSets.size(); + } for ( int i = 0; i < loopSize; i++ ) {