Bug 188204 After delete the measure in cube, the measure's binding in crosstab are not deleted automatically[1102]
Description: Firstly, we should make sure the measure has been used in crosstab, and we removed the measure from crosstab, then remove it from cube. Because of the measure has been used in crosstab, so the binding of measure are still in crosstab whether the measure has been removed from crosstab. But, if remove the measure from the cube, the binding are still in crosstab, it will lead the "can not found the measure" exception when preview. The user must remove the binding by himself to make sure the preview successfully. So I hope GUI can make some enhance when remove the measure from cube, all the measure's binding of crosstab also removed automatically. Build number: 2.2.0.v20070522-0630 Steps to reproduce: 1, New a crosstab with two measures: m1 and m2 2, Remove the m1 from crosstab 3, Preview 4, Remove the m1 from cube 5, Preview Expected result: After step4, all the m1's binding in crosstab has been removed and after step5, the preview is successful Actual result: After step4, all the m1's binding are still in crosstab's databinding, and after step5, exception occurs. Error log: The measure name "QUANTITYORDERED" is not found. The measure name "QUANTITYORDERED" is not found. ( 1 time(s) ) detail : org.eclipse.birt.data.engine.core.DataException: The measure name "QUANTITYORDERED" is not found. at org.eclipse.birt.data.engine.olap.impl.query.CubeQueryResults.getCubeCursor(CubeQueryResults.java:82) at org.eclipse.birt.report.engine.data.dte.CubeResultSet.<init>(CubeResultSet.java:78) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteCube(DteDataEngine.java:234) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:120) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:178) at org.eclipse.birt.report.engine.executor.ExecutorManager$ExecutorContext.executeQuery(ExecutorManager.java:403) at org.eclipse.birt.report.item.crosstab.core.re.executor.BaseCrosstabExecutor.executeQuery(BaseCrosstabExecutor.java:92) at org.eclipse.birt.report.item.crosstab.core.re.executor.CrosstabReportItemExecutor.execute(CrosstabReportItemExecutor.java:101) at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:57) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/i18n/ResourceConstants.java
public final static String INVALID_NESTED_AGGR_GROUP = "data.engine.AggrParamGroupLevelInconsistent";
	public final static String DUPLICATE_PROPERTY_NAME = "data.engine.DupPropertyName";
	public final static String SUBQUERY_NOT_FOUND = "data.engine.NoSubQueryName";
	public final static String MISSING_DATASOURCE_EXT_ID = "data.engine.DataSourceMissingExtId";
	public final static String STARTING_GROUP_VALUE_CANNOT_BE_NULL = "data.engine.NullGroupStart";
	
	public final static String RESULT_CLOSED = "data.engine.ResultClosed";
	public final static String NO_CURRENT_ROW = "data.engine.NoCurrentRow";
	public final static String INVALID_JS_EXPR = "data.engine.InvalidJSExpr";
	public final static String INVALID_TOTAL_NAME = "data.engine.InvalidTotalFuncName";
	public final static String INVALID_TOTAL_EXPRESSION = "data.engine.InvalidTotalFunc";
	public final static String INVALID_CALL_AGGR = "data.engine.NoAggrFunc";
	public final static String INVALID_EXPR_HANDLE = "data.engine.InvalidExprHandle";	
	
	public final static String INVALID_KEY_COLUMN = "data.engine.InvalidSortKeyColumn";
	public final static String INVALID_GROUP_LEVEL = "data.engine.InvalidGroupLevel";
	public final static String INVALID_GROUP_KEY_COLUMN = "data.engine.InvalidGroupKeyName";
	public final static String INVALID_CLOSESCRIPT = "data.engine.BadCloseScript";
	public final static String INVALID_CUSTOM_FIELD_INDEX = "data.engine.InvalidCustomFieldIdx";
	public final static String INVALID_GROUP_NAME = "data.engine.InvalidGroupName";
	public final static String DUPLICATE_GROUP_NAME = "data.engine.DuplicateGroupName";
	public final static String INVALID_OPENSCRIPT = "data.engine.BadOpenScript";
	public final static String DS_HAS_OPENED = "data.engine.DataSourceIsOpen";
	public final static String DS_NOT_OPEN = "data.engine.DataSourceNotOpen";
	public final static String CUSTOM_FIELD_EMPTY = "data.engine.EmptyCustomFieldName";
	public final static String DUP_CUSTOM_FIELD_NAME = "data.engine.DupCustomFieldName";
	public final static String NO_RESULT_SET = "data.engine.NoResultSet";
	public final static String METADATA_NOT_AVAILABLE = "data.engine.NoResultMetadata";
	public final static String QUERY_HAS_PREPARED = "data.engine.QueryAlreadyPrepared";
	public final static String QUERY_HAS_NOT_PREPARED = "data.engine.QueryNotPrepared";