Try OpenEdge Now
skip to main content
Introducing the OpenEdge DataSet : Defining a static ProDataSet : Using the REPOSITION Data-Relation : Example with REPOSITION set: navigation
Example with REPOSITION set: navigation
During navigation, REPOSITION mode serves a somewhat different purpose. As you learned in the introduction, the AVM generates a dynamic query for each child table of a Data-Relation. You can use this query to browse the current records at that level, where the meaning of "current" is normally the set of children for the currently selected parent. If REPOSITION is true when your application is navigating the ProDataSet, then the query works differently. The query does not filter children, but selects all rows in the child table regardless of the parent. However, the child query is repositioned to the child row for the currently selected parent.
Once again using the same example, if your user interface uses browse objects to show OrderLines of the current Order in one browse and Items in another browse, then with REPOSITION false, the Item browse will show only the one ttItem row for the current ttOrderLine. With REPOSITION true, the ttItem browse displays all Items and repositions to the Item for the current OrderLine. This REPOSITION mode has no other effect when you are navigating the ProDataSet. Again, set REPOSITION to true or false for this kind of many-to-one relationship, depending on which default behavior you want.
Note: The ATTACH-DATA-SOURCE( ) method of the buffer handle provides much of the internal definition for the FILL. Among other things, this method creates the FILL query. If you want to change the REPOSITION attribute, you must do it before the ATTACH-DATA-SOURCE( ) method. If you need to do it afterward, you must do a detach and attach on the child table.