In AX to change tab order normally you change the order of the controls in the form. You can set the "Skip" property on a control to Yes and when the user tabs it will skip that control. Certain forms where there are many groups or process flow should be different than the default way require a different approach. There is a way to specify the tab order for an entire form.
First set AutoDeclaration to Yes on all your controls.
Second override the init method and provide it an array of control IDs in the order that you want to tab
void init() { Array tabOrder = new Array(Types::Integer); ; super(); tabOrder.value(1, Control1.id()); tabOrder.value(2, Control2.id()); tabOrder.value(3, Control3.id()); tabOrder.value(4, Control4.id()); tabOrder.value(5, Control5.id()); tabOrder.value(6, Control6.id()); tabOrder.value(7, Control7.id()); tabOrder.value(8, Control8.id()); tabOrder.value(9, Control9.id()); tabOrder.value(10, Control10.id()); tabOrder.value(11, Control11.id()); tabOrder.value(12, Control12.id()); element.tabOrder(tabOrder); }