Sie sind auf Seite 1von 5

TABLES: sbook.

TYPE-POOLS: slis.
DATA: gt_sbook

TYPE TABLE OF sbook.

DATA: gs_variant TYPE disvariant.


DATA: gsx_variant TYPE disvariant.
DATA: gv_repid TYPE sy-repid.
DATA: gv_save(1)
TYPE c value 'X', " To save the variant
gv_exit(1)
TYPE c. " To get Dialog cancelled by user
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv.
PARAMETER : p_varnt
TYPE disvariant-variant. "Variant
SELECT-OPTIONS: s_carrid FOR sbook-carrid,
s_connid FOR sbook-connid,
s_fldate FOR sbook-fldate.
INITIALIZATION.
gv_repid = sy-repid.
* PERFORM initialize_fieldcat.
PERFORM variant_initialize.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.
PERFORM f4_for_variant. " Get the variant to select the layout

START-OF-SELECTION.
PERFORM select_data.
PERFORM variant_check.
PERFORM display_alv.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Form f4_for_variant
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM f4_for_variant .

* CLEAR gs_variant.
gs_variant-report = sy-repid.
*-- Get variant
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant
= gs_variant
i_save
= gv_save
IMPORTING
e_exit
= gv_exit
es_variant
= gsx_variant
EXCEPTIONS

not_found
= 1
program_error = 2
OTHERS
= 3.
IF sy-subrc EQ 2.
MESSAGE ID sy-msgid TYPE 'S'
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF gv_exit = space.
p_varnt = gsx_variant-variant.
ENDIF.
ENDIF.
ENDFORM.
" F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*&
Form SELECT_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM select_data .
SELECT *
FROM sbook
INTO CORRESPONDING FIELDS OF TABLE gt_sbook
WHERE carrid IN s_carrid
AND connid IN s_connid
AND fldate IN s_fldate.
ENDFORM.
" SELECT_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_ALV
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_alv .

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_INTERFACE_CHECK
= ' '
I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
i_callback_program
= gv_repid
I_CALLBACK_PF_STATUS_SET
= ' '
I_CALLBACK_USER_COMMAND
= ' '
I_CALLBACK_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_END_OF_LIST
= ' '
i_structure_name
= 'SBOOK'
I_BACKGROUND_ID
= ' '
I_GRID_TITLE
=
I_GRID_SETTINGS
=
IS_LAYOUT
=
IT_FIELDCAT
= gt_fieldcat
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=

*
*
*

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
i_default
= 'X'
i_save
= 'A'
IS_VARIANT
= gs_variant
IT_EVENTS
=
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
I_HTML_HEIGHT_TOP
= 0
I_HTML_HEIGHT_END
= 0
IT_ALV_GRAPHICS
=
IT_HYPERLINK
=
IT_ADD_FIELDCAT
=
IT_EXCEPT_QINFO
=
IR_SALV_FULLSCREEN_ADAPTER
=
IMPORTING
E_EXIT_CAUSED_BY_CALLER
=
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= gt_sbook
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.

ENDFORM.
" DISPLAY_ALV
*&---------------------------------------------------------------------*
*&
Form VARIANT_INITIALIZE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM variant_initialize .
* gv_save = 'A'.
CLEAR gs_variant.
gs_variant-report = sy-repid.
gs_variant-variant = p_varnt.
gsx_variant = gs_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save
= gv_save
CHANGING
cs_variant
= gsx_variant
EXCEPTIONS
* WRONG_INPUT
= 1
not_found
= 2
* PROGRAM_ERROR
= 3

OTHERS

= 4
.
IF sy-subrc EQ 0.
p_varnt = gsx_variant-variant.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
" VARIANT_INITIALIZE
*&---------------------------------------------------------------------*
*&
Form INITIALIZE_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
*FORM initialize_fieldcat .
* CLEAR gs_fieldcat.
* gs_fieldcat-fieldname = 'CARRID'.
* gs_fieldcat-seltext_m = 'Carrid'.
* gs_fieldcat-key
= 'X'.
* APPEND gs_fieldcat TO gt_fieldcat.
* CLEAR gs_fieldcat.
*ENDFORM.
" INITIALIZE_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form VARIANT_CHECK
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM variant_check .
* IF not p_varnt IS INITIAL. " if variant is not blank . checj for existenc
e
gv_save = 'A'.
CLEAR gs_variant.
gs_variant-variant = p_varnt.
gs_variant-report = sy-repid.
CALL FUNCTION 'LVC_VARIANT_EXISTENCE_CHECK' "Check for display variant
EXPORTING
i_save
= space
"Variants Can be Saved
CHANGING
cs_variant
= gs_variant
"Variant information
EXCEPTIONS
wrong_input
= 1
"Inconsistent input parameters
not_found
= 2
"Variant not found
program_error
= 3
"Program Errors
.
" LVC_VARIANT_EXISTENCE_CHECK
IF sy-subrc = 2.
MESSAGE 'Display Variant Not Found, Displaying Default Variant'
TYPE 'S'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save
= gv_save
CHANGING
cs_variant = gsx_variant
EXCEPTIONS
not_found = 2.

IF sy-subrc = 0.
p_varnt = gsx_variant-variant.
ENDIF.
ENDFORM.

Das könnte Ihnen auch gefallen