|
|
|
5 Most Popular Contributions
|
|
|
Home Sample Code ABAP OO Object Oriented ALV-Using two Containers we can display data
|
|
|
|
Object Oriented ALV-Using two Containers we can display data |
|
|
|
|
Written by Srikanth Vadlamani
|
|
Monday, 16 July 2007 |
*&---------------------------------------------------------------------* *& Report Z_OO_ALV *& *&---------------------------------------------------------------------* *& We can Use Two containers in OOALV *& *&---------------------------------------------------------------------*
REPORT z_oo_alv LINE-COUNT 50.
*types gt_struct type sflight.
DATA BEGIN OF gt_struct. INCLUDE STRUCTURE sflight. DATA rcol(4) TYPE c. DATA colors TYPE lvc_t_scol. DATA END OF gt_struct.
*ALV GRIDs
DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid. DATA gr_alvgrid1 TYPE REF TO cl_gui_alv_grid.
DATA gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'. DATA gc_custom_control_name1 TYPE scrfname VALUE 'CC_ALV1'.
*CONTAINERs
DATA gr_ccontainer TYPE REF TO cl_gui_custom_container. DATA gr_ccontainer1 TYPE REF TO cl_gui_custom_container.
*FIELDCATALOGs
DATA gt_fieldcat TYPE lvc_t_fcat WITH HEADER LINE. DATA gt_fieldcat1 TYPE lvc_t_fcat WITH HEADER LINE.
*LAYOUTs
DATA gs_layout TYPE lvc_s_layo. DATA gs_layout1 TYPE lvc_s_layo.
DATA pt_exclude TYPE ui_functions. "internal table declaration to be passed. *DATA pt_cell TYPE lvc_t_cell with header line.
DATA : gt_list LIKE gt_struct OCCURS 50 WITH HEADER LINE, gt_list1 LIKE gt_struct OCCURS 50 WITH HEADER LINE.
*DATA v_ucomm TYPE sy-ucomm.
CALL SCREEN 100.
*&---------------------------------------------------------------------* *& Module display_alv OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE display_alv OUTPUT.
PERFORM display_alv.
ENDMODULE. " display_alv OUTPUT
*&---------------------------------------------------------------------* *& Module PAI INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE pai INPUT. CASE sy-ucomm.
WHEN 'EXIT'. PERFORM exit_program. WHEN 'PICK'. PERFORM cell_info.
ENDCASE.
ENDMODULE. " PAI INPUT
*&---------------------------------------------------------------------* *& Form display_alv *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM display_alv. PERFORM prepare_field_catalog CHANGING gt_fieldcat[]. PERFORM prepare_layout CHANGING gs_layout. PERFORM data_retrival.
IF gr_alvgrid IS INITIAL.
CREATE OBJECT gr_ccontainer
EXPORTING
container_name = gc_custom_control_name
EXCEPTIONS
cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5 OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.
CREATE OBJECT gr_alvgrid EXPORTING * I_SHELLSTYLE = 0 * I_LIFETIME = i_parent = gr_ccontainer * I_APPL_EVENTS = space * I_PARENTDBG = * I_APPLOGPARENT = * I_GRAPHICSPARENT = * I_NAME = * I_FCAT_COMPLETE = SPACE EXCEPTIONS error_cntl_create = 1 error_cntl_init = 2 error_cntl_link = 3 error_dp_create = 4 OTHERS = 5 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
PERFORM exclude_tb_functions CHANGING pt_exclude. PERFORM set_col.
CALL METHOD gr_alvgrid->set_table_for_first_display EXPORTING * I_BUFFER_ACTIVE = * I_BYPASSING_BUFFER = * I_CONSISTENCY_CHECK = * I_STRUCTURE_NAME = * IS_VARIANT = * I_SAVE = * I_DEFAULT = 'X' is_layout = gs_layout * IS_PRINT = * IT_SPECIAL_GROUPS = it_toolbar_excluding = pt_exclude "excluding toolbar functions * IT_HYPERLINK = * IT_ALV_GRAPHICS = * IT_EXCEPT_QINFO = * IR_SALV_ADAPTER = CHANGING it_outtab = gt_list[] it_fieldcatalog = gt_fieldcat[] * IT_SORT = * IT_FILTER = EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
ELSE.
CALL METHOD gr_alvgrid->refresh_table_display * EXPORTING * IS_STABLE = * I_SOFT_REFRESH = EXCEPTIONS finished = 1 OTHERS = 2 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDIF.
PERFORM prepare_field_catalog1 CHANGING gt_fieldcat1[]. PERFORM prepare_layout1 CHANGING gs_layout1. PERFORM data_retrival1.
IF gr_alvgrid1 IS INITIAL.
CREATE OBJECT gr_ccontainer1
EXPORTING
container_name = gc_custom_control_name1
EXCEPTIONS
cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5 OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.
CREATE OBJECT gr_alvgrid1 EXPORTING * I_SHELLSTYLE = 0 * I_LIFETIME = i_parent = gr_ccontainer1 * I_APPL_EVENTS = space * I_PARENTDBG = * I_APPLOGPARENT = * I_GRAPHICSPARENT = * I_NAME = * I_FCAT_COMPLETE = SPACE EXCEPTIONS error_cntl_create = 1 error_cntl_init = 2 error_cntl_link = 3 error_dp_create = 4 OTHERS = 5 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
PERFORM set_col1.
CALL METHOD gr_alvgrid1->set_table_for_first_display EXPORTING * I_BUFFER_ACTIVE = * I_BYPASSING_BUFFER = * I_CONSISTENCY_CHECK = * I_STRUCTURE_NAME = * IS_VARIANT = * I_SAVE = * I_DEFAULT = 'X' is_layout = gs_layout1 * IS_PRINT = * IT_SPECIAL_GROUPS = * IT_TOOLBAR_EXCLUDING = * IT_HYPERLINK = * IT_ALV_GRAPHICS = * IT_EXCEPT_QINFO = * IR_SALV_ADAPTER = CHANGING it_outtab = gt_list1[] it_fieldcatalog = gt_fieldcat1[] * IT_SORT = * IT_FILTER = EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4 . IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
ELSE.
CALL METHOD gr_alvgrid1->refresh_table_display * EXPORTING * IS_STABLE = * I_SOFT_REFRESH = EXCEPTIONS finished = 1 OTHERS = 2 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDIF.
ENDFORM. "display_alv
*&---------------------------------------------------------------------* *& Form prepare_field_catalog *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->GT_FIELDCAT text *----------------------------------------------------------------------* FORM prepare_field_catalog CHANGING pgt_fieldcat TYPE lvc_t_fcat. DATA ls_fieldcat TYPE lvc_s_fcat. ls_fieldcat-tabname = 'gt_list'. ls_fieldcat-fieldname = 'CARRID'. ls_fieldcat-scrtext_m = 'Air line code'. ls_fieldcat-col_pos = 0. ls_fieldcat-outputlen = 10. * ls_fieldcat-emphasize = 'C400'. * ls_fieldcat-key = 'X'. APPEND ls_fieldcat TO pgt_fieldcat.
ls_fieldcat-tabname = 'gt_list'. ls_fieldcat-col_pos = 1. ls_fieldcat-fieldname = 'CONNID'. ls_fieldcat-scrtext_m = 'Connection code'. * ls_fieldcat-emphasize = 'C900'. APPEND ls_fieldcat TO pgt_fieldcat.
ls_fieldcat-tabname = 'gt_list'. ls_fieldcat-fieldname = 'PRICE'. ls_fieldcat-scrtext_m = 'PRICE'. APPEND ls_fieldcat TO pgt_fieldcat.
ENDFORM. "prepare_field_catalog
*&---------------------------------------------------------------------* *& Form prepare_layout *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->GS_LAYOUT text *----------------------------------------------------------------------* FORM prepare_layout CHANGING gs_layout TYPE lvc_s_layo.
gs_layout-stylefname = 'FIELD_STYLE'. gs_layout-zebra = 'X'. gs_layout-grid_title = 'FLIGHT'. gs_layout-sel_mode = 'A'. gs_layout-ctab_fname = 'COLORS'.
ENDFORM. "prepare_layout
*&---------------------------------------------------------------------* *& Form data_retrival *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM data_retrival. SELECT carrid connid price FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_list UP TO 50 ROWS. ENDFORM. "data_retrival
*---------------------------------------------------------------------* * FORM EXIT_PROGRAM * *---------------------------------------------------------------------* FORM exit_program. CALL METHOD gr_ccontainer->free. CALL METHOD gr_ccontainer1->free. LEAVE TO SCREEN 0. ENDFORM. "exit_program *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_0100 OUTPUT. SET PF-STATUS 'STAT'. * SET TITLEBAR 'xxx'.
* IF W_CUSTOM_CONTAINER IS INITIAL. * **sets TITLEBAR * PERFORM TITLEBAR.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------* *& Form prepare_field_catalog1 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->GT_FIELDCAT text *----------------------------------------------------------------------* FORM prepare_field_catalog1 CHANGING pgt_fieldcat1 TYPE lvc_t_fcat. DATA ls_fieldcat TYPE lvc_s_fcat. ls_fieldcat-tabname = 'gt_list1'. ls_fieldcat-fieldname = 'SEATSMAX'. ls_fieldcat-scrtext_m = 'MAX. SEATS'. ls_fieldcat-col_pos = 0. ls_fieldcat-outputlen = 10. * ls_fieldcat-emphasize = 'C400'. * ls_fieldcat-key = ' '. APPEND ls_fieldcat TO pgt_fieldcat1.
ls_fieldcat-tabname = 'gt_list1'. ls_fieldcat-col_pos = 1. ls_fieldcat-fieldname = 'SEATSOCC'. ls_fieldcat-scrtext_m = 'SEATS OCCUPIED'. APPEND ls_fieldcat TO pgt_fieldcat1.
ENDFORM. "prepare_field_catalog
*&---------------------------------------------------------------------* *& Form prepare_layout1 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->GS_LAYOUT text *----------------------------------------------------------------------* FORM prepare_layout1 CHANGING gs_layout1 TYPE lvc_s_layo.
gs_layout1-stylefname = 'FIELD_STYLE'. gs_layout1-zebra = 'X'. gs_layout1-grid_title = 'DETAILS'. * gs_layout-sel_mode = 'C'. gs_layout1-info_fname = 'RCOL'. * gs_layout-no_toolbar = 'X'.
ENDFORM. "prepare_layout
*&---------------------------------------------------------------------* *& Form data_retrival1 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM data_retrival1. SELECT seatsmax seatsocc FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_list1 UP TO 50 ROWS. ENDFORM. "data_retrival
*&---------------------------------------------------------------------* *& Form exclude_tb_functions *&---- subroutine to exclude toolbar options --------------------------* * text *----------------------------------------------------------------------* * -->PT_EXCLUDE text *----------------------------------------------------------------------* FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
DATA ls_exclude TYPE ui_func.
ls_exclude = cl_gui_alv_grid=>mc_fc_maximum. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_minimum. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_subtot. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sort. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sum. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_subtot. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_sum. APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_filter. APPEND ls_exclude TO pt_exclude.
ENDFORM. "data_retrival1
*&---------------------------------------------------------------------* *& Form cell_info *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM cell_info. "CHANGING pt_cell TYPE lvc_t_cell. DATA lt_cell TYPE lvc_t_cell WITH HEADER LINE. CALL METHOD gr_alvgrid->get_selected_cells IMPORTING et_cell = lt_cell[]. LOOP AT lt_cell. WRITE : lt_cell-col_id , lt_cell-row_id. ENDLOOP. * MODIFY pt_cell[] from lt_cell[]. ENDFORM. "cell_info
*&---------------------------------------------------------------------* *& Form set_col *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM set_col .
DATA ls_cellcolor TYPE lvc_s_scol.
LOOP AT gt_list. IF gt_list-price GT 500. ls_cellcolor-fname = 'PRICE'. ls_cellcolor-color-col = 5. ls_cellcolor-color-int = 1. ls_cellcolor-color-inv = 0. APPEND ls_cellcolor TO gt_list-colors. else. ls_cellcolor-fname = 'PRICE'. ls_cellcolor-color-col = 3. ls_cellcolor-color-int = 1. APPEND ls_cellcolor TO gt_list-colors.
ENDIF. MODIFY gt_list. ENDLOOP.
ENDFORM. "set_col
*&---------------------------------------------------------------------* *& Form set_col1 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM set_col1. data : ind type sy-tabix, indx type sy-tabix. loop at gt_list1. ind = sy-tabix / 2. indx = sy-tabix - ind. if indx eq ind. gt_list1-rcol = 'C500'. endif. MODIFY gt_list1. endloop.
ENDFORM. "set_col
*FORM TITLEBAR. *SET TITLEBAR 'TITLE'. *ENDFORM.
*double click on TITLE and write ur title
Related Items:
|
|