Important Coding for Dynamic Programming in Webdynpro ABAP

*&-------------------------------------------------------------*
*    Create a Dynamic Text     View                              *
*&-------------------------------------------------------------*

data : root type ref to cl_wd_uielement_container.
data : textview type ref to cl_wd_text_view.

**** Getting reference of Dynamic Programming
root  ?=  view->get_element( 'ROOTUIELEMENTCONTAINER' ).

**** Create Element and set appropriate property
textview = cl_wd_text_view=>new_text_view( text = 'SAP Webdynpro ABAP' ).

**** Define the layout
cl_wd_flow_data=>new_flow_data( element = textview ).

**** Add created element to the root
root->add_child_node( textview ).

*&-------------------------------------------------------------*
*    Create a Dynamic Button                                        *
*&-------------------------------------------------------------*     

data : bt type ref to cl_wd_button.    

**** Creating element button and set appropriate property
bt = cl_wd_button=>new_button( text     = 'Save'
            on_click     =  'Save_act' ).

**** Define the layout
cl_wd_matrix_data =>new_matrix_data( element  = bt ).

**** Add created element to the root
root->add_child_node( bt ).

*&-------------------------------------------------------------*
*    Create a Dynamic Input Filed                                 *
*&-------------------------------------------------------------*

data : inp type ref to cl_wd_input_field.

**** Creating element button and set appropriate property
inp = cl_wd_input_field=>new_input_filed( bind_value = 'EMP.SALARY' ).

**** Define the layout
cl_wd_row_data=>new_row_data( element = inp ).

**** Add created element to the root
root->add_child_node( inp ).

*&-------------------------------------------------------------*
*    Create a Dynamic Page Header                              *
*&-------------------------------------------------------------*
data : pg type ref to cl_wd_page_header.

**** Creating element button and set appropriate property
pg = cl_wd_page_header=>new_page_header( title = 'Welcome to Webdynpro ABAP' ).

**** Define the layout
cl_wd_flow_data=>new_flow_data( element = pg ).

**** Add created element to the root
root->add_child_node( pg ).



    ------------------------------------------------------------------------------------------------------------------------
    ||  CHANGING THE PROPERTIES OF THE EXISTING SCREEN ELEMENTS DYNAMICALLY   ||
    ------------------------------------------------------------------------------------------------------------------------

*&-------------------------------------------------------------*
*    Change a Dynamic Page Header                            *
*&-------------------------------------------------------------*

data : ph type ref to cl_wd_page_header.

**** Get the reference of the element that you want to change
ph ?= view->get_element( 'PH' ).

**** Change the properties
ph->set_title( 'Welcome to Webdynpro JAVA' ).




NOTE  : 1) Use the parameter FIRST_TIME and set the property to ABAP_TRUE to avoid dynamic program calling every time whenever action is triggered.

            i,e.,        IF FIRST_TIME = abap_true.
                    ---------<code>------------
                    ---------<code>------------
                    ENDIF.   
           
               2) Always implement the dynamic code in the method WDDOMODIFYVIEW(   ).

1 comment: