src/sap.ui.table/src/sap/ui/table/TableColumnUtils.js
function(oColumn, iNewIndex) {
			if (!TableColumnUtils.isColumnMovableTo(oColumn, iNewIndex)) {
				return false;
			}

			var oTable = oColumn.getParent(),
				iCurrentIndex = oTable.indexOfColumn(oColumn);

			if (iNewIndex === iCurrentIndex) {
				return false;
			}

			iNewIndex = TableColumnUtils.normalizeColumnMoveTargetIndex(oColumn, iNewIndex);

			var bExecuteDefault = oTable.fireColumnMove({
				column: oColumn,
				newPos: iNewIndex
			});

			if (!bExecuteDefault) {
				// No execution of the movement when event default is prevented
				return false;
			}

			oTable._bReorderInProcess = true;

			/* The AnalyticalBinding does not support calls like:
			 * oBinding.updateAnalyticalInfo(...);
			 * oBinding.getContexts(...);
			 * oBinding.updateAnalyticalInfo(...);
			 * oBinding.getContexts(...);
			 * A call chain like above can lead to some problems:
			 * - A request according to the analytical info passed in line 1 would be sent, but not for the info in line 3.
			 * - After the change event (updateRows) the binding returns an incorrect length of 0.
			 * The solution is to only trigger a request at the end of a process.
			 */
			oTable.removeColumn(oColumn, true);
			oTable.insertColumn(oColumn, iNewIndex);

			oTable._bReorderInProcess = false;

			return true;
		}
function(oColumn, iNewIndex) {
			if (!TableColumnUtils.isColumnMovableTo(oColumn, iNewIndex)) {
				return false;
			}

			var oTable = oColumn.getParent(),
				iCurrentIndex = oTable.indexOfColumn(oColumn);

			if (iNewIndex === iCurrentIndex) {
				return false;
			}

			iNewIndex = TableColumnUtils.normalizeColumnMoveTargetIndex(oColumn, iNewIndex);

			var bExecuteDefault = oTable.fireColumnMove({
				column: oColumn,
				newPos: iNewIndex
			});

			if (!bExecuteDefault) {
				// No execution of the movement when event default is prevented
				return false;
			}

			oTable._bReorderInProcess = true;

			/* The AnalyticalBinding does not support calls like:
			 * oBinding.updateAnalyticalInfo(...);
			 * oBinding.getContexts(...);
			 * oBinding.updateAnalyticalInfo(...);
			 * oBinding.getContexts(...);
			 * A call chain like above can lead to some problems:
			 * - A request according to the analytical info passed in line 1 would be sent, but not for the info in line 3.
			 * - After the change event (updateRows) the binding returns an incorrect length of 0.
			 * The solution is to only trigger a request at the end of a process.
			 */
			oTable.removeColumn(oColumn, true);
			oTable.insertColumn(oColumn, iNewIndex);

			oTable._bReorderInProcess = false;

			return true;
		}
function ( oColumn , iNewIndex ) { if ( ! TableColumnUtils . isColumnMovableTo ( oColumn , iNewIndex ) ) { return false ; } var oTable = oColumn . getParent ( ) , iCurrentIndex = oTable . indexOfColumn ( oColumn ) ; if ( iNewIndex === iCurrentIndex ) { return false ; } iNewIndex = TableColumnUtils . normalizeColumnMoveTargetIndex ( oColumn , iNewIndex ) ; var bExecuteDefault = oTable . fireColumnMove ( { column : oColumn , newPos : iNewIndex } ) ; if ( ! bExecuteDefault ) { // No execution of the movement when event default is prevented return false ; } oTable . _bReorderInProcess = true ; /* The AnalyticalBinding does not support calls like:
			 * oBinding.updateAnalyticalInfo(...);
			 * oBinding.getContexts(...);
			 * oBinding.updateAnalyticalInfo(...);
			 * oBinding.getContexts(...);
			 * A call chain like above can lead to some problems:
			 * - A request according to the analytical info passed in line 1 would be sent, but not for the info in line 3.
			 * - After the change event (updateRows) the binding returns an incorrect length of 0.
			 * The solution is to only trigger a request at the end of a process.
			 */ oTable . removeColumn ( oColumn , true ) ; oTable . insertColumn ( oColumn , iNewIndex ) ; oTable . _bReorderInProcess = false ; return true ; }
Moves the column to the desired position.

Note: The index must be given for the current table setup (which includes the column itself).

@param {sap.ui.table.Column} oColumn Column of the table.
@param {sap.ui.table.Column} iNewIndex the desired new index of the column in the current table setup.
@returns {boolean} Whether the column was moved to the desired position.
Moves the column to the desired position .