on 11-04-2013 12:22 PM
* Dynamic transparent container and text edit
DATA : lr_container TYPE REF TO cl_wd_uielement_container.
DATA LR_MATRIX1 TYPE REF TO CL_WD_MATRIX_head_DATA.
DATA lr_matrix_layout TYPE REF TO CL_WD_MATRIX_LAYOUT.
DATA lr_input TYPE REF TO CL_WD_INPUT_FIELD.
DATA lv_assetdescr TYPE string.
DATA lr_textview_ip TYPE REF TO cl_wd_text_view.
DATA lr_matrix TYPE REF TO CL_WD_MATRIX_DATA.
data lr_matrix_data TYPE REF TO cl_wd_matrix_data.
data lr_textview_ex TYPE REF TO cl_wd_text_view.
DATA lr_trans TYPE REF TO CL_WD_TRANSPARENT_CONTAINER.
data lr_trans1 TYPE REF TO CL_WD_TRANSPARENT_CONTAINER.
data lr_grid_layout TYPE REF TO cl_wd_grid_layout.
data lr_grid TYPE REF TO cl_wd_grid_data.
lr_container ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
**set width
**
* CALL METHOD lr_container->SET_WIDTH
* EXPORTING
* VALUE = '50%'
* .
CALL METHOD CL_WD_GRID_LAYOUT=>NEW_GRID_LAYOUT
EXPORTING
* CELL_PADDING = '0'
* CELL_SPACING = '0'
COL_COUNT = '1'
CONTAINER = lr_container
* ID =
* ON_DROP =
* STRETCHED_HORIZONTALLY = 'X'
* STRETCHED_VERTICALLY = 'X'
* RECEIVING
* CONTROL = lr_grid_layout
.
*“Need to Assign the flow layout information for this transaparent container
*tran container1
CALL METHOD CL_WD_TRANSPARENT_CONTAINER=>NEW_TRANSPARENT_CONTAINER
EXPORTING
ID = 'TC1'
RECEIVING
CONTROL = lr_trans
.
*
*CALL METHOD lr_trans->SET_WIDTH
* EXPORTING
* VALUE = '50%'
* .
CALL METHOD CL_WD_MATRIX_HEAD_DATA=>NEW_MATRIX_HEAD_DATA
EXPORTING
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* CELL_DESIGN = E_CELL_DESIGN-R_PAD
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_trans
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* V_ALIGN = E_V_ALIGN-BASELINE
* V_GUTTER = E_V_GUTTER-NONE
* WIDTH =
RECEIVING
CONTROL = LR_matrix1
.
CALL METHOD lr_trans->SET_LAYOUT_DATA
EXPORTING
THE_LAYOUT_DATA = LR_matrix1.
* .
CALL METHOD lr_container->ADD_CHILD
EXPORTING
* INDEX = 1
THE_CHILD = lr_trans
.
CALL METHOD CL_WD_MATRIX_LAYOUT=>NEW_MATRIX_LAYOUT
EXPORTING
CONTAINER = lr_trans
* ID =
* ON_DROP =
* STRETCHED_HORIZONTALLY = 'X'
* STRETCHED_VERTICALLY = 'X'
* RECEIVING
* CONTROL = lr_matrix_layout
.
*TEXT VIEW
lv_assetdescr = 'TEXTVIEW1'.
CALL METHOD cl_wd_text_view=>new_text_view
EXPORTING
text = lv_assetdescr
RECEIVING
control = lr_textview_ip.
* lr_matrix = cl_wd_matrix_head_data=>new_matrix_head_data( lr_textview_ip ).
CALL METHOD CL_WD_MATRIX_HEAD_DATA=>NEW_MATRIX_HEAD_DATA
EXPORTING
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* CELL_DESIGN = E_CELL_DESIGN-R_PAD
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_textview_ip
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* V_ALIGN = E_V_ALIGN-BASELINE
* V_GUTTER = E_V_GUTTER-NONE
* WIDTH =
RECEIVING
CONTROL = LR_matrix1
.
lr_trans->add_child( lr_textview_ip ).
lr_textview_ip->set_layout_data( LR_matrix1 ).
CLEAR lr_textview_ip.
* Radiobutton group by index UI element
DATA LR_RADIO TYPE REF TO CL_WD_RADIOBUTTON_GROUP_BY_IDX.
CALL METHOD CL_WD_RADIOBUTTON_GROUP_BY_IDX=>NEW_RADIOBUTTON_GROUP_BY_IDX
EXPORTING
* ACCESSIBILITY_DESCR =
* ACTIVATE_ACCESS_KEY =
* BIND_ACCESSIBILITY_DESCR =
* BIND_COL_COUNT =
* BIND_ENABLED =
* BIND_READ_ONLY =
* BIND_STATE =
BIND_TEXTS = 'LV_RADIO.ATTR'
* BIND_TEXT_DESIGN =
* BIND_TEXT_DIRECTION =
* BIND_TEXT_WRAPPING =
* BIND_TOOLTIP =
* BIND_VISIBLE =
* BIND_WIDTH =
COL_COUNT = '3'
* CONTEXT_MENU_BEHAVIOUR = E_CONTEXT_MENU_BEHAVIOUR-INHERIT
* CONTEXT_MENU_ID =
* ENABLED = 'X'
* EXPLANATION =
ID = 'R1'
* ON_SELECT =
* READ_ONLY =
* SELECTION_CHANGE_BEHAVIOUR = E_SELECTION_CHANGE_BEHAVIOUR-AUTO
* STATE = E_STATE-NORMAL
* TEXT_DESIGN = E_TEXT_DESIGN-STANDARD
* TEXT_DIRECTION = E_TEXT_DIRECTION-INHERIT
* TEXT_WRAPPING =
* TOOLTIP =
* VIEW =
* VISIBLE = E_VISIBLE-VISIBLE
* WIDTH =
RECEIVING
CONTROL = LR_RADIO
.
CALL METHOD CL_WD_MATRIX_DATA=>NEW_MATRIX_DATA
EXPORTING
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* CELL_DESIGN = E_CELL_DESIGN-R_PAD
* COL_SPAN = '1'
ELEMENT = LR_RADIO
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* V_ALIGN = E_V_ALIGN-BASELINE
* V_GUTTER = E_V_GUTTER-NONE
* WIDTH =
RECEIVING
CONTROL = lr_matrix
.
lr_trans->add_child( LR_RADIO ).
LR_RADIO->set_layout_data( lr_matrix ).
CLEAR LR_RADIO.
************************************************************
*tran container2
CALL METHOD CL_WD_TRANSPARENT_CONTAINER=>NEW_TRANSPARENT_CONTAINER
EXPORTING
ID = 'TC2'
RECEIVING
CONTROL = lr_trans1
.
*CALL METHOD lr_trans->SET_WIDTH
* EXPORTING
* VALUE = '50%'
* .
CALL METHOD CL_WD_GRID_DATA=>NEW_GRID_DATA
EXPORTING
* BIND_CELL_BACKGROUND_DESIGN =
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_trans1
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* PADDING_BOTTOM =
* PADDING_LEFT =
* PADDING_RIGHT =
* PADDING_TOP =
* V_ALIGN = E_V_ALIGN-BASELINE
* WIDTH =
RECEIVING
CONTROL = LR_grid .
* .
**
*
CALL METHOD lr_trans1->SET_LAYOUT_DATA
EXPORTING
THE_LAYOUT_DATA = LR_grid.
***
* lr_trans1->SET_LAYOUT_DATA( LR_grid1 ) .
CALL METHOD lr_container->ADD_CHILD
EXPORTING
* INDEX = 2
THE_CHILD = lr_trans1
.
* “‘ set layout of tray
*
CALL METHOD CL_WD_GRID_LAYOUT=>NEW_GRID_LAYOUT
EXPORTING
* CELL_PADDING = '0'
* CELL_SPACING = '0'
COL_COUNT = '3'
CONTAINER = lr_trans1
* ID =
* ON_DROP =
* STRETCHED_HORIZONTALLY = 'X'
* STRETCHED_VERTICALLY = 'X'
* RECEIVING
* CONTROL = lr_grid_layout
.
*
*
*********************************************************************
*TEXT VIEW
lv_assetdescr = 'TEXTVIEW'.
CALL METHOD cl_wd_text_view=>new_text_view
EXPORTING
text = lv_assetdescr
RECEIVING
control = lr_textview_ip.
* lr_matrix = cl_wd_matrix_head_data=>new_matrix_head_data( lr_textview_ip ).
CALL METHOD CL_WD_GRID_DATA=>NEW_GRID_DATA
EXPORTING
* BIND_CELL_BACKGROUND_DESIGN =
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_textview_ip
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* PADDING_BOTTOM = '50PX'
PADDING_LEFT = '100PX'
* PADDING_RIGHT =
* PADDING_TOP =
* V_ALIGN = E_V_ALIGN-BASELINE
* WIDTH =
RECEIVING
CONTROL = lr_grid
.
lr_trans1->add_child( lr_textview_ip ).
lr_textview_ip->set_layout_data( lr_grid ).
CLEAR lr_textview_ip.
*“****************Create Input field ********************************
* Dynamic input field
* CONCATENATE lv_nodename lv_attrname INTO lv_node_id SEPARATED BY '.'.
CALL METHOD cl_wd_input_field=>new_input_field
EXPORTING
* bind_read_only = 'LR_NODE_PREVIEW.LV_READ_ONLY'
bind_value = 'LV_NODE.MTART'
id = 'I1'
RECEIVING
control = lr_input.
* lr_matrix_data = cl_wd_matrix_data=>new_matrix_data( lr_input ).
CALL METHOD CL_WD_GRID_DATA=>NEW_GRID_DATA
EXPORTING
* BIND_CELL_BACKGROUND_DESIGN =
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_input
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* PADDING_BOTTOM =
* PADDING_LEFT =
* PADDING_RIGHT =
* PADDING_TOP =
* V_ALIGN = E_V_ALIGN-BASELINE
* WIDTH =
RECEIVING
CONTROL = lr_grid
.
lr_trans1->add_child( lr_input ).
lr_input->set_layout_data( lr_grid ).
* Text View
lv_assetdescr = 'e.g.: johndoe@us.ibm.com'.
CALL METHOD cl_wd_text_view=>new_text_view
EXPORTING
text = lv_assetdescr
RECEIVING
control = lr_textview_ex.
* lr_matrix_data = cl_wd_matrix_data=>new_matrix_data( lr_textview_ex ).
CALL METHOD CL_WD_GRID_DATA=>NEW_GRID_DATA
EXPORTING
* BIND_CELL_BACKGROUND_DESIGN =
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_textview_ex
* HEIGHT =
* H_ALIGN = E_H_ALIGN-BEGIN_OF_LINE
* ID =
* PADDING_BOTTOM =
* PADDING_LEFT =
* PADDING_RIGHT =
* PADDING_TOP =
* V_ALIGN = E_V_ALIGN-BASELINE
* WIDTH =
RECEIVING
CONTROL = lr_grid
.
lr_textview_ex->set_layout_data( lr_grid ).
lr_trans1->add_child( lr_textview_ex ).
CLEAR lr_textview_ex.
Hello Anusha,
As WDP expert Amy said open the ST22 and then source code extract and find where you are getting actual dump. There can be no. of error and mostly error occurs due to improper layout assignment. So check all the layout assignment again.
you can use this document as reference for dynamic UI element creation.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you very much Amy.Actually I was trying to create transaprent container with matrix layout and added this transparent container to root ui element(set grid data to this). Manually by creating layout its working fine.But when I am trying to create this through dynamic programming , It is gong to dump.I have checked in st22.It showing as
Dynamic type conflict when assigning references error.
look at your code " ROOTUIELEMENTCONTAINER" is type of grid layout. and the for TC1 you are trying to pass Matrix Head Data.
CALL METHOD CL_WD_MATRIX_HEAD_DATA=>NEW_MATRIX_HEAD_DATA
EXPORTING
* CELL_BACKGROUND_DESIGN = E_CELL_BACKGROUND_DESIGN-TRANSPARENT
* CELL_DESIGN = E_CELL_DESIGN-R_PAD
* COL_SPAN = '1'
* DRAG_DATA =
ELEMENT = lr_trans
Hi Anusha,
If you are seeing a short dump, you should take a look at the runtime error log in transaction ST22 to see what is causing the error. Your code appears to have more than one error, but the initial error you are seeing is a casting conflict between classes CL_WD_MATRIX_HEAD_DATA and CL_WD_GRID_DATA.
For this issue, the problem is that you have assigned the ROOTUIELEMENTCONTAINER a grid layout but you then try to add matrix layout data to it.
Instead of assigning the ROOTUIELEMENTCONTAINER a grid layout...
CALL METHOD cl_wd_grid_layout=>new_grid_layout
EXPORTING
col_count = '1'
container = lr_container.
Assign it a matrix layout...
call method cl_wd_matrix_layout=>new_matrix_layout
EXPORTING
container = lr_container.
This will resolve your initial error. ST22 will help you to identify the remaining errors.
You should also reconsider using hook method WDDOMODIFYVIEW for this code. Hook method WDDOMODIFYVIEW is executed every time the view is re-rendered. You should either check parameter FIRST_TIME to ensure you execute your code only once, or-- even better-- consider moving your code into hook method WDDOINIT which will execute only once when the view is initialized.
Cheers,
Amy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
i wrote that code in wddomodifyview method
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.