Knowledge found and lost while working with Microsoft Dynamics CRM
RSS icon Home icon
  • Resetting the Tab Order on MSCRM 3.0 Forms

    Posted on February 10th, 2006 mitch Print Print 1 comment

    Do people still use keyboards in this day and age of graphical user interfaces and mice?  You be they do!  After all, it's really hard to type with a mouse and removing your hand from the keyboard to move and click the mouse button actually lowers productivity.

    So, if you use the keyboard to perform data entry while in Microsoft CRM, you have probably noticed what I consider to be a non-standard tab order implementation.

    CRM tabs from top-to-bottom, left-to-right
    ( within a section; after which it moves on to the next section ):

     Example 1: ( CRM Tab Order )

    Field1 Field3
    Field2 Field4

    Most other applications tab from left-to-right, top-to-bottom:

      Example 2: ( Normal Tab Order )

    Field1 Field2
    Field3 Field4 

     

    How the Tab Order Works 

    Each data entry field has a property called tabIndex which is a number ( integer ) that instructs the window the order in which to move the cursor between the various fields.  The order is from from lowest to highest, i.e., from 1 to 10,000, or whatever. 

    This means your first field has the lowest tabIndex value and your last field as the highest.

    Microsoft CRM appears to set the first data entry field tabIndex to 1000 and increases the tabIndex by 10 for each subsequent field. For example:

    Example 3: ( CRM Tab Order, with TabIndex Values )

    Field1: TabIndex=1000 Field3: TabIndex=1020
    Field2: TabIndex=1010 Field4: TabIndex=1030

     

    Changing the Tab Order

    In certain cases, you may wish to change the tab order so that users are not so confused by the change ( and you as the form designer are not confused as to where and how to place your fields ).  All we need is a little JavaScript code in the Form's OnLoad event, and we're set:

    crmForm.all.Field1.tabIndex = 1000;
    crmForm.all.Field3.tabIndex = 1010;
    crmForm.all.Field2.tabIndex = 1020;
    crmForm.all.Field4.tabIndex = 1030;

    Note: replace Fieldx with the schema name of the field and leave the rest as is.

    Which produces the following Tab Order:

    Example 3: ( Tab Order Reset )

    Field1: TabIndex=1000 Field3: TabIndex=1010
    Field2: TabIndex=1020 Field4: TabIndex=1030

     

    Final Notes:

    1. Setting the tabIndex to 0 will result in the field being ignored by the tab order. While you don't run into this requirement often, it is there if you need it.
    2. Setting the tabIndex values to random numbers would be:
      1. Funny ( for a little bit )
      2. Would confuse the heck out of the users
      3. Would generate support calls
      4. And probably get you fired. :)

     

     

     

    Customization, Dynamics CRM
    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)
    Loading ... Loading ...
    930 views
     

    One response to “Resetting the Tab Order on MSCRM 3.0 Forms”

    1. Hello, I need your help! I have done according to the book. If I want change the tab order on a form I should create a section. I have done so in the Account form but I cannot change the order of them. Must I do as you describe here ?

    Leave a reply