Skip to Content
0
Former Member
Apr 21, 2009 at 05:27 AM

DropDown in Table using WD ABAP

24 Views

Hi Gurus,

I am trying to populate dynamic values in a dropdown. This dropdown is in a table on the form.

My context design is:

DataSource ( cardinality 1..1)

--> TableNode ( cardinality 0..n)

--> Drop_Down ( cardinality 1..n)

--> DD_TYPE ( Type String)

In the init() method, I have written following code:

TYPES: BEGIN OF t_dd,
            d TYPE string,
         END OF t_dd.

 DATA: lt_dd TYPE STANDARD TABLE OF t_dd,
       ls_dd LIKE LINE OF lt_dd.

 DO 10 TIMES.
   ls_dd-d = sy-index.
   APPEND ls_dd to lt_dd.
 ENDDO.

 ls_dd-d = 'Test'.
 APPEND ls_dd to lt_dd.

  DATA LO_ND_TABLENODE TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA LO_ND_DDNODE TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA LO_ND_DROP_DOWN TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA LO_EL_DROP_DOWN TYPE REF TO IF_WD_CONTEXT_ELEMENT.
  DATA LS_DROP_DOWN TYPE WD_THIS->ELEMENT_DROP_DOWN.
* navigate from <CONTEXT> to <TABLENODE> via lead selection
  LO_ND_TABLENODE = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_TABLENODE ).

* navigate from <TABLENODE> to <DDNODE> via lead selection
  LO_ND_DDNODE = LO_ND_TABLENODE->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_DDNODE ).

* navigate from <DDNODE> to <DROP_DOWN> via lead selection
  LO_ND_DROP_DOWN = LO_ND_DDNODE->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_DROP_DOWN ).

* @TODO handle not set lead selection
  IF LO_ND_DROP_DOWN IS INITIAL.
  ENDIF.


* get all declared attributes
 CALL METHOD LO_ND_DROP_DOWN->bind_table
    EXPORTING
      new_items = lt_dd.

In the form layout, I am using Native DD control. In the binding tab, I have given following binding:

DROP_DOWN.DATA[*].DD_TYPE

And in the Specify Item Value I have given:

$record.DDNODE.DATA[].DROP_DOWN.DATA[]

Item text DD_TYPE

Value DD_TYPE

Still I am not able to see values in the Drop down.

Please help in solving this issue.

TIA,

Amit