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

abap reports

Former Member
0 Likes
552

WHAT R THE EVENT AVAILABLE IN ALV REPORTS?HOW CAN WE ADD THE PUSH BUTTONS IN ALVS & HOW CAN WE HIDE THE PUSH BUTTONS IN ALVS?

WHAT R THE EVENT AVAILABLE IN ALV REPORTS?HOW CAN WE ADD THE PUSH BUTTONS IN ALVS & HOW CAN WE HIDE THE PUSH BUTTONS IN ALVS?

2 REPLIES 2
Read only

Former Member
0 Likes
524

Hi,

What are the events in alvs and which events not used in alvs?

Events in alv and their FM The main events in alv and their FM and why we use these:

1. SLIS_PRINT_ALV.

2. SLIS_T_LISTHEADER.

3. SLIS_T_EVENT.

4. SLIS_T_SORTINFO_ALV.

5. SLIS_T_LAYOUT_ALV.

6. SLIS_T_FIELDCAT_ALV.

and in classic reports what is the sequence of events: === Events are

At selection-screen output.

Initialization.

At selection-screen on field

At selection-screen on end of field

At selection-screen on Radiobutton Group R1. (If you have any radio buttons)

At selection-screen on block b1. (If you have any blocks)

Start-of-selection.

Get node. (if the data is retreived from a logical database)

Get node late. (if the data is retreived from a logical database)

Top-of-page. (if the write statement is in the end-of-selection event or we can say that before the first write statement)

end-of-selection.

and fuction modules are

LISTHEADER - Is used to print the header information in the ALV List. Name, Date, Time, ALV Name and other details are called as Header information. EVENT - Basically this is the FM to handle Event's. When the user needs to do some event operation like when double clicking the a particular field we need to perform some operation. These events are captured by this FM. LAYOUT - This FM is used to define the layout of the List. There are many options available in this FM to define the Layout style. FIELDCAT - These are used to populate the List header. We can change them according to our req.

User-defined Text Output Event

Application

print_end_of_list

Define output text to be printed at the end of the entire list

print_top_of_list

Define output text to be printed at the beginning of the entire list

print_end_of_page

Define output text to be printed at the end of each page

print_top_of_page

Define output text to be printed at the beginning of each page

subtotal_text

Define self-defined subtotals texts

Mouse-controlled Actions in the Grid Control Event

Application

button_click

Query a click on a pushbutton in the ALV Grid Control

double_click

Query a double-click on a cell of the ALV Grid control

hotspot_click

Query a hotspot click on columns defined for this purpose in advance

onDrag

Collect information when elements of the ALV Grid Control are dragged

onDrop

Process information when elements of the ALV Grid Control are dropped

onDropComplete

Perform final actions after successful Drag&Drop

onDropGetFlavor

Distinguish between options for Drag&Drop behavior

Processing of Self-defined and Standard Functions Event

Application

before_user_command

Query self-defined and standard function codes

user_command

Query self-defined function codes

after_user_command

Query self-defined and standard function codes

Definition of Self-defined Functions Event

Application

toolbar

Change, delete or add GUI elements in the toolbar

menu_button

Define menus for menu buttons in the toolbar

context_menu_request

Change context menu

onf1

Define self-defined F1 help

All of these can be found under type group SLIS.

  • Events

SLIS_EV_ITEM_DATA_EXPAND TYPE SLIS_FORMNAME VALUE 'ITEM_DATA_EXPAND',

SLIS_EV_REPREP_SEL_MODIFY TYPE SLIS_FORMNAME VALUE 'REPREP_SEL_MODIFY', SLIS_EV_CALLER_EXIT_AT_START TYPE SLIS_FORMNAME VALUE 'CALLER_EXIT',

SLIS_EV_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',

SLIS_EV_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

SLIS_EV_DATA_CHANGED TYPE SLIS_FORMNAME VALUE 'DATA_CHANGED',

SLIS_EV_TOP_OF_COVERPAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_COVERPAGE',

SLIS_EV_END_OF_COVERPAGE TYPE SLIS_FORMNAME VALUE 'END_OF_COVERPAGE',

SLIS_EV_FOREIGN_TOP_OF_PAGE TYPE SLIS_FORMNAME

VALUE 'FOREIGN_TOP_OF_PAGE', SLIS_EV_FOREIGN_END_OF_PAGE TYPE SLIS_FORMNAME

VALUE 'FOREIGN_END_OF_PAGE',

SLIS_EV_PF_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',

SLIS_EV_LIST_MODIFY TYPE SLIS_FORMNAME VALUE 'LIST_MODIFY',

SLIS_EV_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',

SLIS_EV_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',

SLIS_EV_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',

SLIS_EV_AFTER_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE 'AFTER_LINE_OUTPUT', SLIS_EV_BEFORE_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE 'BEFORE_LINE_OUTPUT',

SLIS_EV_SUBTOTAL_TEXT TYPE SLIS_FORMNAME VALUE 'SUBTOTAL_TEXT'.

<b>

radio buttons in alv</b>

Here is a sample program that simulates radio buttons by using icons with hotspots.

PROGRAM ZUS_SDN_BCALV_GRID_DEMO_2.

  • Based on: BCALV_GRID_DEMO.

TYPE-POOLS: icon.

TYPES: BEGIN OF ty_s_sflight.

INCLUDE TYPE sflight.

TYPES: button1 TYPE lvc_emphsz.

TYPES: button2 TYPE lvc_emphsz.

TYPES: button3 TYPE lvc_emphsz.

TYPES: button4 TYPE lvc_emphsz.

TYPES: END OF ty_s_sflight.

DATA:

gt_sflight TYPE STANDARD TABLE OF ty_s_sflight,

gt_fcat TYPE lvc_t_fcat.

DATA: ok_code LIKE sy-ucomm,

  • gt_sflight TYPE TABLE OF sflight,

g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',

grid1 TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container.

----


  • CLASS lcl_eventhandler DEFINITION

----


*

----


CLASS lcl_eventhandler DEFINITION.

PUBLIC SECTION.

CLASS-DATA:

md_cnt TYPE i.

CLASS-METHODS:

handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid

IMPORTING

e_row_id

e_column_id

es_row_no

sender.

ENDCLASS. "lcl_eventhandler DEFINITION

----


  • CLASS lcl_eventhandler IMPLEMENTATION

----


*

----


CLASS lcl_eventhandler IMPLEMENTATION.

METHOD handle_hotspot_click.

  • define local data

FIELD-SYMBOLS:

<ls_entry> TYPE ty_s_sflight,

<ld_fld> TYPE ANY.

READ TABLE gt_sflight ASSIGNING <ls_entry> INDEX es_row_no-row_id.

CHECK ( <ls_entry> IS ASSIGNED ).

  • Set all radio buttons "unselected"

<ls_entry>-button1 = icon_wd_radio_button_empty.

<ls_entry>-button2 = icon_wd_radio_button_empty.

<ls_entry>-button3 = icon_wd_radio_button_empty.

<ls_entry>-button4 = icon_wd_radio_button_empty.

ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE <ls_entry>

TO <ld_fld>.

IF ( <ld_fld> IS ASSIGNED ).

  • Set selected radio button "selected".

<ld_fld> = icon_wd_radio_button.

ENDIF.

  • Force PAI followed by refresh of table display in PBO

CALL METHOD cl_gui_cfw=>set_new_ok_code

EXPORTING

new_code = 'DUMMY'

  • IMPORTING

  • RC =

.

ENDMETHOD. "handle_hotspot_click

ENDCLASS. "lcl_eventhandler IMPLEMENTATION

START-OF-SELECTION.

----


  • MAIN *

----


PERFORM select_data.

CALL SCREEN 100.

----


  • MODULE PBO OUTPUT *

----


MODULE pbo OUTPUT.

SET PF-STATUS 'MAIN100'.

IF g_custom_container IS INITIAL.

CREATE OBJECT g_custom_container

EXPORTING container_name = g_container.

CREATE OBJECT grid1

EXPORTING i_parent = g_custom_container.

PERFORM build_fieldcatalog.

CALL METHOD grid1->set_table_for_first_display

  • EXPORTING

  • i_structure_name = 'SFLIGHT'

CHANGING

it_fieldcatalog = gt_fcat

it_outtab = gt_sflight.

  • Set event handler for event TOOLBAR

SET HANDLER:

lcl_eventhandler=>handle_hotspot_click FOR grid1.

else.

CALL METHOD grid1->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.

ENDMODULE. "PBO OUTPUT

----


  • MODULE PAI INPUT *

----


MODULE pai INPUT.

  • to react on oi_custom_events:

CALL METHOD cl_gui_cfw=>dispatch.

CASE ok_code.

WHEN 'EXIT'.

PERFORM exit_program.

WHEN OTHERS.

  • do nothing

ENDCASE.

CLEAR ok_code.

ENDMODULE. "PAI INPUT

----


  • FORM EXIT_PROGRAM *

----


FORM exit_program.

  • CALL METHOD G_CUSTOM_CONTAINER->FREE.

  • CALL METHOD CL_GUI_CFW=>FLUSH.

LEAVE PROGRAM.

ENDFORM. "EXIT_PROGRAM

&----


*& Form BUILD_FIELDCATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_fieldcatalog .

  • define local data

DATA:

ls_fcat TYPE lvc_s_fcat,

ls_hype TYPE lvc_s_hype.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

  • I_BUFFER_ACTIVE =

i_structure_name = 'LVC_S_FCAT'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_BYPASSING_BUFFER =

  • I_INTERNAL_TABNAME =

CHANGING

ct_fieldcat = gt_fcat

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.

DELETE gt_fcat WHERE ( fieldname <> 'EMPHASIZE' ).

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

  • I_BUFFER_ACTIVE =

i_structure_name = 'SFLIGHT'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_BYPASSING_BUFFER =

  • I_INTERNAL_TABNAME =

CHANGING

ct_fieldcat = gt_fcat

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.

READ TABLE gt_fcat INTO ls_fcat

WITH KEY fieldname = 'EMPHASIZE'.

IF ( syst-subrc = 0 ).

DELETE gt_fcat INDEX syst-tabix.

ENDIF.

ls_fcat-fieldname = 'BUTTON4'.

ls_fcat-icon = 'X'.

ls_fcat-hotspot = 'X'.

INSERT ls_fcat INTO gt_fcat INDEX 4.

*

ls_fcat-fieldname = 'BUTTON3'.

INSERT ls_fcat INTO gt_fcat INDEX 4.

*

ls_fcat-fieldname = 'BUTTON2'.

INSERT ls_fcat INTO gt_fcat INDEX 4.

*

ls_fcat-fieldname = 'BUTTON1'.

INSERT ls_fcat INTO gt_fcat INDEX 4.

LOOP AT gt_fcat INTO ls_fcat.

ls_fcat-col_pos = syst-tabix.

MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.

ENDLOOP.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form SELECT_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM select_data .

  • define local data

DATA:

ls_sflight TYPE ty_s_sflight.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.

ls_sflight-button1 = icon_wd_radio_button.

ls_sflight-button2 = icon_wd_radio_button_empty.

ls_sflight-button3 = icon_wd_radio_button_empty.

ls_sflight-button4 = icon_wd_radio_button_empty.

*

MODIFY gt_sflight FROM ls_sflight

TRANSPORTING button1 button2 button3 button4

WHERE ( carrid IS NOT INITIAL ).

ENDFORM. " SELECT_DATA

regards,

pritha

Read only

Former Member
0 Likes
524

Hi,

We have 3 types in ALV

1) simple report

2) Block report

3) hirarchical report.

in <b>simple report</b> we have following function modules..

REUSE_ALV_LIST_DISPLAY

REUSE_ALV_GRID_DISPLAY

Reuse_alv_fieldcatalog_merge

Reuse_alv_events_get

Reuse_alv_commentary_write

In <b>block report</b>

A. REUSE_ALV_BLOCK_LIST_INIT

B. REUSE_ALV_BLOCK_LIST_APPEND

D. REUSE_ALV_BLOCK_HS_LIST_APPEND

C. REUSE_ALV_BLOCK_LIST_DISPLAY

in <b>Hirarchical report</b>

REUSE_ALV_HIERSEQ_LIST_DISPLAY

for getting check boxes

in simple field catalog check box option is there just u have pass 'X'

then u will check box.

<b>reward me a points if it is use full answer..</b>

praveen