cancel
Showing results for 
Search instead for 
Did you mean: 

Making Input field and label visbile

Former Member
0 Kudos

Hi,

I have a dropdown box, label and input field. When i select the value of dropdown box to 'YES", label and iput field should be made visible other wise UI elements should be invisible. i render all the three elements dynamically.

i have written "On_select", but i couldnt get the reference of the label and input field as it is in "WDDOMODIFYVIEW" and the changes i were trying to do in event handler.

Please help on this. Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I am getting error "Attribut TEXT not found" when i try to get the attribut through the get_lead selection and get_attribute method. This is my code. Any help will be discernible. Thanks Alex for your inputs.

METHOD WDDOMODIFYVIEW .

if first_time = abap_true.

DATA: LR_ROOT_INFO TYPE REF TO IF_WD_CONTEXT_NODE_INFO,

LR_CHILD_INFO TYPE REF TO IF_WD_CONTEXT_NODE_INFO,

cl_des type REF TO CL_ABAP_ELEMDESCR,

lt_fixed_val type powl_dyn_date,

le_label type ref to CL_WD_LABEL,

le_ip type REF TO CL_WD_input_field,

abc type string,

ATTR_INFO TYPE WDR_CONTEXT_ATTRIBUTE_INFO.

LR_ROOT_INFO = WD_CONTEXT->GET_NODE_INFO( ).

CALL METHOD lr_root_info->ADD_NEW_CHILD_NODE

EXPORTING

NAME = 'CHILD'

is_mandatory = abap_true

RECEIVING

CHILD_NODE_INFO = lr_child_info.

DATA LO_ND_CHILD1 TYPE REF TO IF_WD_CONTEXT_NODE.

DATA LO_EL_CHILD1 TYPE REF TO IF_WD_CONTEXT_ELEMENT.

DATA LS_CHILD1 TYPE WD_THIS->ELEMENT_CHILD1.

  • navigate from <CONTEXT> to <CHILD1> via lead selection

LO_ND_CHILD1 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_CHILD1 ).

  • get element via lead selection

LO_EL_CHILD1 = LO_ND_CHILD1->GET_ELEMENT( ).

  • get all declared attributes

LO_EL_CHILD1->GET_STATIC_ATTRIBUTES(

IMPORTING

STATIC_ATTRIBUTES = LS_CHILD1 ).

ATTR_INFO-NAME = 'ATTR'.

ATTR_INFO-TYPE_NAME = 'POWL_DYN_DATE'.

CALL METHOD lr_child_info->ADD_ATTRIBUTE

EXPORTING

ATTRIBUTE_INFO = ATTR_INFO.

ATTR_INFO-NAME = 'TEXT'.

ATTR_INFO-TYPE_NAME = 'STRING'.

CALL METHOD lr_child_info->ADD_ATTRIBUTE

EXPORTING

ATTRIBUTE_INFO = ATTR_INFO.

ATTR_INFO-NAME = 'N_VALUE'.

ATTR_INFO-TYPE_NAME = 'I'.

CALL METHOD lr_child_info->ADD_ATTRIBUTE

EXPORTING

ATTRIBUTE_INFO = ATTR_INFO.

DATA: LR_ROOT_CONTAINER TYPE REF TO CL_WD_TRANSPARENT_CONTAINER,

LE_DD_KEY1 TYPE REF TO CL_WD_DROPDOWN_BY_KEY.

LR_ROOT_CONTAINER ?= VIEW->GET_ELEMENT( 'ROOTUIELEMENTCONTAINER' ).

CALL METHOD CL_WD_DROPDOWN_BY_KEY=>NEW_DROPDOWN_BY_KEY

EXPORTING

BIND_SELECTED_KEY = 'CHILD.ATTR'

ID = 'KEY1'

ON_SELECT = 'ON_SELECT'

RECEIVING

CONTROL = LE_DD_KEY1.

CALL METHOD CL_WD_INPUT_FIELD=>NEW_INPUT_FIELD

EXPORTING

BIND_VALUE = 'CHILD.N_VALUE'

ID = 'IP'

VISIBLE = '02'

RECEIVING

CONTROL = le_ip

.

CALL METHOD CL_WD_LABEL=>NEW_LABEL

EXPORTING

ID = 'LBL1'

LABEL_FOR = 'IP'

"TEXT = 'N = '

BIND_TEXT = 'CHILD.TEXT'

VISIBLE = '02'

RECEIVING

CONTROL = le_label

.

CALL METHOD CL_WD_MATRIX_LAYOUT=>NEW_MATRIX_LAYOUT

EXPORTING

CONTAINER = LR_ROOT_CONTAINER.

CALL METHOD CL_WD_MATRIX_HEAD_DATA=>NEW_MATRIX_HEAD_DATA

EXPORTING

ELEMENT = LE_DD_KEY1.

CALL METHOD CL_WD_MATRIX_DATA=>NEW_MATRIX_DATA

EXPORTING

ELEMENT = le_ip.

CALL METHOD CL_WD_MATRIX_HEAD_DATA=>NEW_MATRIX_HEAD_DATA

EXPORTING

ELEMENT = le_label.

CALL METHOD LR_ROOT_CONTAINER->ADD_CHILD

EXPORTING

  • INDEX =

THE_CHILD = LE_DD_KEY1.

CALL METHOD LR_ROOT_CONTAINER->ADD_CHILD

EXPORTING

  • INDEX =

THE_CHILD = le_label.

CALL METHOD LR_ROOT_CONTAINER->ADD_CHILD

EXPORTING

  • INDEX =

THE_CHILD = le_ip.

endif.

ENDMETHOD.

method ONACTIONON_SELECT .

data:

text type string,

element type ref to if_wd_context_element,

key type string.

"element = wd_context->get_lead_selection( ).

BREAK-POINT.

text = ID.

element = wd_context->get_lead_selection( ).

element->get_attribute( exporting name = 'TEXT' importing value = text ).

.

TEXT = 'N = '.

element->set_attribute( name = 'TEXT' value = text ).

endmethod.

Former Member
0 Kudos

I am able to solve the attibute issue but i couldnt solve toggling the input field visiblity by changing the value in drop down box.

Former Member
0 Kudos

Hi,

in your wddomodifyview, you should set an attribute wd_this->m_view = view.

(add the attribute in the atributes tab in se80), later you can use this reference

to act on the selection behaviour

lo_label = wd_this->m_view->get_element( label_id ).

lo_label->set_visibility( cl_wdl_core=>VISIBILITY_VISIBLE ).

and same for inputfield

grtz,

Koen

ps: reward useful answers

Answers (1)

Answers (1)

Former Member
0 Kudos

hi vimal.........

in the on select just read the value.

you can change the visibility there itself.

you must have bound the visibility property to an attribute.

just change the value of the attribute.

it will work fine.

Christ bless you

---regards,

alex b justin