on 2006 Nov 30 11:17 AM
WDA, WD ABAP
Hi all,
Background:
I created a view with context cardinality 0..n, UI element TABLE, and selection as MultiNoLead. I addition, I established a tree via column type TreeByKeyTableColumn.
I do not use a SUPPLY method for my context node, but solely locate within WDDOMODIFYVIEW. Within this view, my application creates a simple tree that simply consists of two levels.
Let's assume, in a given example there exists one level 1 node with three subordinated level 2 nodes (IS_LEAF = X). Further, I yet expanded the level 1 node and in the resulting tree I selected two of its three subordinated level 2 nodes
Action:
I collapse the level 1 node.
What's going on:
The collapse action incorporates a round trip and the first thing I do in WDDOMODIFYVIEW (especially before a BIND_TABLE action) is to retrieve the context node and to get the selected elements:
...
data:
lr_node type ref to if_wd_context_node,
lt_elem type wdr_context_element_set.
Get node
lr_node = wd_context->get_child_node( name = `INCLOG_TABLE` ).
Get current selections
lt_elem = lr_node->get_selected_elements( ).
...
Problem:
The two selected (but about to be hidden) level 2 elements do not (better: no longer) show up in table LT_ELEM and I thus cannot re-select them after a BIND_TABLE via if_wd_context_element->set_selected( abap_true ). I want to do this to keep these level 2 selections if I re-expand the level 1 node.
Question:
How can collapsed sub-nodes keep their NoLead-selection?
Thanks in advance & best regards,
Michael
Request clarification before answering.
Hi Phil,
Thanks for your reply!
I think my final question was somehow misleading as you are totally right, I have to call
<i> if_wd_context_element->set_selected( abap_true ).</i>
after my call of BIND_TABLE to re-select the nodes once selected by user interaction.
However, to be able to do I have to grap these once selected nodes BEFORE my call of BIND_TABLE within WDDOMODIFYVIEW. And this is the point where my problem arises: Selected sub-nodes (level 2) do no longer show up in the result of
<i> if_wd_context_node->get_selected_elements( ).</i>
when I collapse their superior node (level 1).
On the other hand, non-lead selections do not force a round trip, and I hence do not know whether a sub-node that was once selected is still selected at point in time 'Collapse' or not. I can hence not store an OLD selection state from the previous round trip and compare it with the NEW selection state of the current round trip.
Thanks again in advance & best regards,
Michael
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Michael,
to solve selection issues, you can optionally turn off the standard selection button
and ADD an extra checkbox column.
I have used this in the case of a tree table to manage mass tree arm selections and to manage the selections as requried.
The standard selection button was suppressed in my case.
My checkbox used roundtrips.
But checkboxes no roundtrips and a separate button next to table
would also work.
Perhaps a fully managed field is bettered suited to your requirement.
Obviously we can see only a small part of the requirement, so Im not sure if this is a good solution for you.
Good luck
Phil
User | Count |
---|---|
74 | |
30 | |
9 | |
7 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.