cancel
Showing results for 
Search instead for 
Did you mean: 

Getting data of the dynamic context

Former Member
0 Kudos

I created dynamical table element on th e view and dynamical context for this. I made binding data in table. It works.

* create dynamic node and attributes

DATA INFO_ROOT TYPE REF TO IF_WD_CONTEXT_NODE_INFO.
DATA INFO_TABLE TYPE REF TO IF_WD_CONTEXT_NODE_INFO.
DATA LS_ATTRIBUTE TYPE WDR_CONTEXT_ATTRIBUTE_INFO.

INFO_ROOT
= WD_CONTEXT->GET_NODE_INFO( ).

INFO_TABLE
= INFO_ROOT->ADD_NEW_CHILD_NODE(

NAME
= 'NODE_TABLE'
IS_MANDATORY
= ABAP_FALSE
IS_MULTIPLE
= ABAP_TRUE
IS_MANDATORY_SELECTION
= ABAP_FALSE
IS_MULTIPLE_SELECTION
= ABAP_FALSE
IS_SINGLETON
= ABAP_TRUE
IS_INITIALIZE_LEAD_SELECTION
= ABAP_TRUE
IS_STATIC
= ABAP_FALSE

).

LS_ATTRIBUTE
-NAME = 'FIELD1'.
LS_ATTRIBUTE
-TYPE_NAME = 'CHAR10'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

LS_ATTRIBUTE
-NAME = 'FIELD2'.
LS_ATTRIBUTE
-TYPE_NAME = 'CHAR10'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

LS_ATTRIBUTE
-NAME = 'FIELD3'.
LS_ATTRIBUTE
-TYPE_NAME = 'CHAR10'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

LS_ATTRIBUTE
-NAME = 'FIELD4'.
LS_ATTRIBUTE
-TYPE_NAME = 'CHAR10'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

LS_ATTRIBUTE
-NAME = 'FIELD5'.
LS_ATTRIBUTE
-TYPE_NAME = 'CHAR10'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

LS_ATTRIBUTE
-NAME = 'FIELD6'.
LS_ATTRIBUTE
-TYPE_NAME = 'CHAR10'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

LS_ATTRIBUTE
-NAME = 'FIELD7'.
LS_ATTRIBUTE
-TYPE_NAME = '/SAPPO/DTE_ABAP_TYPEKIND'.
LS_ATTRIBUTE
-VALUE_HELP_MODE = '0'.

INFO_TABLE
->ADD_ATTRIBUTE( ATTRIBUTE_INFO = LS_ATTRIBUTE ).

DATA DYN_NODE TYPE REF TO IF_WD_CONTEXT_NODE.

DYN_NODE
= WD_CONTEXT->GET_CHILD_NODE( NAME = 'NODE_TABLE' )

.

*create dynamic table and bind data

 

DATA

UI_ROOT TYPE REF TO IF_WD_VIEW_ELEMENT.
DATA LO_CONTAINER TYPE REF TO CL_WD_UIELEMENT_CONTAINER.
DATA L_MATRIX_HEAD_DATA TYPE REF TO CL_WD_MATRIX_HEAD_DATA.

DATA LO_TABLE TYPE REF TO CL_WD_TABLE.
DATA LO_ND_DYN TYPE REF TO IF_WD_CONTEXT_NODE.
DATA lv_tabname TYPE ddobjname VALUE 'srm_net310'.
DATA lr_db_tab TYPE REF TO data.

FIELD-SYMBOLS: <IT_DB_TAB> TYPE ANY TABLE.

IF FIRST_TIME = ABAP_TRUE.

LO_CONTAINER ?= VIEW
->GET_ELEMENT( 'CONT' ).

CL_WD_MATRIX_LAYOUT
=>NEW_MATRIX_LAYOUT( CONTAINER = LO_CONTAINER ).
LO_CONTAINER
->SET_WIDTH( VALUE = '100%' ).

LO_ND_DYN
= WD_CONTEXT->GET_CHILD_NODE( NAME = 'NODE_TABLE' ).

CREATE DATA lr_db_tab TYPE TABLE OF (lv_tabname).
ASSIGN lr_db_tab->* to <IT_DB_TAB>.

SELECT * FROM (lv_tabname) INTO CORRESPONDING FIELDS OF TABLE
<IT_DB_TAB>
.


CL_WD_DYNAMIC_TOOL
=>CREATE_TABLE_FROM_NODE(

UI_PARENT
= LO_CONTAINER
TABLE_ID
= 'DB_TABLE'
NODE
= LO_ND_DYN
).

LO_ND_DYN
->BIND_TABLE( NEW_ITEMS = <IT_DB_TAB> ).


ENDIF

.

And now I need the data from that table. I use follow coding for this.

* getting data from dynamic node

DATA: CONTEXT_NODE TYPE REF TO IF_WD_CONTEXT_NODE.
  DATA: IT_NET310 TYPE STANDARD TABLE OF SRM_NET310,
        WA_NET310 TYPE SRM_NET310.
  DATA: LD_INDEX TYPE I.

  CONTEXT_NODE = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_TABLE ).
  REFRESH: IT_NET310.

  CALL METHOD CONTEXT_NODE->GET_LEAD_SELECTION_INDEX
    RECEIVING
      INDEX = LD_INDEX.

  CONTEXT_NODE->GET_STATIC_ATTRIBUTES_TABLE(
    IMPORTING
      TABLE = IT_NET310 ).

 

  Method 'GET_STATIC_ATTRIBUTES_TABLE' returns an error.

Please, help me! 

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

If the issue is not resolved, what is the error that you are getting?