ABAP GRID LVS
main:
REPORT ZBC_ALV_01 MESSAGE-ID ZBC. INCLUDE ZBC_ALV_01TOP. INCLUDE ZBC_ALV_01FORM. START-OF-SELECTION. PERFORM get_data. END-OF-SELECTION. IF GT_STU IS NOT INITIAL. PERFORM display_data. ELSE. MESSAGE S001 WITH 'STUDENT INFO . iS EMPTY!' DISPLAY LIKE 'E'. ENDIF.
ZBC_ALV_01TOP
*&---------------------------------------------------------------------* *& Include ZBC_ALV_01TOP *&---------------------------------------------------------------------* TYPE-POOLs: SLIS . TYPES: BEGIN OF GTY_STU . TYPES: BOX TYPE C LENGTH 1. INCLUDE STRUCTURE ZSTU . TYPES: ICON TYPE C LENGTH 4 . "icon TYPES: CHECK TYPE C LENGTH 1 . "checkbox TYPES: LINE_COLOR TYPE C LENGTH 4 . "coloer TYPES: FIELD_COLOR TYPE LVC_T_SCOL. " filed color TYPES: END OF GTY_STU . DATA: GS_VARIANT TYPE DISVARIANT. DATA GT_STU TYPE TABLE OF GTY_STU . DATA GS_STU TYPE GTY_STU . DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV . DATA GT_FIELDCAT TYPE slis_t_fieldcat_alv . DATA GS_FIELDCAT TYPE slis_fieldcat_alv . DATA GT_SORT TYPE slis_t_sortinfo_alv. DATA GS_SORT TYPE slis_sortinfo_alv. DATA GT_FILTER TYPE slis_t_filter_alv. DATA GS_FILTER TYPE slis_filter_alv. DATA GT_EVENTS TYPE slis_t_event. DATA GS_EVENTS TYPE slis_alv_event. ** marco at most 9 parameters DEFINE %%APPEND_FIELDCAT. CLEAR GS_FIELDCAT. GS_FIELDCAT-COL_POS = &1 . GS_FIELDCAT-FIELDNAME = &2. GS_FIELDCAT-OUTPUTLEN = &3. GS_FIELDCAT-SELTEXT_M = &4. CASE &2 . WHEN 'ZCODE'. GS_FIELDCAT-KEY = 'X'. WHEN 'ICON' . GS_FIELDCAT-ICON = 'X'. WHEN 'CHECK'. GS_FIELDCAT-CHECKBOX = 'X'. WHEN 'WEIGHT'. GS_FIELDCAT-DO_SUM = 'X' . GS_FIELDCAT-HOTSPOT = 'X' . * GS_FIELDCAT-QUANTITY = 'KG' . GS_FIELDCAT-qfieldname = 'ZUNIT' . GS_FIELDCAT-EMPHASIZE = 'C601' . WHEN 'ZUNIT'. GS_FIELDCAT-EMPHASIZE = 'C600' . ENDCASE. APPEND GS_FIELDCAT TO GT_FIELDCAT. END-OF-DEFINITION. SELECT-OPTIONS R_ZCODE FOR GS_STU-ZSCHOOL.
ZBC_ALV_01FORM
*&---------------------------------------------------------------------* *& Include ZBC_ALV_01FORM *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM get_data . DATA LS_SCOL TYPE LVC_S_SCOL. SELECT * FROM ZSTU INTO CORRESPONDING FIELDS OF TABLE GT_STU WHERE ZSCHOOL IN R_ZCODE. LOOP AT GT_STU INTO GS_STU. "icon setting IF GS_STU-SEX = 'F'. GS_STU-ICON = ICON_GREEN_LIGHT. ELSE. GS_STU-ICON = ICON_RED_LIGHT. ENDIF. " line color IF GS_STU-SEX IS INITIAL. GS_STU-LINE_COLOR = 'C611'. ENDIF. "cell color IF GS_STU-SEX IS INITIAL. CLEAR LS_SCOL . LS_SCOL-FNAME = 'ZCODE'. "filed LS_SCOL-COLOR-COL = 5 . "color LS_SCOL-COLOR-INT = 0 . "weight LS_SCOL-COLOR-INV = 0 . "inverse APPEND LS_SCOL TO GS_STU-FIELD_COLOR . ENDIF. IF GS_STU-SEX IS INITIAL. CLEAR LS_SCOL . LS_SCOL-FNAME = 'ZNAME'. "filed LS_SCOL-COLOR-COL = 4 . "color LS_SCOL-COLOR-INT = 0 . "weight LS_SCOL-COLOR-INV = 0 . "inverse APPEND LS_SCOL TO GS_STU-FIELD_COLOR . ENDIF. MODIFY GT_STU FROM GS_STU. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *& Form DISPLAY_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM display_data . PERFORM build_fieldcat. PERFORM build_layout. PERFORM build_sort. PERFORM build_filetr. PERFORM build_events. PERFORM build_alv. ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_ALV *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_alv . GS_VARIANT-REPORT = SY-REPID. * GS_VARIANT-VARIANT = '/BC01'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = ' ' * I_BUFFER_ACTIVE = ' ' I_CALLBACK_PROGRAM = SY-CPROG I_CALLBACK_PF_STATUS_SET = 'SET_STATUS' I_CALLBACK_USER_COMMAND = 'FM_USER_COMMAND' I_CALLBACK_TOP_OF_PAGE = 'FM_TOP_OF_PAGE' I_CALLBACK_HTML_TOP_OF_PAGE = 'FM_HTML_TOP_OF_PAGE' "high priorty * I_CALLBACK_HTML_END_OF_LIST = ' ' * I_STRUCTURE_NAME = ZSTU * I_BACKGROUND_ID = ' ' I_GRID_TITLE = 'GRID TITLE' * I_GRID_SETTINGS = IS_LAYOUT = GS_LAYOUT IT_FIELDCAT = GT_FIELDCAT * IT_EXCLUDING = * IT_SPECIAL_GROUPS = IT_SORT = GT_SORT IT_FILTER = GT_FILTER * IS_SEL_HIDE = * I_DEFAULT = 'X' I_SAVE = 'A' IS_VARIANT = GS_VARIANT IT_EVENTS = GT_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_STU * EXCEPTIONS * PROGRAM_ERROR = 1 * OTHERS = 2 . IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_FIELDCAT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_fieldcat . %%APPEND_FIELDCAT: '1' 'ZCODE' '10' 'STUDENCODE', '2' 'ZNAME' '20' 'STUDENNAME', '3' 'SEX' '3' 'SEX', '4' 'ZSCHOOL' '10' 'ZSCHOOL', '5' 'WEIGH' '10' 'WEIGHT', '6' 'ZUNIT' '10' 'ZUNIT', '7' 'ICON' '6' 'ICON', '8' 'CHECK' '3' 'ICON'. ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_LAYOUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_layout . GS_LAYOUT-colwidth_optimize = 'X'. GS_LAYOUT-ZEBRA = 'X' . GS_LAYOUT-KEY_HOTSPOT = 'X'. GS_LAYOUT-BOX_FIELDNAME = 'BOX'. GS_LAYOUT-DETAIL_INITIAL_LINES = 'BOX'. GS_LAYOUT-WINDOW_TITLEBAR = 'windows_title'. GS_LAYOUT-confirmation_prompt = 'X'. GS_LAYOUT-INFO_fieldname = 'LINE_COLOR'. "line color GS_LAYOUT-COLTAB_FIELDNAME = 'FIELD_COLOR'. "field color ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_SORT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_sort . clear GS_SORT. GS_SORT-spos = '1'. GS_SORT-fieldname = 'ZSCHOOL'. GS_SORT-UP = 'X'. GS_SORT-subtot = 'X'. APPEND GS_SORT TO GT_SORT. clear GS_SORT. GS_SORT-spos = '2'. GS_SORT-fieldname = 'SEX'. GS_SORT-DOWN = 'X'. APPEND GS_SORT TO GT_SORT. ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_FILETR *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_filetr . clear GS_FILTER. GS_FILTER-fieldname = 'SEX'. GS_FILTER-sign0 = 'E'. GS_FILTER-optio = 'EQ'. GS_FILTER-valuf = ''. APPEND GS_FILTER to GT_FILTER. ENDFORM. *&---------------------------------------------------------------------* *& Form BUILD_EVENTS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_events . "" regester event list in REUSE_ALV_EVENTS_GET CLEAR GS_EVENTS. GS_EVENTS-name ='PF_STATUS_SET'. GS_EVENTS-form ='SET_STATUS'. "" write this subform APPEND GS_EVENTS TO GT_EVENTS. CLEAR GS_EVENTS. GS_EVENTS-name ='USER_COMMAND'. GS_EVENTS-form ='FM_USER_COMMAND'. "" write this subform APPEND GS_EVENTS TO GT_EVENTS. CLEAR GS_EVENTS. GS_EVENTS-name ='TOP_OF_PAGE'. GS_EVENTS-form ='FM_TOP_OF_PAGE'. "" write this subform APPEND GS_EVENTS TO GT_EVENTS. ENDFORM. FORM SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB. * SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB. SET PF-STATUS 'ST_STATUS' EXCLUDING RT_EXTAB. ENDFORM. FORM FM_USER_COMMAND USING R_UCOM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD . CASE R_UCOM. WHEN '&IC1'. CASE RS_SELFIELD-fieldname. WHEN 'ZCODE'. * MESSAGE S000 WITH 'click studen code' RS_SELFIELD-value ' line'. SET PARAMETER ID 'LIF' FIELD RS_SELFIELD-VALUE. CALL TRANSACTION 'FK02'. WHEN 'WEIGH'. WHEN OTHERS. READ TABLE GT_STU INTO GS_STU INDEX RS_SELFIELD-TABINDEX. PERFORM display_alv_school USING GS_STU-ZSCHOOL. ENDCASE. WHEN 'BACK'. LEAVE TO SCREEN 0. WHEN 'EXIT' OR 'CANCEL'. LEAVE PROGRAM. WHEN 'CALLSF'. WHEN 'DOWNLOAD'. ENDCASE. ENDFORM. *&---------------------------------------------------------------------* *& Form DISPLAY_ALV_SCHOOL *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM display_alv_school USING P_ZSCHOOL. DATA GT_SCHOOL TYPE TABLE OF ZSCHOOL_HQ_03. SELECT * FROM ZSCHOOL_HQ_03 INTO CORRESPONDING FIELDS OF TABLE GT_SCHOOL WHERE ZSCHOOL = P_ZSCHOOL. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = ' ' * I_BUFFER_ACTIVE = ' ' * I_CALLBACK_PROGRAM = ' ' * 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 = 'ZSCHOOL_HQ_03' * I_BACKGROUND_ID = ' ' * I_GRID_TITLE = * I_GRID_SETTINGS = * IS_LAYOUT = * IT_FIELDCAT = * IT_EXCLUDING = * IT_SPECIAL_GROUPS = * IT_SORT = * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_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_SCHOOL EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2 . IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. ENDFORM. FORM FM_TOP_OF_PAGE. DATA LT_HEADER TYPE slis_t_listheader. DATA LS_HEADER TYPE slis_listheader. clear LS_HEADER. LS_HEADER-TYP = 'H'. * LS_HEADER-KEY = . LS_HEADER-INFO = 'STUDENT INFORMATION'. APPEND LS_HEADER TO LT_HEADER. clear LS_HEADER. LS_HEADER-TYP = 'S'. * LS_HEADER-KEY = 'DATE'. LS_HEADER-INFO = SY-DATUM . APPEND LS_HEADER TO LT_HEADER. clear LS_HEADER. LS_HEADER-TYP = 'A'. * LS_HEADER-KEY = . LS_HEADER-INFO = 'Available School information'. APPEND LS_HEADER TO LT_HEADER. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = LT_HEADER * I_LOGO = * I_END_OF_LIST_GRID = * I_ALV_FORM = . ENDFORM. FORM FM_HTML_TOP_OF_PAGE USING PR_DOCUMENT TYPE REF TO CL_DD_DOCUMENT. DATA LV_DATUM TYPE SDYDO_TEXT_ELEMENT. CALL METHOD PR_DOCUMENT->ADD_TEXT EXPORTING TEXT = 'Student Information ' SAP_STYLE = CL_DD_DOCUMENT=>TABLE_HEADING . * SAP_STYLE = CL_DD_DOCUMENT=>SUCCESS . CALL METHOD PR_DOCUMENT->NEW_LINE . CALL METHOD PR_DOCUMENT->ADD_TEXT EXPORTING TEXT = 'DATE: ' SAP_STYLE = CL_DD_DOCUMENT=>MEDIUM . CALL METHOD PR_DOCUMENT->ADD_GAP EXPORTING WIDTH = 3. WRITE SY-DATUM TO LV_DATUM USING EDIT MASK '____Year__Month__Day'. CALL METHOD PR_DOCUMENT->ADD_TEXT EXPORTING TEXT = LV_DATUM SAP_STYLE = CL_DD_DOCUMENT=>MEDIUM . CALL METHOD PR_DOCUMENT->NEW_LINE . CALL METHOD PR_DOCUMENT->ADD_TEXT EXPORTING TEXT = 'Link' SAP_FONTSTYLE = CL_DD_DOCUMENT=>MEDIUM . CALL METHOD PR_DOCUMENT->ADD_GAP EXPORTING WIDTH = 3. CALL METHOD PR_DOCUMENT->ADD_LINK EXPORTING NAME = 'google' URL = 'http://bzo.bosch.com/' TEXT = 'bosch' . ENDFORM.
每天进步一点点,多思考,多总结
版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。