Sei sulla pagina 1di 5

*&---------------------------------------------------------------------*

*& Report ZALV_EVENTS


*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT zalv_events

TYPE-POOLS: slis.
TYPES: ty_field TYPE STANDARD TABLE OF slis_fieldcat_alv INITIAL SIZE 0.
DATA: itab TYPE TABLE OF vbap,
i_field TYPE slis_t_fieldcat_alv,
wa_field TYPE slis_fieldcat_alv,
i_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv,
wa_layout TYPE slis_layout_alv,
i_event TYPE slis_t_event,
wa_event TYPE slis_alv_event,
wa TYPE vbap.

SELECT * FROM vbap INTO TABLE itab


UP TO 50 ROWS.

PERFORM populate_field_catalogue CHANGING wa_field


i_field.
wa_sort-fieldname
wa_sort-tabname
wa_sort-up
wa_sort-subtot
APPEND wa_sort TO

= 'VBELN'.
= 'ITAB'.
= 'X'.
= 'X'.
i_sort.

wa_layout-zebra = 'X'.
*CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
* EXPORTING
*
i_list_type
= 0
* IMPORTING
*
et_events
= i_event
* EXCEPTIONS
*
list_type_wrong = 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.
*
*READ TABLE i_event INTO wa_event WITH KEY name = 'TOP_OF_PAGE'.
*IF sy-subrc = 0.
* wa_event-form = 'TOP'.

* MODIFY i_event FROM wa_event INDEX sy-tabix TRANSPORTING form.


*ENDIF.
wa_event-form = 'XYZ_TOP_ABC'.
wa_event-name = 'TOP_OF_PAGE'.
APPEND wa_event TO i_event.
*
wa_event-form = 'FOOT_TRIGGER'.
wa_event-name = 'END_OF_LIST'.
APPEND wa_event TO i_event.
wa_event-form = 'SET_STATUS'.
wa_event-name = 'PF_STATUS_SET'.
APPEND wa_event TO i_event.
wa_event-form = 'USER'.
wa_event-name = 'USER_COMMAND'.
APPEND wa_event TO i_event.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= sy-cprog
i_background_id
= 'PMMN_BACKGROUND'
i_grid_title
= 'Demo for ALV Events'
*
I_GRID_SETTINGS
=
is_layout
= wa_layout
it_fieldcat
= i_field
*
IT_EXCLUDING
=
*
IT_SPECIAL_GROUPS
=
it_sort
= i_sort
*
IT_FILTER
=
*
IS_SEL_HIDE
=
i_default
= 'X'
i_save
= 'A'
*
IS_VARIANT
=
it_events
= i_event
*
IT_EVENT_EXIT
=
*
IS_PRINT
=
*
IS_REPREP_ID
=
*
I_SCREEN_START_COLUMN
= 0
*
I_SCREEN_START_LINE
= 0
*
I_SCREEN_END_COLUMN
= 0
*
I_SCREEN_END_LINE
= 0
*
IT_ALV_GRAPHICS
=
*
IT_HYPERLINK
=
*
IT_ADD_FIELDCAT
=
*
IT_EXCEPT_QINFO
=
*
I_HTML_HEIGHT_TOP
=
*
I_HTML_HEIGHT_END
=
* IMPORTING
*
E_EXIT_CAUSED_BY_CALLER
=
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= itab
* EXCEPTIONS
*
PROGRAM_ERROR
= 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.
*&--------------------------------------------------------------------*
*&
Form TOP
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
FORM xyz_top_abc.
DATA: i_write TYPE slis_t_listheader,
wa_write TYPE slis_listheader.
wa_write-typ = 'H'.
wa_write-info = 'XYZ COMPANY'.
APPEND wa_write TO i_write.
wa_write-typ = 'S'.
wa_write-key = 'Date:'.
WRITE sy-datum TO wa_write-info.
APPEND wa_write TO i_write.
wa_write-typ = 'S'.
wa_write-key = 'Time:'.
WRITE sy-uzeit TO wa_write-info.
APPEND wa_write TO i_write.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_write
i_logo
= 'SIWB_KW_LOGO'.

ENDFORM.

"TOP

*&--------------------------------------------------------------------*
*&
Form FOOT_TRIGGER
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
FORM foot_trigger.
ENDFORM.
"FOOT_TRIGGER
*&---------------------------------------------------------------------*
*&
Form populate_field_catalogue
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM populate_field_catalogue CHANGING fp_write TYPE slis_fieldcat_alv
fp_i_field TYPE ty_field.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING

*
*
*
*

*
*

i_program_name
= sy-cprog
i_structure_name
= 'VBAP'
I_CLIENT_NEVER_DISPLAY
= 'X'
I_INCLNAME
=
I_BYPASSING_BUFFER
=
I_BUFFER_ACTIVE
=
CHANGING
ct_fieldcat
= fp_i_field
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 fp_i_field INTO fp_write WITH KEY fieldname = 'PMATN'.
IF sy-subrc = 0.
fp_write-no_out = 'X'.
MODIFY fp_i_field FROM fp_write INDEX sy-tabix TRANSPORTING no_out.
ENDIF.
READ TABLE fp_i_field INTO fp_write WITH KEY fieldname = 'NETWR'.
IF sy-subrc = 0.
fp_write-do_sum = 'X'.
MODIFY fp_i_field FROM fp_write INDEX sy-tabix TRANSPORTING do_sum.
ENDIF.
READ TABLE fp_i_field INTO fp_write WITH KEY fieldname = 'MATWA'.
IF sy-subrc = 0.
fp_write-seltext_l = 'Material No.'.
fp_write-seltext_m = 'Mater No.'.
fp_write-seltext_s = 'Mat No.'.
CLEAR: wa_field-ref_tabname.
MODIFY fp_i_field FROM fp_write INDEX sy-tabix TRANSPORTING seltext_s
seltext_m
seltext_l
ref_tabname.
ENDIF.
READ TABLE fp_i_field INTO fp_write WITH KEY fieldname = 'VBELN'.
IF sy-subrc = 0.
fp_write-hotspot = 'X'.
MODIFY fp_i_field FROM fp_write INDEX sy-tabix TRANSPORTING hotspot.
ENDIF.

ENDFORM.

" populate_field_catalogue

*&--------------------------------------------------------------------*
*&
Form SET_STATUS
*&--------------------------------------------------------------------*
*
text

*---------------------------------------------------------------------*
FORM set_status USING pf_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS_NEW'.
ENDFORM.

"SET_STATUS

*&--------------------------------------------------------------------*
*&
Form USER
*&--------------------------------------------------------------------*
*
text
*---------------------------------------------------------------------*
FORM user USING fp_ucomm
LIKE sy-ucomm
fp_selfield TYPE slis_selfield.
CASE fp_ucomm.
WHEN '&IC1'.
READ TABLE itab INTO wa INDEX fp_selfield-tabindex.
SET PARAMETER ID 'AUN' FIELD wa-vbeln.
IF fp_selfield-fieldname = 'VBELN'.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.

"USER

Potrebbero piacerti anche