2007 May 09 9:45 AM
CAN ANY BODY GIVE ME THE REAL TIME OBJECTS IN ALV PROGRAMMING
N ALSO THE OBJECT ORIENTED ALVS
2007 May 09 9:53 AM
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
2007 May 09 9:48 AM
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.
2007 May 09 9:51 AM
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
2007 May 10 7:24 AM
2007 May 09 9:53 AM
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.
2007 May 09 9:53 AM
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
2007 May 09 10:06 AM
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.
2007 May 09 10:10 AM
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>
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |