Hey guys,
Just ran some tests on 15.1 on a JET4 database. It's a little bit weird, but just a little bit.
When an element is created, t_object.TPos is null.
When you move one element up/down, TPos is set for all elements located directly within the package. Simple numbering, starting at 1.
When you reset the sort order, TPos is again nulled for all elements.
I'm pretty sure these changes override any locks you might have in place, although I tested without locks enabled.
If you create a new element after setting a sort order, its TPos is null. This is a little odd.
If you then move some old elements in a way that does not affect the new element, the old elements' TPos are updated wrt one another, but the new element's TPos remains null.
Diagrams and packages also have a TPos. The three TPos'es do not affect one another, but otherwise seem to work the same. In other words, the above behaviour is repeated once for diagrams and once for packages.
Changing the sort order of packages does not affect the TPos of the packages in t_object. It makes sense that t_object.TPos is ignored in this case since there is a t_package.TPos.
I haven't tried forcing an update of a package row in t_object to see if it gets reset properly.
The preference Allow Free Sorting seems to have no effect here. It also does not seem to allow you to sort child packages before diagrams, or elements before either. This makes sense since the TPos'es are distinct.
/Uffe