Professional Documents
Culture Documents
TECHSAP
Hello Visitors,The blog contents are now available in my new site: https://sapcodes.com/ .
start-of-selection. Home
perform data_fetch. ABAP
call screen 100. ABAP-2
Web-Dynpro
form DATA_FETCH . FPM
select * from spfli into table it_spfli where carrid in p_carr. WorkFlow
endform. " DATA_FETCH BASIS
Interview Ques
module STATUS_0100 output. ABAP Short Ques
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'. Blog Archive
endmodule. " STATUS_0100 OUTPUT
►► 2017 (27)
►► April (6)
* EITHER PROVIDE SIDE AND EXTENSION OR RATIO TO CREATE A DOCKING
CONTAINER*
Total Pageviews
CREATE OBJECT o_dock
EXPORTING 1 7 2 0 3 5 7
side = o_dock->dock_at_left "
dock_at_right,dock_at_top,dock_at_bottom
Popular Posts
extension = 2000.
Creation of Table Control in
Module Pool Program
Description: Table Control
* CREATE OBJECT o_dock generally used to display
* EXPORTING Multiple records in a single
screen. Step 1. Create a
* ratio = 60. Module Pool Program , declare ...
i_structure_name = 'SPFLI'
CHANGING Modal Dialog Box (Pop Up Screen) In
it_outtab = it_spfli. Module pool program
Description : Modal Dialog Box is a Pop up
window which is displayed on the top of the
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 1/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
endif. screen. When calling this
type of screen we have to...
endmodule. " DISPLAY_ALV OUTPUT
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 2/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
START-OF-SELECTION.
PERFORM DATA_FETCH.
PERFORM BUILD_FIELDCATALOG.
CALL SCREEN 100.
form DATA_FETCH .
SELECT carrid
connid
countryfr
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 3/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
cityfrom
airpfrom
countryto
cityto
airpto FROM spfli INTO TABLE it_spfli WHERE carrid IN s_carr.
endform. " DATA_FETCH
form BUILD_FIELDCATALOG .
CLEAR wa_fcat.
WA_FCAT-col_pos = 1.
WA_FCAT-fieldname = 'CARRID'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'CARRID'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 2.
WA_FCAT-fieldname = 'CONNID'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'CONNID'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 3.
WA_FCAT-fieldname = 'COUNTRYFR'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'COUNTRY FROM'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 4.
WA_FCAT-fieldname = 'CITYFROM'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'COUNTRY TO'..
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 5.
WA_FCAT-fieldname = 'AIRPFROM'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'AIRPORT FROM'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 6.
WA_FCAT-fieldname = 'COUNTRYTO'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'COUNTRY TO'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 7.
WA_FCAT-fieldname = 'CITYTO'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'CITY TO'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
WA_FCAT-col_pos = 8.
WA_FCAT-fieldname = 'AIRPTO'.
WA_FCAT-tabname = 'IT_SPFLI'.
WA_FCAT-COLTEXT = 'AIRPORT TO'.
APPEND wa_fcat TO IT_FCAT.
CLEAR wa_fcat.
endform. " BUILD_FIELDCATALOG
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 4/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
module DISPLAY_ALV output.
ENDIF.
endmodule. " DISPLAY_ALV OUTPUT
ENDIF.
CALL METHOD o_alv1->refresh_table_display.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 5/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
START-OF-SELECTION.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 6/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
PERFORM fetch_data_from_spfli.
CALL SCREEN 100.
*----------------------------------------------------------------------
*
FORM fetch_data_from_spfli .
SELECT * FROM spfli INTO TABLE it_spfli.
ENDFORM. " FETCH_DATA_FROM_SPFLI
ENDIF.
ENDMODULE. " SPLIT_CONTAINER OUTPUT
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 7/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*----------------------------------------------------------------------
*
CLASS handle_event DEFINITION.
PUBLIC SECTION.
*----------------------------------------------------------------------
*
CLASS handle_event IMPLEMENTATION.
METHOD page_head.
*----------------try this one---------------------------------*
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 8/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
sap_style = cl_dd_document=>heading
sap_color = cl_dd_document=>list_heading_int
sap_fontsize = cl_dd_document=>large.
CALL METHOD o_docu->new_line.
CLEAR text.
CONCATENATE : 'BY USER :' sy-uname INTO text SEPARATED BY space.
CALL METHOD o_docu->add_text
EXPORTING
text = text
sap_style = cl_dd_document=>heading
sap_color = cl_dd_document=>list_heading_int
sap_fontsize = cl_dd_document=>large.
CALL METHOD o_docu->set_document_background
EXPORTING
picture_id = 'HEADER1'. " Object uploaded by OAER Transaction
CALL METHOD o_docu->display_document
EXPORTING
reuse_control = 'X'
parent = o_ref1.
ENDMETHOD. "PAGE_HEAD
ENDCLASS. "HANDLE_EVENT IMPLEMENTATION
START-OF-SELECTION.
PERFORM fetch_data_from_spfli.
CALL SCREEN 100.
*&---------------------------------------------------------------------
*
FORM fetch_data_from_spfli .
SELECT * FROM spfli INTO TABLE it_spfli.
ENDFORM. " FETCH_DATA_FROM_SPFLI
*&---------------------------------------------------------------------
*
*----------------------------------------------------------------------
*
MODULE split_container OUTPUT.
IF o_cust IS NOT BOUND.
CREATE OBJECT o_cust
EXPORTING
container_name = 'CONTAINER'.
CREATE OBJECT o_spli
EXPORTING
parent = o_cust
rows = 2
columns = 1.
CALL METHOD o_spli->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = o_ref1.
CALL METHOD o_spli->set_row_height
EXPORTING
id = 1
height = 35.
CALL METHOD o_spli->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = o_ref2.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 9/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*----------------------------------------------------------------------
*
MODULE display_alv OUTPUT.
IF o_alv IS NOT BOUND.
CREATE OBJECT o_alv
EXPORTING
i_parent = o_ref2.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 10/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
it_fcat TYPE lvc_t_fcat,
wa_fcat TYPE lvc_s_fcat,
wa_layo TYPE lvc_s_layo,
it_sort TYPE lvc_t_sort,
wa_sort TYPE lvc_s_sort,
o_cust TYPE REF TO cl_gui_custom_container,
o_alv TYPE REF TO cl_gui_alv_grid,
ok_code TYPE sy-ucomm.
START-OF-SELECTION.
PERFORM fetch_data.
PERFORM build_text.
PERFORM build_fieldcat.
PERFORM build_layout.
PERFORM build_sort.
END-OF-SELECTION.
CALL SCREEN 100.
*----------------------------------------------------------------------
*
FORM fetch_data .
SELECT carrid
connid
fldate price FROM sflight INTO CORRESPONDING FIELDS OF TABLE it_flight.
SORT it_flight BY carrid ASCENDING.
ENDFORM. " FETCH_DATA
*----------------------------------------------------------------------
*
FORM build_text .
DATA : carr TYPE sflight-carrid,
txt TYPE char20.
LOOP AT it_flight INTO wa_flight.
wa_flight-text1 = 'Total Price = '.
IF wa_flight-carrid NE carr.
carr = wa_flight-carrid.
CONCATENATE 'Subtotal (' carr ') =' INTO txt SEPARATED BY space.
ENDIF.
wa_flight-text2 = txt.
MODIFY it_flight FROM wa_flight.
ENDLOOP.
ENDFORM. " BUILD_TEXT
*----------------------------------------------------------------------
*
FORM build_fieldcat .
wa_fcat-col_pos = 1.
wa_fcat-fieldname = 'TEXT1'.
wa_fcat-tech = 'X'.
wa_fcat-no_out = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-col_pos = 2.
wa_fcat-fieldname = 'TEXT2'.
wa_fcat-tech = 'X'.
wa_fcat-no_out = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-col_pos = 3.
wa_fcat-fieldname = 'CARRID'.
wa_fcat-tabname = 'IT_FLIGHT'.
wa_fcat-scrtext_m = 'CARRID'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-col_pos = 4.
wa_fcat-fieldname = 'CONNID'.
wa_fcat-tabname = 'IT_FLIGHT'.
wa_fcat-scrtext_m = 'CONNID'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-col_pos = 5.
wa_fcat-fieldname = 'FLDATE'.
wa_fcat-tabname = 'IT_FLIGHT'.
wa_fcat-scrtext_m = 'FLIGHT DATE'.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 11/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-col_pos = 6.
wa_fcat-fieldname = 'PRICE'.
wa_fcat-tabname = 'IT_FLIGHT'.
wa_fcat-scrtext_m = 'PRICE'.
wa_fcat-do_sum = 'X'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_sort-spos = 2.
wa_sort-fieldname = 'TEXT2'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO it_sort.
CLEAR wa_sort.
ENDFORM. " BUILD_SORT
*-------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
ENDMODULE. " STATUS_0100 OUTPUT
*------------------------------------------------------------*
MODULE display_alv_grid OUTPUT.
IF o_cust IS NOT BOUND.
CREATE OBJECT o_cust
EXPORTING
container_name = 'CONT'."CREATE A CUSTOM CONT WITH NAME 'CONT'
ENDIF.
IF o_alv IS NOT BOUND.
CREATE OBJECT o_alv
EXPORTING
i_parent = o_cust.
ENDIF.
CALL METHOD o_alv->set_table_for_first_display
EXPORTING
is_layout = wa_layo
CHANGING
it_outtab = it_flight
it_fieldcatalog = it_fcat
it_sort = it_sort.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 12/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*---------------------------------------------------------------*
6. OO ALV WITH HIDING TOOLBAR
DATA : it_spfli TYPE TABLE OF spfli,
wa_spfli TYPE spfli,
ok_code TYPE sy-ucomm,
o_cust TYPE REF TO cl_gui_custom_container,
o_alv TYPE REF TO cl_gui_alv_grid,
lt_exclude TYPE ui_functions,
ls_exclude TYPE ui_func,
ls_layo TYPE lvc_s_layo.
START-OF-SELECTION.
PERFORM data_fetch.
PERFORM build_layout.
PERFORM fill_fcode.
END-OF-SELECTION.
CALL SCREEN 100.
*--------------------------------------------------------------*
FORM data_fetch .
SELECT * FROM spfli INTO TABLE it_spfli .
SORT it_spfli BY carrid connid.
ENDFORM. " DATA_FETCH
*-------------------------------------------------------------*
FORM build_layout .
*ls_layo-no_toolbar = 'X'. " To hide all toolbar buttons
ENDFORM.
*-------------------------------------------------------------*
FORM fill_fcode .
ls_exclude = cl_gui_alv_grid=>mc_fc_subtot.
APPEND ls_exclude TO lt_exclude.
CLEAR ls_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sort_asc.
APPEND ls_exclude TO lt_exclude.
CLEAR ls_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc.
APPEND ls_exclude TO lt_exclude.
CLEAR ls_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_filter.
APPEND ls_exclude TO lt_exclude.
CLEAR ls_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_detail.
APPEND ls_exclude TO lt_exclude.
CLEAR ls_exclude.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 13/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
MODULE display_alv OUTPUT.
IF o_cust IS NOT BOUND.
CREATE OBJECT o_cust
EXPORTING
container_name = 'CONT'.
ENDIF.
IF o_alv IS NOT BOUND.
CREATE OBJECT o_alv
EXPORTING
i_parent = o_cust.
ENDIF.
CALL METHOD o_alv->set_table_for_first_display
EXPORTING
i_structure_name = 'SPFLI'
it_toolbar_excluding = lt_exclude
is_layout = ls_layo
CHANGING
it_outtab = it_spfli.
*--------------------------------------------------------------*
6. OO ALV WITH EDIT & SAVE FUNCTIONALITY & ADDING BUTTON IN ALV TOOLBAR
TYPE-POOLS : icon.
TYPES : BEGIN OF tab,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
cityfrom TYPE spfli-cityfrom,
airpfrom TYPE spfli-airpfrom,
countryto TYPE spfli-countryto,
cityto TYPE spfli-cityto,
airpto TYPE spfli-airpto,
END OF tab.
DATA : it_spfli TYPE TABLE OF tab,
it_spfli_old TYPE TABLE OF tab,
it_spfli_new TYPE TABLE OF spfli,
wa_spfli_new TYPE spfli,
wa_spfli TYPE tab,
ok_code TYPE sy-ucomm,
o_cust TYPE REF TO cl_gui_custom_container,
o_alv TYPE REF TO cl_gui_alv_grid,
it_fcat TYPE lvc_t_fcat,
is_fcat TYPE lvc_s_fcat,
is_layo TYPE lvc_s_layo,
check.
*----------------------------------------------------------*
* CLASS HANDLE_EVENT DEFINITION
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 14/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*-------------------------------------------------------------*
*
*-------------------------------------------------------------*
CLASS handle_event DEFINITION.
PUBLIC SECTION.
CLASS-METHODS : handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object
e_interactive.
CLASS-METHODS : handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
ENDCLASS. "HANDLE_EVENT DEFINITION
*-------------------------------------------------------------*
CLASS handle_event IMPLEMENTATION.
METHOD handle_toolbar.
* *ADDING A SAVE BUTTONN TO THE ALV TOOLBAR *
DATA : is_btn TYPE stb_button.
is_btn-function = 'SAVE'.
is_btn-icon = icon_system_save.
is_btn-text = 'SAVE'.
is_btn-quickinfo = 'SAVE'.
is_btn-disabled = ' '.
APPEND is_btn TO e_object->mt_toolbar.
ENDMETHOD. "handle_toolbar
METHOD handle_user_command .
CASE e_ucomm.
WHEN 'SAVE'. " WILL TRIGGER WHEN CLICK ON ALV TOOLBAR 'SAVE' BUTTON
PERFORM update_data_base.
ENDCASE.
ENDMETHOD. "handle_user_command
ENDCLASS. "HANDLE_EVENT IMPLEMENTATION
START-OF-SELECTION.
PERFORM data_fetch.
PERFORM buld_fieldcat.
PERFORM buld_layout.
END-OF-SELECTION.
CALL SCREEN 100.
*-------------------------------------------------------------*
FORM data_fetch .
SELECT carrid
connid
countryfr
cityfrom
airpfrom
countryto
cityto
airpto FROM spfli INTO TABLE it_spfli .
SORT it_spfli BY carrid connid.
it_spfli_old = it_spfli.
ENDFORM. " DATA_FETCH
*--------------------------------------------------------------*
MODULE display_alv OUTPUT.
IF o_cust IS NOT BOUND.
CREATE OBJECT o_cust
EXPORTING
container_name = 'CONT'.
ENDIF.
IF o_alv IS NOT BOUND.
CREATE OBJECT o_alv
EXPORTING
i_parent = o_cust.
SET HANDLER handle_event=>handle_toolbar FOR o_alv.
SET HANDLER handle_event=>handle_user_command FOR o_alv.
CALL METHOD o_alv->set_table_for_first_display
EXPORTING
is_layout = is_layo
CHANGING
it_outtab = it_spfli
it_fieldcatalog = it_fcat.
CALL METHOD o_alv->set_toolbar_interactive .
ENDIF.
CALL METHOD o_alv->refresh_table_display.
ENDMODULE. " DISPLAY_ALV OUTPUT
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 15/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*------------------------------------------------------------*
FORM buld_fieldcat .
is_fcat-col_pos = 1 .
is_fcat-fieldname = 'CARRID'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'Carrer No.'.
is_fcat-key = 'X'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 2 .
is_fcat-fieldname = 'CONNID'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'Conn No.'.
is_fcat-key = 'X'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 3 .
is_fcat-fieldname = 'COUNTRYFR'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'Country From'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 4 .
is_fcat-fieldname = 'CITYFROM'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'City From'.
is_fcat-edit = 'X'. " MAKES ONLY THIS FIELD AS EDITABLE
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 5 .
is_fcat-fieldname = 'AIRP FROM'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'Airp From'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 6.
is_fcat-fieldname = 'COUNTRYTO'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'Country To'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 7 .
is_fcat-fieldname = 'CITYTO'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'City To'.
is_fcat-edit = 'X'. " MAKES ONLY THIS FIELD AS EDITABLE
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 8 .
is_fcat-fieldname = 'AIRPTO'.
is_fcat-tabname = 'IT_SPFLI'.
is_fcat-scrtext_l = 'Airport To'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
ENDFORM. " BULD_FIELDCAT
*--------------------------------------------------------------*
FORM buld_layout .
is_layo-col_opt = 'X'.
* is_layo-edit = 'X'. " ALL FIELDS ARE EDITABLE
ENDFORM. " BULD_LAYOUT
*--------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
ENDMODULE. " STATUS_0100 OUTPUT
*-----------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'SAVE'. " WILL TRIGGER WHEN CLICK ON STANDARD TOOLBAR SAVE BUTTON
PERFORM UPDATE_DATA_BASE.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 16/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*-------------------------------------------------------------*
form UPDATE_DATA_BASE .
CALL METHOD o_alv->check_changed_data
IMPORTING
e_valid = check.
IF it_spfli NE it_spfli_old.
LOOP AT it_spfli INTO wa_spfli.
MOVE-CORRESPONDING wa_spfli TO wa_spfli_new.
APPEND wa_spfli_new TO it_spfli_new.
ENDLOOP.
MODIFY spfli FROM TABLE it_spfli_new.
IF sy-subrc = 0..
MESSAGE 'DATABASE TABLE SPFLI UPDATED' TYPE 'S'.
ENDIF.
ENDIF.
endform. " UPDATE_DATA_BASE
START-OF-SELECTION.
wa_text = '*---------------------Write Your Comment --------*'.
APPEND wa_text TO it_text.
CALL SCREEN 100.
*-----------------------------------------------------------*
MODULE create_comment_box OUTPUT.
IF o_cust IS NOT BOUND.
CREATE OBJECT o_cust
EXPORTING
container_name = 'CONT'.
ENDIF.
IF o_text IS NOT BOUND.
CREATE OBJECT o_text
EXPORTING
parent = o_cust.
WHEN 'TOGG'.
IF ( mode = cl_gui_textedit=>true ).
mode = cl_gui_textedit=>false.
ELSE.
mode = cl_gui_textedit=>true.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 17/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
ENDIF.
CALL METHOD o_text->set_readonly_mode
EXPORTING
readonly_mode = mode.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*------------------------------------------------------------*
*-----------------------------------------------------------*
8. OO ALV USING DOCKING CONTAINER & COLORING ROWS BASED ON CONDITION
*coloring particular rows in alv on condition*
TYPE-POOLS : col.
TYPES : BEGIN OF tab,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
price TYPE sflight-price,
seatsmax TYPE sflight-seatsmax,
seatsocc TYPE sflight-seatsocc,
color(4),
END OF tab.
START-OF-SELECTION.
PERFORM data_fetch.
PERFORM build_fieldcatalog.
PERFORM build_layout.
END-OF-SELECTION.
CALL SCREEN 100.
*-------------------------------------------------------------*
FORM data_fetch .
SELECT carrid
connid
fldate
price
seatsmax
seatsocc FROM sflight INTO CORRESPONDING FIELDS OF TABLE it_flight.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 18/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
ENDFORM. " DATA_FETCH
*------------------------------------------------------------*
FORM build_fieldcatalog .
is_fcat-col_pos = 1.
is_fcat-fieldname = 'CARRID'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-key = 'X'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 1.
is_fcat-fieldname = 'CONNID'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-key = 'X'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 3.
is_fcat-fieldname = 'FLDATE'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-key = 'X'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 4.
is_fcat-fieldname = 'PRICE'.
is_fcat-tabname = 'IT_FLIGHT'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 5.
is_fcat-fieldname = 'SEATSMAX'.
is_fcat-tabname = 'IT_FLIGHT'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 6.
is_fcat-fieldname = 'SEATSOCC'.
is_fcat-tabname = 'IT_FLIGHT'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
*-----------------------------------------------------------*
FORM build_layout .
is_layo-info_fname = 'COLOR'.
ENDFORM. " BUILD_LAYOUT
*------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
* SET TITLEBAR 'xxx'.
*----------------------------------------------------------*
MODULE display_alv OUTPUT.
IF o_dock IS NOT BOUND.
CREATE OBJECT o_dock
EXPORTING
side = cl_gui_docking_container=>dock_at_left
extension = 500.
ENDIF.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 19/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
it_fieldcatalog = it_fcat.
endif.
ENDMODULE. " DISPLAY_ALV OUTPUT
*-----------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*-------------------------------------------------------------*
SCREEN 100 FLOW LOGIC
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE display_alv.
*-----------------------------------------------------------*
CLASS handle DEFINITION.
PUBLIC SECTION.
CLASS-METHODS : handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
CLASS-METHODS : handle_close
FOR EVENT close OF cl_gui_dialogbox_container
IMPORTING sender. "triggers when user clicks
" the close button on the dialog box
CLASS-METHODS : on_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object.
CLASSMETHODS : on_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
ENDCLASS. "handle DEFINITION
*----------------------------------------------------------*
CLASS handle IMPLEMENTATION.
METHOD handle_double_click.
READ TABLE it_spfli INTO wa_spfli INDEX e_row-index.
IF sy-subrc = 0.
SELECT carrid
connid
fldate
price
seatsmax
seatsocc FROM sflight INTO TABLE it_flight WHERE carrid = wa_spfli-carrid.
ENDIF.
PERFORM build_fieldcat.
CREATE OBJECT o_dial
EXPORTING
width = 800
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 20/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
height = 200
top = 120
left = 120
caption = 'Flight Details'.
SET HANDLER handle=>handle_close FOR o_dial.
CREATE OBJECT o_alv2
EXPORTING
i_parent = o_dial.
CALL METHOD o_alv2->set_table_for_first_display
CHANGING
it_outtab = it_flight
it_fieldcatalog = it_fcat.
METHOD handle_close.
CALL METHOD sender->set_visible
EXPORTING
visible = space.
ENDMETHOD. "handle_close
METHOD on_toolbar.
DATA btn TYPE stb_button.
CASE alv_ok_code.
WHEN 'INCLUDE'.
btn-function = 'EXCLUDE'.
btn-icon = icon_pdir_foreward_switch.
WHEN 'EXCLUDE'.
CLEAR e_object->mt_toolbar.
btn-function = 'INCLUDE'.
btn-icon = icon_pdir_back_switch.
ENDCASE.
INSERT btn INTO TABLE e_object->mt_toolbar.
ENDMETHOD. "on_toolbar
METHOD on_user_command.
CASE e_ucomm.
WHEN 'INCLUDE' OR 'EXCLUDE'.
alv_ok_code = e_ucomm.
CALL METHOD o_alv1->set_toolbar_interactive.
ENDCASE.
ENDMETHOD. "on_user_command
START-OF-SELECTION.
PERFORM data_fetch.
END-OF-SELECTION.
CALL SCREEN 100.
*-----------------------------------------------------------*
FORM data_fetch .
SELECT * FROM spfli INTO TABLE it_spfli UP TO 20 ROWS.
ENDFORM. " DATA_FETCH
*&----------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&-----------------------------------------------------------*
* text
*--------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*-----------------------------------------------------------*
MODULE display_alv OUTPUT.
IF o_dock IS NOT BOUND.
CREATE OBJECT o_dock
EXPORTING
side = cl_gui_docking_container=>dock_at_left
extension = 5000.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 21/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
ENDIF.
IF o_alv1 IS NOT BOUND.
CREATE OBJECT o_alv1
EXPORTING
i_parent = o_dock.
SET HANDLER handle=>handle_double_click FOR o_alv1.
SET HANDLER handle=>on_toolbar FOR o_alv1.
SET HANDLER handle=>on_user_command FOR o_alv1.
CALL METHOD o_alv1->set_table_for_first_display
EXPORTING
i_structure_name = 'SPFLI'
CHANGING
it_outtab = it_spfli.
ENDIF.
ENDMODULE. " DISPLAY_ALV OUTPUT
*-----------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*------------------------------------------------------------*
FORM build_fieldcat .
is_fcat-col_pos = 1.
is_fcat-fieldname = 'CARRID'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-scrtext_l = 'CARRID'.
is_fcat-key = 'X'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 1.
is_fcat-fieldname = 'CONNID'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-key = 'X'.
is_fcat-scrtext_l = 'CONNID'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 3.
is_fcat-fieldname = 'FLDATE'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-key = 'X'.
is_fcat-scrtext_l = 'FLDATE'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 4.
is_fcat-fieldname = 'PRICE'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-scrtext_l = 'PRICE'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 5.
is_fcat-fieldname = 'SEATSMAX'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-scrtext_l = 'MAX SEAT'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
is_fcat-col_pos = 6.
is_fcat-fieldname = 'SEATSOCC'.
is_fcat-tabname = 'IT_FLIGHT'.
is_fcat-scrtext_l = 'OCCUPIED SEAT'.
APPEND is_fcat TO it_fcat.
CLEAR is_fcat.
ENDFORM. " BUILD_FIELDCAT
*------------------------------------------------------------*
SCREEN 100 FLOW LOGIC
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 22/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE display_alv.
START-OF-SELECTION.
PERFORM data_fetch.
END-OF-SELECTION.
CALL SCREEN 100.
*-----------------------------------------------------------*
FORM data_fetch .
SELECT * FROM scarr INTO TABLE it_scarr.
IF it_scarr IS NOT INITIAL.
SELECT * FROM spfli INTO TABLE it_spfli
FOR ALL ENTRIES IN it_scarr WHERE carrid = it_scarr-carrid.
IF it_spfli IS NOT INITIAL.
SELECT * FROM sflight INTO TABLE it_flight
FOR ALL ENTRIES IN it_spfli WHERE carrid = it_spfli-carrid
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 23/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
DATA : wa_node TYPE treemsnodt.
DATA : date_text TYPE char10.
CALL METHOD obj_tree->add_node
EXPORTING
node_key = 'ROOT'
isfolder = 'X'
text = 'FLIGHT DETAILS'
expander = 'X'.
LOOP AT it_scarr INTO wa_scarr.
wa_node-node_key = wa_scarr-carrid.
wa_node-text = wa_scarr-carrname.
SEPARATED BY space.
WRITE wa_flight-fldate TO date_text.
wa_node-text = date_text.
CALL METHOD obj_tree->add_node
EXPORTING
node_key = wa_node-node_key
relative_node_key = wa_node-relatkey
relationship = cl_simple_tree_model=>relat_last_child
isfolder = space
text = wa_node-text
expander = space.
ENDLOOP.
ENDFORM. " ADD_NODES
*------------------------------------------------------------*
SCREEN 100 FLOW LOGIC
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 24/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
*-----------------------------------------------------------*
OUTPUT
*-------------------------------------------------------------*
11. OO COLUMNTREE ALV USING CL_COLUMN_TREE_MODEL
TYPE-POOLS : icon.
DATA : it_scarr TYPE SORTED TABLE OF scarr
WITH UNIQUE KEY carrid,
wa_scarr LIKE LINE OF it_scarr,
it_spfli TYPE SORTED TABLE OF spfli
WITH UNIQUE KEY carrid connid,
wa_spfli LIKE LINE OF it_spfli,
it_flight TYPE SORTED TABLE OF sflight
WITH UNIQUE KEY carrid connid fldate,
START-OF-SELECTION.
PERFORM data_fetch.
END-OF-SELECTION.
CALL SCREEN 100.
*----------------------------------------------------------------------*
FORM data_fetch .
SELECT * FROM scarr INTO TABLE it_scarr.
IF it_scarr IS NOT INITIAL.
SELECT * FROM spfli INTO TABLE it_spfli
FOR ALL ENTRIES IN it_scarr WHERE carrid = it_scarr-carrid.
IF it_spfli IS NOT INITIAL.
SELECT * FROM sflight INTO TABLE it_flight
FOR ALL ENTRIES IN it_spfli WHERE carrid = it_spfli-carrid
AND connid = it_spfli-connid.
ENDIF.
ENDIF.
ENDFORM. " DATA_FETCH
*-------------------------------------------------------------*
MODULE status_0100 OUTPUT.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 25/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
SET PF-STATUS 'STATUS'.
* SET TITLEBAR 'xxx'.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 26/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
text4 type char40.
PERFORM fill_item_table USING 'FLIGHTS'
space
space
space
space
CHANGING it_item.
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 27/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
write wa_flight-fldate to text2.
write wa_flight-price to text3 currency wa_flight-currency.
if wa_flight-seatsmax >= wa_flight-seatsocc.
text4 = wa_flight-seatsmax - wa_flight-seatsocc.
endif.
wa_item-class = cl_column_tree_model=>item_class_text.
wa_item-item_name = 'MAIN'.
wa_item-text = p_space1.
INSERT wa_item INTO TABLE it_item.
wa_item-item_name = 'PRICE'.
wa_item-text = p_space2.
INSERT wa_item INTO TABLE it_item.
wa_item-item_name = 'CURRENCY'.
wa_item-text = p_space3.
INSERT wa_item INTO TABLE it_item.
wa_item-item_name = 'PLANETYPE'.
wa_item-text = p_space4.
INSERT wa_item INTO TABLE it_item.
wa_item-item_name = 'ICON'.
IF NOT p_space5 IS INITIAL.
IF p_space5 CO ' 0'.
wa_item-t_image = icon_red_light.
ELSE.
wa_item-t_image = icon_green_light.
ENDIF.
CLEAR wa_item-text.
INSERT wa_item INTO TABLE it_item.
ENDIF.
wa_item-item_name = 'SEATSFREE'.
wa_item-text = p_space5.
wa_item-t_image = space.
INSERT wa_item INTO TABLE it_item.
ENDFORM. " FILL_ITEM_TABLE
*------------------------------------------------------------*
SCREEN 100 FLOW LOGIC
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 28/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE container_processing.
MODULE columntree_processing.
*-------------------------------------------------------------*
OUTPUT
*---------------------------------------------------------------------
-------------------------------------*
at 07:15:00
6 comments:
Unknown said...
Very useful info with almost all required ALV functionalities
5 August 2013 at 04:02
Unknown said...
Superb Notes its very useful.
29 September 2013 at 00:17
Unknown said...
excellent blog
28 February 2014 at 04:09
Unknown said...
Very useful and easy to understand.
9 April 2014 at 06:35
Sudharshan said...
It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful
to me...
http://chennaitraining.in/sap-mm-training-in-chennai/
http://chennaitraining.in/sap-mss-training-in-chennai/
http://chennaitraining.in/sap-pi-training-in-chennai/
http://chennaitraining.in/sap-pm-training-in-chennai/
http://chennaitraining.in/sap-pp-training-in-chennai/
http://chennaitraining.in/sap-ps-training-in-chennai/
http://chennaitraining.in/sap-qm-training-in-chennai/
20 April 2020 at 00:57
Unknown said...
Two Stones Is Top Web Design Company In Coimbatore India Crafting Static And CMS
Websites In Html, Wordpress Website Design Coimbatore With User Experience To Generate
Website Leads In Coimbatore
Website Design Coimbatore
Two Stone Is Leading SEO Companies In Coimbatore India, Providing Best Search Engine
Optimization Service In Coimbatore. SEM & SEO Service Provider In Coimbatore
SEO Company In Coimbatore
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 29/30
7/7/22, 3:47 PM TECHSAP : OO ALV WITH CONTAINERS
Two Stones, A Leading Digital Marketing Company In Coimbatore, Digital Marketing Agency
& Expertised In SEO, Branding, SMO, PPC, SMM (Social Media Marketing), SEM (Search
Engine Marketing) In Coimbatore India, Best Digital Marketing Companies In Coimbatore
Digital Marketing Company In Coimbatore
Post a Comment
Comments system
Disqus Shortname
freesapabap.blogspot.com/2012/06/oo-alv-with-containers.html 30/30