diff --git a/chart/org.eclipse.birt.chart.reportitem.ui/src/org/eclipse/birt/chart/reportitem/ui/ReportDataServiceProvider.java b/chart/org.eclipse.birt.chart.reportitem.ui/src/org/eclipse/birt/chart/reportitem/ui/ReportDataServiceProvider.java index 2f66ac7de4f..344f123ea8d 100644 --- a/chart/org.eclipse.birt.chart.reportitem.ui/src/org/eclipse/birt/chart/reportitem/ui/ReportDataServiceProvider.java +++ b/chart/org.eclipse.birt.chart.reportitem.ui/src/org/eclipse/birt/chart/reportitem/ui/ReportDataServiceProvider.java @@ -2214,7 +2214,9 @@ protected void addValueSeriesAggregateBindingForGrouping( for ( Query qry : series.getDataDefinition( ) ) { String expr = qry.getDefinition( ); - if ( expr == null || "".equals( expr ) ) //$NON-NLS-1$ + + if ( expr == null + || "".equals( expr ) || isDataBinding( expr ) ) //$NON-NLS-1$ { continue; } diff --git a/chart/org.eclipse.birt.chart.reportitem/src/org/eclipse/birt/chart/reportitem/AbstractChartBaseQueryGenerator.java b/chart/org.eclipse.birt.chart.reportitem/src/org/eclipse/birt/chart/reportitem/AbstractChartBaseQueryGenerator.java index b3367e937d0..20b0257f9ef 100644 --- a/chart/org.eclipse.birt.chart.reportitem/src/org/eclipse/birt/chart/reportitem/AbstractChartBaseQueryGenerator.java +++ b/chart/org.eclipse.birt.chart.reportitem/src/org/eclipse/birt/chart/reportitem/AbstractChartBaseQueryGenerator.java @@ -168,7 +168,7 @@ protected void addValueSeriesAggregateBindingForGrouping( for ( Query qry : series.getDataDefinition( ) ) { String expr = qry.getDefinition( ); - if ( expr == null || "".equals( expr ) ) //$NON-NLS-1$ + if ( expr == null || "".equals( expr ) || isDataBinding( expr ) ) //$NON-NLS-1$ { continue; } @@ -319,6 +319,14 @@ protected void addValueSeriesAggregateBindingForGrouping( } } } + + protected boolean isDataBinding(String expr){ + ExpressionCodec exprCodec = ChartModelHelper.instance( ) + .createExpressionCodec( ); + exprCodec.decode( expr ); + String returnExpr = exprCodec.getExpression( ); + return exprCodec.isCubeBinding( returnExpr, true ); + } /** * Generate a unique binding name.