Bug 148951 Wrong error msg when set nonexisted col as group key
Description: Wrong error msg when set nonexisted col as group key Steps to reproduce: 1. Insert a table, bind it to dataset 2. Add a group, input abc as group key which is invalid. 3. Preview Expected result: Friendly error msg to tell user the group key is wrong. Actual result: + Group key "abc" in group 1 cannot depend on column bindings defined in the group lower than itself. data.engine.InvalidGroupKey ( 1 time(s) ) detail : org.eclipse.birt.data.engine.core.DataException: Group key "OUNTR" in group 1 cannot depend on column bindings defined in the group lower than itself.
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/i18n/ResourceConstants.java
public static final String CANNOT_INSTANTIATE_AGGREGATION_FACTORY = "data.engine.CannotInstantiateAggregationFactory";
	public static final String DUPLICATE_AGGREGATION_NAME = "date.engine.DuplicateAggregationName";
	public static final String INCORRECT_GROUP_KEY_VALUES = "data.engine.incorrectGroupKeyValues";
	public static final String NO_EXPRESSION_PROCESSOR_AVAILABLE = "data.engine.NoExpressionProcessorAvailable";
	public static final String INCONVERTIBLE_DATATYPE="data.engine.InconvertibleDatatype";
	public static final String CONVERT_TO_DATATYPE_ERROR="data.engine.ConvertToDataTypeError";
	public static final String NO_ROW_UPDATE="data.engine.NoRowUpdate";
	public static final String BAD_DATA_TYPE= "data.engine.BadDataType";
	public static final String BAD_DATA_EXPRESSION="data.engine.BadDataExpression";
	
	public static final String CACHE_FUNCTION_WRONG_MODE="data.engine.cacheFunctionWrongMode";
	public static final String INDEX_ARRAY_INVALID="data.engine.document.invalidIndexArray";
	public static final String GROUP_ITEM_INCORRECT="data.engine.document.invalidGroupItem";
	public static final String RESULTITERATOR_NOT_OPEN="data.engine.resultIteratorNotOpen";
	public static final String RESULTITERATOR_CLOSED="data.engine.resultIteratorClosed";
	public static final String INVALID_OUTPUT_PARAMETER_INDEX="data.engine.invalidOutputParameterIndex";
	public static final String OUTPUT_PARAMETER_OUT_OF_BOUND="data.engine.outputParameterOutOfBound";
	public static final String INVALID_OUTPUT_PARAMETER_NAME="data.engine.invalidOutputParameterName";
	public static final String NOT_SUPPORT_IN_PRESENTATION="data.engine.document.notSupportInPresentation";
	public static final String WRONG_STATUS="data.engine.wrongStatus";
	public static final String WRONG_VERSION="data.engine.wrongVersion";
	public static final String UNSUPPORT_OPERATION_EXCEPTION="data.engine.unsupportOperationException";
	
	public final static String COLUMN_NAME_CANNOT_BE_EMPTY_OR_NULL = "odaconsumer.ColumnNameCannotBeEmptyOrNull";
	public final static String COLUMN_POSITION_CANNOT_BE_LESS_THAN_ONE = "odaconsumer.ColumnPositionIsOneBased";
	public final static String COLUMN_ALIAS_CANNOT_BE_EMPTY = "odaconsumer.ColumnAliasCannotBeEmpty";
	public final static String CANNOT_PROCESS_DRIVER_CONFIG = "odaconsumer.CannotProcessDriverConfig";
	public final static String INIT_ENTRY_CANNOT_BE_FOUND = "odaconsumer.OdaInitEntryNotFound";
	public final static String ODA_DRIVER_ON_UNSUPPORTED_PLATFORM = "odaconsumer.OdaDriverOnUnsupportedPlatform";
	public final static String CANNOT_GENERATE_URL = "odaconsumer.CannotGenerateUrls";