diff -r 1c6290b5c737 web/org.openbravo.mobile.core/source/component/ob-scrollabletable.js
--- a/web/org.openbravo.mobile.core/source/component/ob-scrollabletable.js	Fri Dec 29 03:15:49 2017 +0000
+++ b/web/org.openbravo.mobile.core/source/component/ob-scrollabletable.js	Thu Jun 21 11:59:26 2018 +0200
@@ -547,6 +547,23 @@
           }
           this.selected = tr;
           this.selected.addRemoveClass(selectedCssClass, true);
+
+          if (this && this.getScrollArea && this.getScrollArea() && this.getScrollArea().scrollToControl && tr && this.scrollWhenSelected) {
+            var scroller = this.getScrollArea();
+            //When an item is selected, we will move the scroll to the selected item
+            //It will just happen when the selected item is not currently visible
+            setTimeout(function () {
+              if (scroller && scroller.$ && scroller.$.strategy && scroller.$.strategy.isInView && !scroller.$.strategy.isInView(tr.hasNode())) {
+                var inAlignWithTop = true;
+                //Depending on the action (going up or going down) we will adjust the scroll to the bottom (going down)
+                //or to the top (going up)
+                if (tr.hasNode().offsetTop > scroller.hasNode().scrollTop) {
+                  inAlignWithTop = false;
+                }
+                scroller.scrollToNode(tr.hasNode(), inAlignWithTop);
+              }
+            }, 0);
+          }
         } else {
           // Multiple selection
           this.selected = tr;
