Date post: | 30-Nov-2015 |
Category: |
Documents |
Upload: | kabil-rocky |
View: | 113 times |
Download: | 4 times |
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 1
Simple ALV Report Using
WebDynpro ABAP
Applies to:
SAP ABAP, my SAP ECC 6.0, SAP NetWeaver 2004s. For more information, visit the Web Dynpro ABAP homepage.
Summary
Simple ALV report using Web Dynpro ABAP. It contains basic ALV table output in Web dynpro and Error message in pop-up window, Secondary ALV output in pop-up window, Using of keyboard Enter button and mouse click events.
Author: Gokulakumar K
Company: TTK Prestige Ltd
Created on: 08 December 2009
Author Bio
Gokulakumar K earned a Bachelor of Technology in Information Technology; currently working as SAP ABAP Consultant at TTK Prestige Ltd.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 2
Table of Contents
Web Dynpro Component: .............................................................................................................................. 3
Component Controller : .............................................................................................................................. 4
Context : .................................................................................................................................................... 4
View Windows:.............................................................................................................................................. 8
Main View :................................................................................................................................................ 8
View window for pop-up error Message ..................................................................................................... 9
View window for Secondary ALV in pop-up .............................................................................................. 10
Windows: .................................................................................................................................................... 10
Event Handler: ............................................................................................................................................ 11
Keyboard Button Action ........................................................................................................................... 11
Mouse Click Event in ALV........................................................................................................................ 11
WebDynpro Application: .............................................................................................................................. 14
Sample Output: ........................................................................................................................................... 14
Related Content .......................................................................................................................................... 15
Disclaimer and Liability Notice ..................................................................................................................... 16
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 3
Web Dynpro Component:
Step 1: Create an application (ZAG_WD_REP_001) in transaction SE80
Step 2: Click the application name, give short text, then create component for the SELECT-OPTION and
ALV as shown.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 4
Component Controller :
Step 3: To use the components in the COMPONENTCONTROLLER, double click it and give a short text.
To use methods in the components, its Interface controller need to called as shown for Select-
options and ALV
Context :
Step 4: Then go to CONTEXT tab to create node and select its attributes as shown
.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 5
Sel_screen declare this for using IF_WD_SELECT_OPTIONS method, which will act as global in ComponentController
Step 5: Then in method tab of the COMPONENTCONTROLLER, write the code in the Initialization Method (WDDOINIT)
METHOD wddoinit .
*Selection screen component to be created here
DATA l_cmp_usage TYPE REF TO if_wd_component_usage.
l_cmp_usage = wd_this->wd_cpuse_sel_option( ).
IF l_cmp_usage->has_active_component( ) IS INITIAL.
l_cmp_usage->create_component( ).
ENDIF.
*Call the INTERFACE CONTROLLER and initiating the selection screen
DATA l_interface_c TYPE REF TO iwci_wdr_select_options.
l_interface_c = wd_this->wd_cpifc_sel_option( ).
wd_this->sel_screen = l_interface_c->init_selection_screen( ).
*To create slection screen frame
CALL METHOD wd_this->sel_screen->add_block
EXPORTING
i_id = 'BLOCK_001'
i_title = 'Selection Screen'.
*Create Range table
DATA it_sel TYPE REF TO data.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 6
CALL METHOD wd_this->sel_screen->create_range_table
EXPORTING
i_typename = 'MATNR'
RECEIVING
rt_range_table = it_sel.
*Add the Selection value in the range table
CALL METHOD wd_this->sel_screen->add_selection_field
EXPORTING
i_id = 'MATNR'
i_within_block = 'BLOCK_001'
it_result = it_sel .
*To Hide any standard button in the select-option
CALL METHOD wd_this->sel_screen->set_global_options
EXPORTING
i_display_btn_cancel = abap_false
i_display_btn_check = abap_false
* i_display_btn_reset = ABAP_TRUE
i_display_btn_execute = abap_false .
*To Remove fields from the selection screen
* CALL METHOD wd_this->sel_screen->remove_selection_screen_item
* EXPORTING
* i_id = 'MATNR'.
ENDMETHOD.
Step 6: Then in method tab of the COMPONENTCONTROLLER, Create a method GET_DATA and
write this code for fetching data
METHOD get_data .
*Data Declaration
DATA: it_mara TYPE STANDARD TABLE OF zag_mara,
it_makt TYPE STANDARD TABLE OF zag_makt,
it_final TYPE STANDARD TABLE OF zag_it_final,
wa_mara TYPE zag_mara,
wa_makt TYPE zag_makt,
wa_final TYPE zag_it_final.
DATA l_node TYPE REF TO if_wd_context_node.
DATA: g_range TYPE REF TO data.
FIELD-SYMBOLS <fs> TYPE table.
*To get the Select-Option range data
CALL METHOD wd_this->sel_screen->get_range_table_of_sel_field
EXPORTING
i_id = 'MATNR'
RECEIVING
rt_range_table = g_range.
ASSIGN g_range->* TO <fs>.
*Selection Statement
SELECT matnr mtart matkl meins
FROM mara INTO CORRESPONDING FIELDS OF TABLE it_mara
WHERE matnr IN <fs>.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 7
*To raise POP-UP Error Message when no selection is happened
IF sy-subrc NE 0.
*Declaration for pop-up windows
DATA l_wd_manager TYPE REF TO if_wd_window_manager.
DATA l_api_comp TYPE REF TO if_wd_component.
DATA l_wd_window TYPE REF TO if_wd_window.
l_api_comp = wd_this->wd_get_api( ).
l_wd_manager = l_api_comp->get_window_manager( ).
l_wd_window = l_wd_manager->create_window(
modal = abap_true
window_name = 'G_POP_UP'
title = 'Error Message Window'
button_kind = if_wd_window=>co_buttons_ok
message_type = if_wd_window=>co_msg_type_information
close_button = abap_true
message_display_mode = if_wd_window=>co_msg_display_mode_all ).
l_wd_window->open( ).
ENDIF.
*To select material dsec. from it_mara internal table
IF it_mara[] IS NOT INITIAL.
SELECT matnr maktx
FROM makt INTO CORRESPONDING FIELDS OF TABLE it_makt
FOR ALL ENTRIES IN it_mara WHERE matnr EQ it_mara-matnr.
ENDIF.
*Pass data from internal table it_mara & it_makt to final table it_final
LOOP AT it_mara INTO wa_mara.
wa_final-matnr = wa_mara-matnr.
wa_final-mtart = wa_mara-mtart.
wa_final-matkl = wa_mara-matkl.
wa_final-meins = wa_mara-meins.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_mara-matnr.
IF sy-subrc EQ 0.
wa_final-maktx = wa_makt-maktx.
ENDIF.
APPEND wa_final TO it_final.
ENDLOOP.
l_node = wd_context->get_child_node( name = wd_this->wdctx_node_s_option ).
l_node->bind_table( it_final ).
ENDMETHOD.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 8
View Windows:
Main View :
Then create view window as ZAG_WD_REP_VIEW, in layout tab create element as shown and assign NODE_S_OPTION and IT_IO_TAB context in the View context tab
Double click on Enter button OnAction events method and using the wizard code tool call GET_DATA method here.
METHOD onactionx_btn_enter .
DATA lo_componentcontroller TYPE REF TO
ig_componentcontroller .
lo_componentcontroller = wd_this->
get_componentcontroller_ctr( ).
lo_componentcontroller->get_data( ).
ENDMETHOD.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 9
i) To clear contents in ALV output list table, create a button as CLEAR with OnAction event code as X_BTN_CLEAR
A) Create a method AVL_CLEAR_DATA in COMPONENTCONTROLLER method tab.
METHOD alv_clear_data .
DATA l_node TYPE REF TO if_wd_context_node.
l_node = wd_context->get_child_node( name = wd_this->wdctx_node_s_option ).
l_node->invalidate( ).
ENDMETHOD.
B) Call this clear method ALV_CLEAR_DATA in X_BTN_CLEAR method.
METHOD onactionx_btn_clear .
DATA lo_componentcontroller TYPE REF TO ig_componentcontroller .
lo_componentcontroller = wd_this->get_componentcontroller_ctr( ).
lo_componentcontroller->alv_clear_data( ).
ENDMETHOD.
View window for pop-up error Message
Step 8: For POP-UP message, create a view MSG_POP_UP with text in the label.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 10
View window for Secondary ALV in pop-up
Step 9: Then create another view window for secondary ALV and assign the context IT_WERKS in it.
Windows:
Create ZAG_WD_REP_001 windows and assign its respective View Windows ZAG_WD_REP_001_VIEW to it.
Like wise create window for error message and for ALV pop-up view
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 11
Event Handler:
Keyboard Button Action
To get the output for select-option input via clicking keyboard Enter button
Create an event handler as ON_ENTER_S with Event ON_ENTER of SEL_OPTION
Component and call GET_DATA method here.
METHOD on_enter_s.
wd_this->get_data( ).
ENDMETHOD.
Mouse Click Event in ALV
Step 1: In the WDDOMODIFYVIEW method of ZAG_WD_REP_001_VIEW component
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 12
Write this following code to create a link in Material Number for click event
METHOD wddomodifyview .
**To Display a link in column Material Number (MATNR)
DATA lr_cntrl TYPE REF TO iwci_salv_wd_table.
DATA l_link TYPE REF TO cl_salv_wd_uie_link_to_action.
DATA l_t_conf TYPE REF TO cl_salv_wd_config_table.
DATA l_alv_col TYPE REF TO cl_salv_wd_column.
DATA l_column TYPE REF TO if_salv_wd_column_settings.
lr_cntrl = wd_this->wd_cpifc_it_alv( ).
l_t_conf = lr_cntrl->get_model( ).
l_column ?= l_t_conf.
l_alv_col = l_column->get_column( 'MATNR' ).
CREATE OBJECT l_link.
l_link->set_text_fieldname( 'MATNR' ).
l_alv_col->set_cell_editor( l_link ).
ENDMETHOD.
Step 2: Create a method in COMPONENTCONTROLLER as GET_WERK_DATA.
Declare a variable as l_matnr as show which will carry the click event value
And do this code in the GET_WERK_DATA method
METHOD get_werk_data .
DATA: it_marc TYPE STANDARD TABLE OF zag_marc,
wa_marc TYPE zag_marc.
DATA l_node TYPE REF TO if_wd_context_node.
FIELD-SYMBOLS: <l_value> TYPE ANY.
ASSIGN l_matnr->value->* TO <l_value>.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 13
ELECT matnr werks FROM marc INTO CORRESPONDING FIELDS OF TABLE it_marc
WHERE matnr EQ <l_value>.
IF sy-subrc EQ 0.
DATA lo_window_manager TYPE REF TO if_wd_window_manager.
DATA lo_api_component TYPE REF TO if_wd_component.
DATA lo_window TYPE REF TO if_wd_window.
l_node = wd_context->get_child_node( name = wd_this->wdctx_it_werk ).
l_node->bind_table( it_marc ).
lo_api_component = wd_this->wd_get_api( ).
lo_window_manager = lo_api_component->get_window_manager( ).
lo_window = lo_window_manager->create_window(
window_name = 'IT_WERKS'
title = 'Plant List'
message_display_mode = if_wd_window=>co_msg_display_mode_selected
button_kind = if_wd_window=>co_buttons_ok
message_type = if_wd_window=>co_msg_type_none
default_button
= if_wd_window=>co_button_ok ).
lo_window->open( ).
ENDIF.
ENDMETHOD.
Step 3: In method tab of view ZAG_WD_REP_001_VIEW, create a ON_CLICK event and call
GET_WERK_DATA method in the event as shown
METHOD on_click .
DATA lo_componentcontroller TYPE REF TO ig_componentcontroller .
lo_componentcontroller = wd_this->get_componentcontroller_ctr( ).
lo_componentcontroller->get_werk_data( l_matnr = r_param ).
ENDMETHOD.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 14
WebDynpro Application:
Create a Web Dynpro Application to run the report
Then Activate the all the components and execute the report.
Sample Output:
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 15
Related Content
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/60811d03-b69e-2b10-cd86-ad2790e44ecc
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/bd28494a-0801-0010-45a3-fc359d82d3e8
For more information, visit the Web Dynpro ABAP homepage.
Simple ALV Report Using WebDynpro ABAP
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com
© 2009 SAP AG 16
Disclaimer and Liability Notice
This document may discuss sample coding or other information that does not include SAP official interfaces and therefore is not
supported by SAP. Changes made based on this information are not supported and can be overwritten during an upgrade.
SAP will not be held liable for any damages caused by using or misusing the information, code or methods suggested in this document,
and anyone using these methods does so at his/her own risk.
SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of this technical article or code sample, including any liability resulting from incompatibility between the content within this document and the materials and
services offered by SAP. You agree that you will not hold, or seek to hold, SAP responsible or liable with respect to the content of this
document.