Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV

Former Member
0 Likes
952

CAN ANY BODY GIVE ME THE REAL TIME OBJECTS IN ALV PROGRAMMING

N ALSO THE OBJECT ORIENTED ALVS

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
920

Hi Satya,

<b>

Here is the program ALV :

Just copy and paste and execute this program.........</b>

CLASS lcl_event_handler DEFINITION DEFERRED.

*class class_button_click definition deferred.

*-- Global data definitions for ALV

*--- ALV Grid instance reference

DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .

*--- Name of the custom control added on the screen

DATA gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.

*--- Custom container instance reference

DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .

*--- Field catalog table

DATA gt_fieldcat TYPE lvc_t_fcat .

*--- Layout structure

DATA gs_layout TYPE lvc_s_layo .

*****************************************NEW

DATA:

new_cell_tab TYPE lvc_t_styl,

l_index TYPE i.

*****************************************NEW

DATA event_click TYPE REF TO lcl_event_handler.

*data instance_button TYPE REF TO class_button_click.

*--- Internal table holding list data

DATA BEGIN OF gt_list OCCURS 0 .

DATA sflight TYPE sflight.

DATA cell_tab TYPE lvc_t_styl.

DATA timepass(6) TYPE c.

DATA END OF gt_list .

DATA: w_temp TYPE i,

wa like sflight,

wa1 type table of lvc_s_scol with header line.

CALL SCREEN 202.

----


  • CLASS lcl_event_handler DEFINITION

----


*

----


CLASS lcl_event_handler DEFINITION .

PUBLIC SECTION .

METHODS:

handle_double_click

FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row e_column.

ENDCLASS. "lcl_event_handler DEFINITION

----


  • CLASS lcl_event_handler IMPLEMENTATION

----


*

----


CLASS lcl_event_handler IMPLEMENTATION .

  • Handle Double Click

METHOD handle_double_click .

  • PERFORM handle_double_click USING e_row e_column es_row_no.

IF e_row-index IS NOT INITIAL.

CALL TRANSACTION 'SE11'.

ENDIF.

ENDMETHOD. "handle_double_click

ENDCLASS. "lcl_event_handler IMPLEMENTATION

----


  • MODULE DISPLAY_ALV_GRID OUTPUT

----


*

----


MODULE display_alv_grid OUTPUT.

PERFORM display_alv_grid.

create object event_click.

set handler event_click->handle_double_click for GR_ALVGRID.

ENDMODULE. " display_alv_grid OUTPUT

&----


*& Form display_alv_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_alv_grid .

**********************************************NEW

IF gr_alvgrid IS INITIAL .

**********************************************NEW

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.

  • --Exception handling

ENDIF.

  • ----Creating ALV Grid instance

CREATE OBJECT gr_alvgrid

EXPORTING

i_parent = gr_ccontainer

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

OTHERS = 5.

IF sy-subrc <> 0.

  • --Exception handling

ENDIF.

PERFORM select_data.

  • ----Preparing field catalog.

********************************************NEW

PERFORM prepare_field_catalog CHANGING gt_fieldcat .

********************************************NEW

  • ----Preparing layout structure

PERFORM prepare_layout CHANGING gs_layout .

  • ----Here will be additional preparations

*--e.g. initial sorting criteria, initial filtering criteria, excluding

  • --functions

CALL METHOD gr_alvgrid->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_CONSISTENCY_CHECK =

********************************************NEW

  • I_STRUCTURE_NAME = 'SFLIGHT'

********************************************NEW

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = gs_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

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.

  • --Exception handling

ENDIF.

**********************************************NEW

  • ELSE.

  • CALL METHOD GR_ALVGRID->REFRESH_TABLE_DISPLAY

    • EXPORTING

    • IS_STABLE =

    • I_SOFT_REFRESH =

  • EXCEPTIONS

  • FINISHED = 1

  • OTHERS = 2 .

  • IF SY-SUBRC <> 0.

    • --Exception handling

  • ENDIF.

ENDIF .

**********************************************NEW

ENDFORM. " display_alv_grid

&----


*& Form prepare_field_catalog

&----


  • text

----


  • -->PT_FIELDCATtext

----


FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat .

DATA ls_fcat TYPE lvc_s_fcat .

ls_fcat-fieldname = 'SFLIGHT-CARRID' .

ls_fcat-inttype = 'C' .

ls_fcat-outputlen = '8' .

ls_fcat-coltext = 'Carrier ID' .

ls_fcat-seltext = 'Carrier ID' .

APPEND ls_fcat TO pt_fieldcat .

CLEAR ls_fcat .

ls_fcat-fieldname = 'SFLIGHT-CONNID' .

ls_fcat-ref_table = 'SFLIGHT' .

ls_fcat-ref_table = 'CONNID' .

ls_fcat-emphasize = 'C411'.

  • LS_FCAT-HOTSPOT = 'X'.

ls_fcat-outputlen = '8' .

ls_fcat-coltext = 'Connection ID' .

ls_fcat-seltext = 'Connection ID' .

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'SFLIGHT-FLDATE'.

ls_fcat-ref_table = 'SFLIGHT'.

ls_fcat-inttype = 'D'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'FLIGHTDATE'.

ls_fcat-seltext = 'FLDATE'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'SFLIGHT-PRICE'.

ls_fcat-ref_table = 'SFLIGHT'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'PRICE'.

ls_fcat-seltext = 'PRICE'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'SFLIGHT-CURRENCY'.

ls_fcat-ref_table = 'SFLIGHT'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'CURRENCY'.

ls_fcat-seltext = 'CURRENCY'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'TIMEPASS'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'TIMEPASS'.

ls_fcat-seltext = 'TIMEPASS'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ENDFORM. "prepare_field_catalog

&----


*& Form prepare_layout

&----


  • text

----


  • -->PS_LAYOUT text

----


FORM prepare_layout CHANGING ps_layout TYPE lvc_s_layo.

  • ps_layout-ctab_fname = 'CELL_COLOR'.

ps_layout-stylefname = 'CELL_TAB'.

ENDFORM. " prepare_layout

&----


*& Module USER_COMMAND_0202 INPUT

&----


  • text

----


MODULE user_command_0202 INPUT.

IF sy-ucomm = 'DISPLAY' OR sy-ucomm = 'CELL'.

PERFORM switch_edit_mode.

ELSE.

LEAVE PROGRAM.

ENDIF.

ENDMODULE. " USER_COMMAND_0202 INPUT

&----


*& Module STATUS_0202 OUTPUT

&----


  • text

----


MODULE status_0202 OUTPUT.

SET PF-STATUS 'GUI'.

SET TITLEBAR 'Test'.

ENDMODULE. " STATUS_0202 OUTPUT

&----


*& Form switch_edit_mode

&----


  • text

----


FORM switch_edit_mode.

IF gr_alvgrid->is_ready_for_input( ) EQ 0.

  • set edit enabled cells ready for input

CALL METHOD gr_alvgrid->set_ready_for_input

EXPORTING

i_ready_for_input = 1.

ELSE.

  • lock edit enabled cells against input

CALL METHOD gr_alvgrid->set_ready_for_input

EXPORTING

i_ready_for_input = 0.

ENDIF.

ENDFORM. " SWITCH_EDIT_MODE

&----


*& Form cell_enable

&----


  • text

----


  • -->P_RW text

  • <--P_CELL_COLOR text

----


FORM cell_enable USING p_rw

CHANGING new_cell_tab TYPE lvc_t_styl.

DATA

ls_celltab TYPE lvc_s_styl.

DATA

l_mode TYPE raw4.

IF p_rw = 'RW'.

l_mode = cl_gui_alv_grid=>mc_style_enabled.

ELSE.

l_mode = cl_gui_alv_grid=>mc_style_disabled.

ENDIF.

ls_celltab-fieldname = 'SFLIGHT-CARRID'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-CONNID'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-FLDATE'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-PRICE'.

ls_celltab-style = l_mode.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-CURRENCY'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'TIMEPASS'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ENDFORM. " cell_enable

&----


*& Form select_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select_data.

SELECT *

FROM sflight

INTO CORRESPONDING FIELDS OF wa.

MOVE wa TO gt_list-sflight.

APPEND gt_list.

ENDSELECT.

*****************************************NEW

LOOP AT gt_list.

l_index = sy-tabix.

REFRESH new_cell_tab.

IF gt_list-sflight-connid = '3577'.

PERFORM cell_enable USING 'RW'

CHANGING new_cell_tab.

ELSE.

PERFORM cell_enable USING 'RO'

CHANGING new_cell_tab.

ENDIF.

INSERT LINES OF new_cell_tab INTO TABLE gt_list-cell_tab.

MODIFY gt_list INDEX l_index.

ENDLOOP.

ENDFORM. " select_data

<b>

Reward all helpful answers.</b>

Regards,

V.Raghavender.

CAN ANY BODY GIVE ME THE REAL TIME OBJECTS IN ALV PROGRAMMING

N ALSO THE OBJECT ORIENTED ALVS

7 REPLIES 7
Read only

Former Member
0 Likes
920

Hi Satya,

Find them in WIKI COSE SNIPPETS.

90% of them are mere a real time scenario objects.

U Will get enough stuff to persue in Code snippet gallery in WIKI-SDN.

Thanks.

Reward If found Helpful.

Read only

former_member196299
Active Contributor
0 Likes
920

hi ,

Bwloe is the code for an interactive ALV with OO ABAP programming concepts .

REPORT ZTEST_ALV123.

TYPE-POOLS:SLIS.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,

VBELN LIKE LIKP-VBELN,

POSNR LIKE LIPS-POSNR,

VGBEL LIKE LIPS-VGBEL,

VGPOS LIKE LIPS-VGPOS,

END OF ITAB1.

DATA: IT_LIPS LIKE ITAB1 OCCURS 0 WITH HEADER LINE.

SELECT VBELN

POSNR

FROM VBAP

INTO TABLE ITAB.

IF SY-SUBRC = 0.

SORT ITAB BY VBELN .

SELECT VBELN

POSNR

VGBEL

VGPOS

INTO TABLE ITAB1

FROM LIPS

FOR ALL ENTRIES IN ITAB

WHERE VGBEL = ITAB-VBELN

AND VGPOS = ITAB-POSNR.

ENDIF.

DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'PFSTATUS'

I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = ITAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC = 0.

ENDIF.

&----


*& Form POPUP

&----


  • text

----


  • -->P_EXTAB text

----


FORM POPUP USING P_EXTAB TYPE SLIS_T_EXTAB.

"here double click on PFSTATUS and create the status, "activate, before that set PICK for choose(F2).

*- Pf status

SET PF-STATUS 'PFSTATUS'.

ENDFORM. " POPUP

&----


*& Form HANDLE_USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.

LOOP AT ITAB1 WHERE VGBEL = ITAB-VBELN

AND VGPOS = ITAB-POSNR.

MOVE-CORRESPONDING ITAB1 TO IT_LIPS.

APPEND IT_LIPS.

ENDLOOP.

PERFORM INTERACTIVE_REPORT.

ENDIF.

ENDCASE.

ENDFORM. "HANDLE_USER_COMMAND

&----


*& Form interactive_report

&----


  • text

----


FORM INTERACTIVE_REPORT .

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-SELTEXT_L = 'VBELN'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-SELTEXT_L = 'ITEM'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 2.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VGBEL'.

X_FIELDCAT-SELTEXT_M = 'SO #'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VGPOS'.

X_FIELDCAT-SELTEXT_M = 'SO ITEM'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 4.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IT_FIELDCAT = IT_FIELDCAT1

TABLES

T_OUTTAB = IT_LIPS

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC = 0.

ENDIF.

ENDFORM. " interactive_report

Give your email id , I'll send some sample codes based on ALVs ...

Regards,

Ranjita

Read only

0 Likes
920

hi ranjita

[email protected]

is my mail id

i hope u will send me some real time alv rpograms

Read only

Former Member
0 Likes
921

Hi Satya,

<b>

Here is the program ALV :

Just copy and paste and execute this program.........</b>

CLASS lcl_event_handler DEFINITION DEFERRED.

*class class_button_click definition deferred.

*-- Global data definitions for ALV

*--- ALV Grid instance reference

DATA gr_alvgrid TYPE REF TO cl_gui_alv_grid .

*--- Name of the custom control added on the screen

DATA gc_custom_control_name TYPE scrfname VALUE 'CC_ALV'.

*--- Custom container instance reference

DATA gr_ccontainer TYPE REF TO cl_gui_custom_container .

*--- Field catalog table

DATA gt_fieldcat TYPE lvc_t_fcat .

*--- Layout structure

DATA gs_layout TYPE lvc_s_layo .

*****************************************NEW

DATA:

new_cell_tab TYPE lvc_t_styl,

l_index TYPE i.

*****************************************NEW

DATA event_click TYPE REF TO lcl_event_handler.

*data instance_button TYPE REF TO class_button_click.

*--- Internal table holding list data

DATA BEGIN OF gt_list OCCURS 0 .

DATA sflight TYPE sflight.

DATA cell_tab TYPE lvc_t_styl.

DATA timepass(6) TYPE c.

DATA END OF gt_list .

DATA: w_temp TYPE i,

wa like sflight,

wa1 type table of lvc_s_scol with header line.

CALL SCREEN 202.

----


  • CLASS lcl_event_handler DEFINITION

----


*

----


CLASS lcl_event_handler DEFINITION .

PUBLIC SECTION .

METHODS:

handle_double_click

FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row e_column.

ENDCLASS. "lcl_event_handler DEFINITION

----


  • CLASS lcl_event_handler IMPLEMENTATION

----


*

----


CLASS lcl_event_handler IMPLEMENTATION .

  • Handle Double Click

METHOD handle_double_click .

  • PERFORM handle_double_click USING e_row e_column es_row_no.

IF e_row-index IS NOT INITIAL.

CALL TRANSACTION 'SE11'.

ENDIF.

ENDMETHOD. "handle_double_click

ENDCLASS. "lcl_event_handler IMPLEMENTATION

----


  • MODULE DISPLAY_ALV_GRID OUTPUT

----


*

----


MODULE display_alv_grid OUTPUT.

PERFORM display_alv_grid.

create object event_click.

set handler event_click->handle_double_click for GR_ALVGRID.

ENDMODULE. " display_alv_grid OUTPUT

&----


*& Form display_alv_grid

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM display_alv_grid .

**********************************************NEW

IF gr_alvgrid IS INITIAL .

**********************************************NEW

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.

  • --Exception handling

ENDIF.

  • ----Creating ALV Grid instance

CREATE OBJECT gr_alvgrid

EXPORTING

i_parent = gr_ccontainer

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

OTHERS = 5.

IF sy-subrc <> 0.

  • --Exception handling

ENDIF.

PERFORM select_data.

  • ----Preparing field catalog.

********************************************NEW

PERFORM prepare_field_catalog CHANGING gt_fieldcat .

********************************************NEW

  • ----Preparing layout structure

PERFORM prepare_layout CHANGING gs_layout .

  • ----Here will be additional preparations

*--e.g. initial sorting criteria, initial filtering criteria, excluding

  • --functions

CALL METHOD gr_alvgrid->set_table_for_first_display

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_CONSISTENCY_CHECK =

********************************************NEW

  • I_STRUCTURE_NAME = 'SFLIGHT'

********************************************NEW

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

is_layout = gs_layout

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

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.

  • --Exception handling

ENDIF.

**********************************************NEW

  • ELSE.

  • CALL METHOD GR_ALVGRID->REFRESH_TABLE_DISPLAY

    • EXPORTING

    • IS_STABLE =

    • I_SOFT_REFRESH =

  • EXCEPTIONS

  • FINISHED = 1

  • OTHERS = 2 .

  • IF SY-SUBRC <> 0.

    • --Exception handling

  • ENDIF.

ENDIF .

**********************************************NEW

ENDFORM. " display_alv_grid

&----


*& Form prepare_field_catalog

&----


  • text

----


  • -->PT_FIELDCATtext

----


FORM prepare_field_catalog CHANGING pt_fieldcat TYPE lvc_t_fcat .

DATA ls_fcat TYPE lvc_s_fcat .

ls_fcat-fieldname = 'SFLIGHT-CARRID' .

ls_fcat-inttype = 'C' .

ls_fcat-outputlen = '8' .

ls_fcat-coltext = 'Carrier ID' .

ls_fcat-seltext = 'Carrier ID' .

APPEND ls_fcat TO pt_fieldcat .

CLEAR ls_fcat .

ls_fcat-fieldname = 'SFLIGHT-CONNID' .

ls_fcat-ref_table = 'SFLIGHT' .

ls_fcat-ref_table = 'CONNID' .

ls_fcat-emphasize = 'C411'.

  • LS_FCAT-HOTSPOT = 'X'.

ls_fcat-outputlen = '8' .

ls_fcat-coltext = 'Connection ID' .

ls_fcat-seltext = 'Connection ID' .

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'SFLIGHT-FLDATE'.

ls_fcat-ref_table = 'SFLIGHT'.

ls_fcat-inttype = 'D'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'FLIGHTDATE'.

ls_fcat-seltext = 'FLDATE'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'SFLIGHT-PRICE'.

ls_fcat-ref_table = 'SFLIGHT'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'PRICE'.

ls_fcat-seltext = 'PRICE'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'SFLIGHT-CURRENCY'.

ls_fcat-ref_table = 'SFLIGHT'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'CURRENCY'.

ls_fcat-seltext = 'CURRENCY'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ls_fcat-fieldname = 'TIMEPASS'.

ls_fcat-inttype = 'P'.

ls_fcat-outputlen = '10'.

ls_fcat-coltext = 'TIMEPASS'.

ls_fcat-seltext = 'TIMEPASS'.

APPEND ls_fcat TO pt_fieldcat.

CLEAR ls_fcat.

ENDFORM. "prepare_field_catalog

&----


*& Form prepare_layout

&----


  • text

----


  • -->PS_LAYOUT text

----


FORM prepare_layout CHANGING ps_layout TYPE lvc_s_layo.

  • ps_layout-ctab_fname = 'CELL_COLOR'.

ps_layout-stylefname = 'CELL_TAB'.

ENDFORM. " prepare_layout

&----


*& Module USER_COMMAND_0202 INPUT

&----


  • text

----


MODULE user_command_0202 INPUT.

IF sy-ucomm = 'DISPLAY' OR sy-ucomm = 'CELL'.

PERFORM switch_edit_mode.

ELSE.

LEAVE PROGRAM.

ENDIF.

ENDMODULE. " USER_COMMAND_0202 INPUT

&----


*& Module STATUS_0202 OUTPUT

&----


  • text

----


MODULE status_0202 OUTPUT.

SET PF-STATUS 'GUI'.

SET TITLEBAR 'Test'.

ENDMODULE. " STATUS_0202 OUTPUT

&----


*& Form switch_edit_mode

&----


  • text

----


FORM switch_edit_mode.

IF gr_alvgrid->is_ready_for_input( ) EQ 0.

  • set edit enabled cells ready for input

CALL METHOD gr_alvgrid->set_ready_for_input

EXPORTING

i_ready_for_input = 1.

ELSE.

  • lock edit enabled cells against input

CALL METHOD gr_alvgrid->set_ready_for_input

EXPORTING

i_ready_for_input = 0.

ENDIF.

ENDFORM. " SWITCH_EDIT_MODE

&----


*& Form cell_enable

&----


  • text

----


  • -->P_RW text

  • <--P_CELL_COLOR text

----


FORM cell_enable USING p_rw

CHANGING new_cell_tab TYPE lvc_t_styl.

DATA

ls_celltab TYPE lvc_s_styl.

DATA

l_mode TYPE raw4.

IF p_rw = 'RW'.

l_mode = cl_gui_alv_grid=>mc_style_enabled.

ELSE.

l_mode = cl_gui_alv_grid=>mc_style_disabled.

ENDIF.

ls_celltab-fieldname = 'SFLIGHT-CARRID'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-CONNID'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-FLDATE'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-PRICE'.

ls_celltab-style = l_mode.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'SFLIGHT-CURRENCY'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ls_celltab-fieldname = 'TIMEPASS'.

ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_celltab INTO TABLE new_cell_tab.

ENDFORM. " cell_enable

&----


*& Form select_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select_data.

SELECT *

FROM sflight

INTO CORRESPONDING FIELDS OF wa.

MOVE wa TO gt_list-sflight.

APPEND gt_list.

ENDSELECT.

*****************************************NEW

LOOP AT gt_list.

l_index = sy-tabix.

REFRESH new_cell_tab.

IF gt_list-sflight-connid = '3577'.

PERFORM cell_enable USING 'RW'

CHANGING new_cell_tab.

ELSE.

PERFORM cell_enable USING 'RO'

CHANGING new_cell_tab.

ENDIF.

INSERT LINES OF new_cell_tab INTO TABLE gt_list-cell_tab.

MODIFY gt_list INDEX l_index.

ENDLOOP.

ENDFORM. " select_data

<b>

Reward all helpful answers.</b>

Regards,

V.Raghavender.

Read only

Former Member
0 Likes
920

hi,

Check this.

&----


*& Report ZTEST_REPORT *

*& *

&----


*& *

*& *

&----


REPORT ZTEST_REPORT.

type-pools : slis.

tables : vbap.

DATA : ok_code LIKE sy-ucomm,

g_grid TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container.

DATA: gt_fieldcat1 type lvc_t_fcat,

gs_fieldcat1 like line of gt_fieldcat1.

DATA : BEGIN OF IT_VBAP OCCURS 0,

VBELN TYPE VBAP-VBELN,

POSNR TYPE VBAP-POSNR,

MATNR TYPE VBAP-MATNR,

ARKTX TYPE VBAP-ARKTX,

MEINS TYPE VBAP-MEINS,

ERDAT TYPE VBAK-ERDAT,

ERNAM TYPE VBAK-ERNAM,

VKORG TYPE VBAK-VKORG,

END OF IT_VBAP.

*DATA : IT_vbap type STANDARD TABLE OF VBAP.

SELECTION-SCREEN : BEGIN OF BLOCK A.

SELECT-OPTIONS : S_vbeln FOR vbap-vbeln.

SELECTION-SCREEN :END OF BLOCK A.

START-OF-SELECTION.

select VBAP~vbeln

VBAP~posnr

VBAP~matnr

VBAP~matkl

VBAP~arktx

VBAP~meins

VBAK~ERDAT

VBAK~ERNAM

VBAK~VKORG

from vbap INNER JOIN VBAK ON VBAPVBELN = VBAKVBELN

into

corresponding fields of table it_vbap where VBAP~vbeln in

s_vbeln.

set screen 100.

PERFORM fld_cat.

IF g_custom_container is INITIAL.

endif.

*&----


*

*& Module STATUS_0100 OUTPUT

*&----


*

  • text

*----


*

MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'STATUS'.

CREATE OBJECT G_CUSTOM_CONTAINER

EXPORTING

CONTAINER_NAME = 'G_CUSTOM_CONTROL'

.

CREATE OBJECT G_GRID

EXPORTING

I_PARENT = G_CUSTOM_CONTAINER.

CALL METHOD G_GRID->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 =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

IT_OUTTAB = it_vbap[]

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.

ENDMODULE. " STATUS_0100 OUTPUT

*&----


*

*& Module USER_COMMAND_0100 INPUT

*&----


*

  • text

*----


*

MODULE USER_COMMAND_0100 INPUT.

case ok_code.

WHEN 'CANCEL'.

LEAVE PROGRAM.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form fld_cat

&----


  • text

----


FORM fld_cat.

gs_fieldcat1-fieldname = 'VBELN'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Sales Document Number'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'POSNR'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Item'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'MATNR'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Material Number'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'MATKL'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Material Group'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'ARKTX'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Description'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'MEINS'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Base Unit'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'ERDAT'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Record Date'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'ERNAM'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Name Of The Person'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'VKORG'.

gs_fieldcat1-tabname = 'IT_VBAP'.

gs_fieldcat1-reptext = 'Sales Organization'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

ENDFORM. "fld_cat

REWARD IF USEFUL

Read only

Former Member
0 Likes
920

hi satya,

if u have ides system,

then just try this,

go to transcatoin code 'libs' where u can see all types of alv reports sample code and output.

or

go to se38 ->

environment ->

examples, here u can find alv reports with codes and outputs.

regards...

seshu.

Read only

Former Member
0 Likes
920

Hi,

This is the exmaple for OOPS alv.... You just have to create a container going to module pool transaction.. and give it the name as in the code.

&----


*& Report Z8JAYANT_ALV_OOPS_TESTING *

*& *

&----


*& *

*& *

&----


REPORT z8jayant_alv_oops_testing MESSAGE-ID z8jayant.

TABLES: mara.

TYPE-POOLS: slis.

DATA: i_mara TYPE STANDARD TABLE OF z8jay_mat_test.

DATA: ok_code LIKE sy-ucomm,

g_container TYPE scrfname VALUE 'G_CUSTOM_CONTROL',

g_grid TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container.

DATA: it_fieldcat TYPE lvc_t_fcat,

it_sortinfo TYPE lvc_t_sort,

gs_layout TYPE lvc_s_layo.

data: wa_bkpf type belnr.

  • Selection Screen Input Field.

SELECTION-SCREEN BEGIN OF BLOCK oops WITH FRAME TITLE text-101.

PARAMETERS: mat_no LIKE mara-matnr.

SELECTION-SCREEN END OF BLOCK oops.

  • Validation of the Selection Screen.

AT SELECTION-SCREEN.

SELECT matnr INTO TABLE i_mara FROM mara WHERE matnr = mat_no.

IF sy-subrc <> 0.

MESSAGE e001.

ENDIF.

REFRESH i_mara.

CLEAR i_mara.

START-OF-SELECTION.

SELECT matnr pstat INTO TABLE i_mara FROM mara WHERE

matnr = mat_no.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

  • I_BUFFER_ACTIVE =

i_structure_name = 'Z8JAY_MAT_TEST'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_BYPASSING_BUFFER =

  • I_INTERNAL_TABNAME =

CHANGING

ct_fieldcat = it_fieldcat

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL SCREEN 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

IF g_custom_container IS INITIAL.

CREATE OBJECT g_custom_container

EXPORTING container_name = g_container.

CREATE OBJECT g_grid

EXPORTING i_parent = g_custom_container.

CALL METHOD g_grid->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 =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = i_mara

IT_FIELDCATALOG = it_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.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

Regards,

Jayant

<b>Please award if helpful</b>