--------------------------------------------------------------------------------------------------------------
In this post UI elements like a Label and an input field is created dynamically and the input field is bound a context attribute created dynamically.
Create a web dynpro component.
Layout set is flow layout.
Go to the WDDOINIT method to create a context attribute dynamically.
---------------------------------------------------------------------------------------------------------------
In this post UI elements like a Label and an input field is created dynamically and the input field is bound a context attribute created dynamically.
Create a web dynpro component.
Put the below code to create context attribute dynamically.
---------------------------------------------------------------
METHOD wddoinit .
DATA :
DATA :
lr_node_info TYPE REF TO if_wd_context_node_info,
ls_attr_info TYPE wdr_context_attribute_info.
CALL METHOD wd_context->get_node_info
RECEIVING
node_info = lr_node_info.
ls_attr_info-name = 'CARRID'.
ls_attr_info-type_name = 'S_CARR_ID'.
* CREATE A CONTEXT ATTRIBUTE
CALL METHOD lr_node_info->add_attribute
EXPORTING
attribute_info = ls_attr_info.
ENDMETHOD.
ls_attr_info TYPE wdr_context_attribute_info.
CALL METHOD wd_context->get_node_info
RECEIVING
node_info = lr_node_info.
ls_attr_info-name = 'CARRID'.
ls_attr_info-type_name = 'S_CARR_ID'.
* CREATE A CONTEXT ATTRIBUTE
CALL METHOD lr_node_info->add_attribute
EXPORTING
attribute_info = ls_attr_info.
ENDMETHOD.
----------------------------------------------------------------
To create dynamic UI element put the below code in WDDOMODIFYVIEW.
-----------------------------------------------------------------------------------------------------
METHOD wddomodifyview .
DATA : lr_root_element TYPE REF TO if_wd_view_element,
lr_container TYPE REF TO cl_wd_uielement_container,
lr_label TYPE REF TO cl_wd_label,
lr_input TYPE REF TO cl_wd_input_field,
lr_flow_data TYPE REF TO cl_wd_flow_data.
IF first_time = abap_true.
CALL METHOD view->get_element
EXPORTING
id = 'ROOTUIELEMENTCONTAINER'
RECEIVING
element = lr_root_element.
lr_container ?= lr_root_element.
CALL METHOD cl_wd_label=>new_label
EXPORTING
id = 'L_FLIGHT_CODE'
label_for = 'FLIGHT_CODE'
RECEIVING
control = lr_label.
CALL METHOD cl_wd_flow_data=>new_flow_data
EXPORTING
element = lr_label
RECEIVING
control = lr_flow_data.
CALL METHOD lr_label->set_layout_data
EXPORTING
the_layout_data = lr_flow_data.
CALL METHOD lr_container->add_child
EXPORTING
" index = 1
the_child = lr_label.
CALL METHOD cl_wd_input_field=>new_input_field
EXPORTING
bind_value = 'CARRID'
id = 'FLIGHT_CODE'
RECEIVING
control = lr_input.
CALL METHOD cl_wd_flow_data=>new_flow_data
EXPORTING
element = lr_input
RECEIVING
control = lr_flow_data.
CALL METHOD lr_input->set_layout_data
EXPORTING
the_layout_data = lr_flow_data.
CALL METHOD lr_container->add_child
EXPORTING
" index = 2
the_child = lr_input.
ENDIF.
ENDMETHOD.
------------------------------------------------------------------------------------------------------
Create an application and test.
---------------------------------------------------------------------------------------------------------------
No comments:
Post a Comment