src/sap.ui.table/src/sap/ui/table/TableScrollExtension.js
function(oTable) {
			var oScrollExtension = oTable._getScrollExtension();
			var iVirtualRowCount = oTable._getTotalRowCount() - oTable.getVisibleRowCount();
			var iScrollRangeWithoutBuffer;

			if (TableUtils.isVariableRowHeightEnabled(oTable)) {
				iScrollRangeWithoutBuffer = VerticalScrollingHelper.getScrollRange(oTable) - VerticalScrollingHelper.getScrollRangeBuffer(oTable);

				// The last row is part of the buffer. To correctly calculate the fraction of the scroll range allocated to a row, all rows must be
				// considered. This is not the case if the scroll range is at its maximum, then the buffer must be excluded from calculation
				// completely.
				var bScrollRangeMaxedOut = oScrollExtension.getVerticalScrollHeight() === MAX_VERTICAL_SCROLL_HEIGHT;
				if (!bScrollRangeMaxedOut) {
					iScrollRangeWithoutBuffer += oTable._getDefaultRowHeight();
				}
			} else {
				iScrollRangeWithoutBuffer = VerticalScrollingHelper.getScrollRange(oTable);
			}

			return iScrollRangeWithoutBuffer / Math.max(1, iVirtualRowCount);
		}
function(oTable) {
			var oScrollExtension = oTable._getScrollExtension();
			var iVirtualRowCount = oTable._getTotalRowCount() - oTable.getVisibleRowCount();
			var iScrollRangeWithoutBuffer;

			if (TableUtils.isVariableRowHeightEnabled(oTable)) {
				iScrollRangeWithoutBuffer = VerticalScrollingHelper.getScrollRange(oTable) - VerticalScrollingHelper.getScrollRangeBuffer(oTable);

				// The last row is part of the buffer. To correctly calculate the fraction of the scroll range allocated to a row, all rows must be
				// considered. This is not the case if the scroll range is at its maximum, then the buffer must be excluded from calculation
				// completely.
				var bScrollRangeMaxedOut = oScrollExtension.getVerticalScrollHeight() === MAX_VERTICAL_SCROLL_HEIGHT;
				if (!bScrollRangeMaxedOut) {
					iScrollRangeWithoutBuffer += oTable._getDefaultRowHeight();
				}
			} else {
				iScrollRangeWithoutBuffer = VerticalScrollingHelper.getScrollRange(oTable);
			}

			return iScrollRangeWithoutBuffer / Math.max(1, iVirtualRowCount);
		}
function ( oTable ) { var oScrollExtension = oTable . _getScrollExtension ( ) ; var iVirtualRowCount = oTable . _getTotalRowCount ( ) - oTable . getVisibleRowCount ( ) ; var iScrollRangeWithoutBuffer ; if ( TableUtils . isVariableRowHeightEnabled ( oTable ) ) { iScrollRangeWithoutBuffer = VerticalScrollingHelper . getScrollRange ( oTable ) - VerticalScrollingHelper . getScrollRangeBuffer ( oTable ) ; // The last row is part of the buffer. To correctly calculate the fraction of the scroll range allocated to a row, all rows must be // considered. This is not the case if the scroll range is at its maximum, then the buffer must be excluded from calculation // completely. var bScrollRangeMaxedOut = oScrollExtension . getVerticalScrollHeight ( ) === MAX_VERTICAL_SCROLL_HEIGHT ; if ( ! bScrollRangeMaxedOut ) { iScrollRangeWithoutBuffer += oTable . _getDefaultRowHeight ( ) ; } } else { iScrollRangeWithoutBuffer = VerticalScrollingHelper . getScrollRange ( oTable ) ; } return iScrollRangeWithoutBuffer / Math . max ( 1 , iVirtualRowCount ) ; }
Gets the fraction of the vertical scroll range which corresponds to a row. This value specifies how many pixels must be scrolled to
scroll one row.

@param {sap.ui.table.Table} oTable Instance of the table.
@returns {number} The fraction of the vertical scroll range which corresponds to a row.
Gets the fraction of the vertical scroll range which corresponds to a row . This value specifies how many pixels must be scrolled to scroll one row .