Vous êtes sur la page 1sur 9

REPORT BALVST02 NO STANDARD PAGE HEADING.

* ALV
TYPE-POOLS: SLIS.
* DB-Table
TABLES SFLIGHT.
* Includes
INCLUDE <ICON>.
INCLUDE <SYMBOL>.
*
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GT_EVENTS TYPE SLIS_T_EVENT.
* Data to be displayed
DATA: BEGIN OF GT_SFLIGHT OCCURS 0.
INCLUDE STRUCTURE SFLIGHT.
DATA: ADD1,
CARRNAME LIKE SCARR-CARRNAME,
BOX,
LIGHTS.
DATA: END OF GT_SFLIGHT.
*
DATA: G_REPID LIKE SY-REPID.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
* Report Selections
SELECT-OPTIONS CARRID FOR SFLIGHT-CARRID.
SELECT-OPTIONS CONNID FOR SFLIGHT-CONNID.
SELECT-OPTIONS FLDATE FOR SFLIGHT-FLDATE.
SELECTION-SCREEN SKIP 1.
* Parameters
PARAMETERS: P_MAXROW TYPE I DEFAULT 30.
SELECTION-SCREEN SKIP 1.
* Variante
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-006.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK 0.
* Layout
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-060.
PARAMETERS:
P_ZEBRA AS CHECKBOX DEFAULT ' ',
P_NOCOLH AS CHECKBOX DEFAULT ' ',
P_NOVLIN AS CHECKBOX DEFAULT ' ',
P_COLOPT AS CHECKBOX DEFAULT ' ',
P_KEYHOT AS CHECKBOX DEFAULT ' ',
P_NOINPT AS CHECKBOX DEFAULT ' ',
P_MERGE AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK A.
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-061.
PARAMETERS:
P_LIGHTS AS CHECKBOX DEFAULT ' ',
P_LIGHTC AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK B.
SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-062.
PARAMETERS:
P_BEFORE AS CHECKBOX DEFAULT ' ',
P_TOTONL AS CHECKBOX DEFAULT ' ',
P_TOTEXT(60),
P_STTEXT(60).
SELECTION-SCREEN END OF BLOCK C.
SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-063.
PARAMETERS:
P_GPCE AS CHECKBOX DEFAULT ' ',
P_CHKBOX AS CHECKBOX DEFAULT ' ',
P_DETPOP AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK D.
SELECTION-SCREEN BEGIN OF BLOCK E WITH FRAME TITLE TEXT-064.
PARAMETERS:
P_PRINT AS CHECKBOX DEFAULT ' ',
P_NOSINF AS CHECKBOX DEFAULT ' ',
P_NOCOVE AS CHECKBOX DEFAULT ' ',
P_NONEWP AS CHECKBOX DEFAULT ' ',
P_NOLINF AS CHECKBOX DEFAULT ' ',
P_RESERV TYPE I.
SELECTION-SCREEN END OF BLOCK E.
DATA: G_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',
P_F2CODE LIKE SY-UCOMM VALUE '&ETA',
P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
G_SAVE(1) TYPE C,
G_DEFAULT(1) TYPE C,
G_EXIT(1) TYPE C,
GX_VARIANT LIKE DISVARIANT,
G_VARIANT LIKE DISVARIANT.
*---------------------------------------------------------------------*
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM E01_FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM E04_COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM E06_T_SORT_BUILD USING GT_SORT[].
PERFORM E07_SP_GROUP_BUILD USING GT_SP_GROUP[].
* Schalter Varianten benutzerspezifisch/allgemein speicherbar setzen
* Set Options: save variants userspecific or general
G_SAVE = 'A'.
PERFORM VARIANT_INIT.
* Get default variant
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
* Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.

* PAI
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.

START-OF-SELECTION.
PERFORM SELECTION.

END-OF-SELECTION.
PERFORM E05_LAYOUT_BUILD USING GS_LAYOUT. "wg. Parameters
PERFORM E08_PRINT_BUILD USING GS_PRINT. "wg. Parameters
* Call ABAP/4 List Viewer
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_WALLPAPER2'
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_HTML_TOP_OF_PAGE = 'HTML_TOP_OF_PAGE'
I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
* IT_EXCLUDING =
IT_SPECIAL_GROUPS = GT_SP_GROUP[]
IT_SORT = GT_SORT[]
* IT_FILTER =
* IS_SEL_HIDE =
* i_default = g_default
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = GT_EVENTS[]
* IT_EVENT_EXIT =
IS_PRINT = GS_PRINT
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
TABLES
T_OUTTAB = GT_SFLIGHT.
*---------------------------------------------------------------------*
* FORM E01_FIELDCAT_INIT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E01_LT_FIELDCAT *
*---------------------------------------------------------------------*
FORM E01_FIELDCAT_INIT USING E01_LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*
CLEAR LS_FIELDCAT.
* LS_FIELDCAT-COL_POS = 1.
LS_FIELDCAT-FIELDNAME = 'ADD1'.
LS_FIELDCAT-REPTEXT_DDIC = '?'.
LS_FIELDCAT-OUTPUTLEN = 1.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-INPUT = 'X'.
LS_FIELDCAT-SP_GROUP = 'A'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'CARRNAME'.
LS_FIELDCAT-COL_POS = 2.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-KEY_SEL = 'X'.
LS_FIELDCAT-REF_TABNAME = 'SCARR'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'SEATSOCC'.
LS_FIELDCAT-DO_SUM = 'X'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'PRICE'.
LS_FIELDCAT-DO_SUM = 'X'.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 1.
LS_FIELDCAT-FIELDNAME = 'CARRID'.
* ls_fieldcat-ref_fieldname = 'SFLIGHT'.
LS_FIELDCAT-TEXT_FIELDNAME = 'CARRNAME'.
* append ls_fieldcat to e01_lt_fieldcat.
*
* clear ls_fieldcat.
LS_FIELDCAT-FIELDNAME = 'CARRID'.
LS_FIELDCAT-KEY_SEL = 'X'.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-OUTPUTLEN = 7.
APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E02_DATA_ADD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E02_LT_SFLIGHT *
*---------------------------------------------------------------------*
FORM E02_DATA_ADD TABLES E02_LT_SFLIGHT STRUCTURE GT_SFLIGHT.
LOOP AT E02_LT_SFLIGHT.
IF SY-TABIX > 10.
E02_LT_SFLIGHT-ADD1 = 'A'.
E02_LT_SFLIGHT-BOX = 'X'.
E02_LT_SFLIGHT-LIGHTS = '3'.
ELSE.
IF SY-TABIX = 1.
E02_LT_SFLIGHT-LIGHTS = '2'.
ELSE.
E02_LT_SFLIGHT-LIGHTS = '1'.
ENDIF.
ENDIF.
MODIFY E02_LT_SFLIGHT.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E03_EVENTTAB_BUILD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E03_LT_EVENTS *
*---------------------------------------------------------------------*
FORM E03_EVENTTAB_BUILD USING E03_LT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = E03_LT_EVENTS.
READ TABLE E03_LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO E03_LT_EVENTS.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E04_COMMENT_BUILD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E04_LT_TOP_OF_PAGE *
*---------------------------------------------------------------------*
FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
*
* Listenüberschrift: Typ H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
* LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-100.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
* Kopfinfo: Typ S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = TEXT-101.
LS_LINE-INFO = TEXT-102.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
LS_LINE-KEY = TEXT-103.
LS_LINE-INFO = TEXT-104.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
* Aktionsinfo: Typ A
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
* LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-105.
APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E05_LAYOUT_BUILD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* <-> E05_LS_LAYOUT *
*---------------------------------------------------------------------*
FORM E05_LAYOUT_BUILD USING E05_LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
E05_LS_LAYOUT-F2CODE = P_F2CODE.
E05_LS_LAYOUT-ZEBRA = P_ZEBRA.
E05_LS_LAYOUT-CELL_MERGE = P_MERGE.
E05_LS_LAYOUT-COLWIDTH_OPTIMIZE = P_COLOPT.
IF P_CHKBOX = 'X'.
E05_LS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.
ELSE.
E05_LS_LAYOUT-BOX_FIELDNAME = SPACE.
ENDIF.
E05_LS_LAYOUT-NO_INPUT = P_NOINPT.
E05_LS_LAYOUT-NO_VLINE = P_NOVLIN.
E05_LS_LAYOUT-NO_COLHEAD = P_NOCOLH.
IF P_LIGHTS = 'X' OR P_LIGHTC = 'X'.
E05_LS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.
ELSE.
CLEAR E05_LS_LAYOUT-LIGHTS_FIELDNAME.
ENDIF.
IF P_BEFORE = 'X'.
E05_LS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.
ENDIF.
IF P_GPCE = 'X'.
E05_LS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.
ENDIF.
E05_LS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.
E05_LS_LAYOUT-TOTALS_TEXT = P_TOTEXT.
E05_LS_LAYOUT-SUBTOTALS_TEXT = P_STTEXT.
E05_LS_LAYOUT-TOTALS_ONLY = P_TOTONL.
E05_LS_LAYOUT-KEY_HOTSPOT = P_KEYHOT.
E05_LS_LAYOUT-DETAIL_POPUP = P_DETPOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E06_T_SORT_BUILD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E06_LT_SORT *
*---------------------------------------------------------------------*
FORM E06_T_SORT_BUILD USING E06_LT_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: LS_SORT TYPE SLIS_SORTINFO_ALV.
*
* ls_sort-fieldname = 'CARRID'.
* ls_sort-spos = 1.
* ls_sort-up = 'X'.
* ls_sort-subtot = 'X'.
* append ls_sort to e06_lt_sort.
CLEAR LS_SORT.
LS_SORT-FIELDNAME = 'CARRNAME'.
LS_SORT-SPOS = 1.
LS_SORT-UP = 'X'.
* ls_sort-subtot = 'X'.
APPEND LS_SORT TO E06_LT_SORT.

APPEND LS_SORT TO E06_LT_SORT.


LS_SORT-FIELDNAME = 'CONNID'.
LS_SORT-SPOS = 2.
LS_SORT-UP = 'X'.
* ls_sort-subtot = 'X'.
APPEND LS_SORT TO E06_LT_SORT.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E07_SP_GROUP_BUILD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E07_LT_SP_GROUP *
*---------------------------------------------------------------------*
FORM E07_SP_GROUP_BUILD USING E07_LT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV.
DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
*
CLEAR LS_SP_GROUP.
LS_SP_GROUP-SP_GROUP = 'A'.
LS_SP_GROUP-TEXT = TEXT-005.
APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM E08_PRINT_BUILD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E08_LS_PRINT *
*---------------------------------------------------------------------*
FORM E08_PRINT_BUILD USING E08_LS_PRINT TYPE SLIS_PRINT_ALV.
*
E08_LS_PRINT-PRINT = P_PRINT.
E08_LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF.
E08_LS_PRINT-NO_COVERPAGE = P_NOCOVE.
E08_LS_PRINT-NO_NEW_PAGE = P_NONEWP.
E08_LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF.
E08_LS_PRINT-RESERVE_LINES = P_RESERV.
E08_LS_PRINT-PRINT = P_PRINT.
ENDFORM.
*---------------------------------------------------------------------*
* FORM SELECTION *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM SELECTION.
* select * from sflight into corresponding fields of table gt_sflight
* up to p_maxrow rows
* where carrid in carrid
* and connid in connid
* and fldate in fldate.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM
( SFLIGHT LEFT JOIN SCARR
ON SFLIGHT~CARRID = SCARR~CARRID )

UP TO P_MAXROW ROWS
WHERE SFLIGHT~CARRID IN CARRID
AND SFLIGHT~CONNID IN CONNID
AND SFLIGHT~FLDATE IN FLDATE.
*
PERFORM E02_DATA_ADD TABLES GT_SFLIGHT.
ENDFORM.
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'HTMLCNTL_TESTHTM2_SAPLOGO'
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
*---------------------------------------------------------------------*
* FORM F4_FOR_VARIANT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM F4_FOR_VARIANT.
*
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
* it_default_fieldcat =
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PAI_OF_SELECTION_SCREEN.
*
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM VARIANT_INIT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
*& Form VARIANT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM VARIANT_INIT.
*
CLEAR G_VARIANT.
G_VARIANT-REPORT = G_REPID.
ENDFORM. " VARIANT_INIT
FORM HTML_TOP_OF_PAGE USING R_DYDO TYPE REF TO CL_DD_DOCUMENT.
*
*
*
ENDFORM. " VARIANT_INIT

Vous aimerez peut-être aussi