cancel
Showing results for 
Search instead for 
Did you mean: 

How to append/delete the rows in the table WDT_FLIGHTLIST_EDIT. Explan.

Former Member
0 Kudos

Hi,

I have a SAP test program WDT_FLIGHTLIST_EDIT for adding/deleting rows of the table with two buttons above the table. When a button is triggered Append Row or Insert Row. A new row is added, if Delete Row is triggered, selected row is deleted.

Please explain me how does it is done. I couldn't find in any method even after debugging is activated. Please expalin the program step by step in detail.

Thanks

Prasad

Accepted Solutions (1)

Accepted Solutions (1)

yesrajkumar
Active Participant
0 Kudos

Hi,

Put breakpoint on the method onactiontoolbar_function_std in view u2018view_tableu2019 of the Webdynpro component u2018SALV_WD_TABLEu2019. You can see what exactly is happening for the respective button actions.

Thanks,

Rajkumar.S

Former Member
0 Kudos

Hi,

It's fine. solved my problem, Still have one more doubt. I'm unable to add the buttons as it could be see at top of the table ( Append rows, Deleted Row, etc... buttons. ). Are they group into one component, are they standard table properties. Please help in how to insert buttons for table operations.

Thanks,

Prasad

yesrajkumar
Active Participant
0 Kudos

Hi Prasad,

Just i'm posting the one of the proposed solution.

I have used the standard component u2018salv_wd_tableu2019 in my application and will be able to give example by adding a button named 'NEW__BUTTON' .

In the WDDOINIT method of the component controller, use the following code to define column name, your own buttons, visible column for the same component usage.

DATA:

lr_salv_wd_table_usage TYPE REF TO if_wd_component_usage,

lr_salv_wd_table TYPE REF TO iwci_salv_wd_table.

*Check ALV component usage

lr_salv_wd_table_usage = wd_this->wd_cpuse_alv( ).

IF lr_salv_wd_table_usage->has_active_component( ) IS INITIAL.

lr_salv_wd_table_usage->create_component( ).

ELSE.

lr_salv_wd_table_usage->delete_component( ).

lr_salv_wd_table_usage->create_component( ).

ENDIF.

*Get ALV component

lr_salv_wd_table = wd_this->wd_cpifc_alv( ).

wd_this->mr_table type ref to CL_SALV_WD_CONFIG_TABLE.

*Get ConfigurationModel from ALV Component

wd_this->mr_table = lr_salv_wd_table->get_model( ).

*Set table settings

DATA:

lr_table_settings TYPE REF TO if_salv_wd_table_settings.

lr_table_settings ?= wd_this->mr_table .

lr_table_settings->set_visible_row_count( '5' ).

lr_table_settings->set_width( '100%' ).

DATA:

lr_header TYPE REF TO cl_salv_wd_header,

l_header_text TYPE string.

lr_header = lr_table_settings->get_header( ).

l_header_text = cl_wd_utilities=>get_otr_text_by_alias( 'NEW__BUTTON' ).

lr_header->set_text( l_header_text ).

lr_header->set_tooltip( l_header_text ).

"lr_table_settings->set_selection_mode( cl_wd_table=>e_selection_mode-multi_no_lead ).

*Set functions

IF wd_this->mb_no_maintain NE abap_true.

DATA:

lr_function TYPE REF TO cl_salv_wd_function,

lr_fe_button TYPE REF TO cl_salv_wd_fe_button,

l_btn_text TYPE string.

*Add the button here for validation on the top of the ALV

*This is where you add the buttons on the same ROW.

lr_function = lr_functions->create_function( 'NEW__BUTTON' ).

CREATE OBJECT lr_fe_button.

l_btn_text = cl_wd_utilities=>get_otr_text_by_alias( 'NEW__BUTTON' ).

lr_fe_button->set_text( l_btn_text ).

lr_fe_button->set_tooltip( l_btn_text ).

lr_function->set_editor( lr_fe_button ).

After defining the buttons 'NEW__BUTTON' , handle the actions for the same using the method u2018LIST_ACTIONu2019 which should have the event as u2018ON_FUNCTIONu2019, controller as u2018interface controlleru2019 and component use as the name you have given say u2018ALVu2019.

In the method u2018LIST_ACTIONu2019, handle the actions as below. This method will have the following importing parameters.

WDEVENT Importing CL_WD_CUSTOM_EVENT

R_PARAM Importing IF_SALV_WD_TABLE_FUNCTION

method list_action .

case r_param->id .

when 'NEW__BUTTON'.

"Do the validation here-"

endcase.

endmethod.

Thanks,

Rajkumar.S

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

did you looked into the action handlers? In the View maintenance open the tab "actions".

Regards,

Matthias

Former Member
0 Kudos

Hi,

Nothing is present under "actions".

Thanks,

Prasad