To physically sort list members, you need to destroy the list (delete all members) and reload the members sorted. If this list is not used in too many line items that contain stored data, you can create a process that include the following (assume that the list that you want to sort is called LIST_A):
1. Copy all members of LIST_A to another temporary list (call it tmpLIST_A). Create a module dimensioned by tmpLIST_A (call it tmpMODULE_A). The line items in the module should include at least the name, code, parent name, and parent code of the list members. All other property values should also be included in this module.
2. Copy parent-child information (name, code, parent name, parent code) of the list along with other properties to tmpMODULE_A. In tmpMODULE_A, create a view that shows all line items sorted by the member list name (call this view vwSortedView).
3. Copy the contents of all line items (dimensioned by tmpLIST_A) to temporary modules.
4. Delete all members of LIST_A.
5. Import vwSortedView back to LIST_A
6. Import back the line items that contain data. This are the line items that are backed up in Step-3.
7. Finally, delete all members in tmpLIST_A so that it is ready for the next sort.
All of the above actions can be place in a single process so that the admin can just run the process to sort the list.