sap alv的报表的一些简单的操作

TYPE-POOLS:SLIS,ICON.
TYPES: BEGIN OF TY_SPFLI,
BOX(1),
COLOR_CELL TYPE LVC_T_SCOL, “该类型可以从se11数据字典结构查看
ICON(10), “LED
EXP(1), “RED GREEN YELLOW
COLOR(4),
INTERNATION(1) TYPE C.
INCLUDE TYPE SPFLI.
TYPES END OF TY_SPFLI.

DATA IT_SPFLI TYPE STANDARD TABLE OF TY_SPFLI.
DATA WA_SPFLI TYPE TY_SPFLI.
DATA IT_FIELDCAT_LVC TYPE LVC_T_FCAT.
DATA WA_FIELDCAT_LVC TYPE LINE OF LVC_T_FCAT.
DATA IS_LAYOUT_LVC TYPE LVC_S_LAYO.
DATA IT_SORT_LVC TYPE LVC_T_SORT.
DATA WA_SORT_LVC TYPE LVC_S_SORT.
DATA IT_EVENTS TYPE SLIS_T_EVENT.
DATA WA_EVENTS LIKE LINE OF IT_EVENTS.
DATA IT_FILTER_LVC TYPE LVC_T_FILT.
DATA WA_FILTER_LVC TYPE LVC_S_FILT.

DATA:I_LIST_COMMENTS TYPE SLIS_T_LISTHEADER, “alv表单标题区域设置
W_LIST_COMMENTS LIKE LINE OF I_LIST_COMMENTS.

START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM FIELDCAT_LVC.
PERFORM LAYOUT_LVC.
PERFORM SORT_LVC.
PERFORM EVENTS_LVC.
PERFORM FILTER_LVC.
PERFORM ALV_DISPLAY_LVC.

END-OF-SELECTION.

&———————————————————————
*& Form GET_DATA
&———————————————————————
* text
———————————————————————-
FORM GET_DATA .
DATA LS_COLOR TYPE LVC_S_SCOL.
SELECT *
FROM SPFLI
INTO CORRESPONDING FIELDS OF TABLE IT_SPFLI.
LOOP AT IT_SPFLI INTO WA_SPFLI.
IF WA_SPFLI-COUNTRYFR EQ WA_SPFLI-COUNTRYTO.
WA_SPFLI-INTERNATION = ”.
* WA_SPFLI-COLOR = ‘C501’.
WA_SPFLI-EXP = 1.
WA_SPFLI-ICON = ICON_LED_GREEN.
CLEAR LS_COLOR.
LS_COLOR-FNAME = ‘INTERNATION’.
LS_COLOR-COLOR-COL = 3.
LS_COLOR-COLOR-INT = 0.
LS_COLOR-COLOR-INV = 0.
APPEND LS_COLOR TO WA_SPFLI-COLOR_CELL.
ELSE.
WA_SPFLI-INTERNATION = ‘X’.
* WA_SPFLI-COLOR = ‘C701’. “行的颜色会覆盖列的颜色
WA_SPFLI-EXP = 2.
WA_SPFLI-ICON = ICON_LED_RED.
CLEAR LS_COLOR.
LS_COLOR-FNAME = ‘INTERNATION’.
LS_COLOR-COLOR-COL = 4.
LS_COLOR-COLOR-INT = 0.
LS_COLOR-COLOR-INV = 0.
APPEND LS_COLOR TO WA_SPFLI-COLOR_CELL.
ENDIF.
MODIFY IT_SPFLI FROM WA_SPFLI.
ENDLOOP.
ENDFORM. ” GET_DATA
&———————————————————————
*& Form FIELDCAT_LVC
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM FIELDCAT_LVC .
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 1.
WA_FIELDCAT_LVC-KEY = ‘X’.
WA_FIELDCAT_LVC-EDIT = ‘X’.
WA_FIELDCAT_LVC-FIELDNAME = ‘CARRID’.
WA_FIELDCAT_LVC-REPTEXT = ‘Carrid’.
WA_FIELDCAT_LVC-REF_TABLE = ‘SCARR’.
WA_FIELDCAT_LVC-REF_FIELD = ‘CARRID’.
* WA_FIELDCAT_LVC-SCRTEXT_L = ‘CARRid’.
WA_FIELDCAT_LVC-ROLLNAME = ‘S_CARR_ID’. “注意:这里是DATA ELEMENT F1帮助
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 2.
WA_FIELDCAT_LVC-KEY = ‘X’.
WA_FIELDCAT_LVC-EDIT = ‘X’.
WA_FIELDCAT_LVC-FIELDNAME = ‘CONNID’.
WA_FIELDCAT_LVC-REPTEXT = ‘Connid’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 3.
WA_FIELDCAT_LVC-EDIT = ‘X’.
WA_FIELDCAT_LVC-FIELDNAME = ‘COUNTRYFR’.
WA_FIELDCAT_LVC-REPTEXT = ‘COUNTRYFR’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 4.
WA_FIELDCAT_LVC-EDIT = ‘X’.
WA_FIELDCAT_LVC-FIELDNAME = ‘CITYFROM’.
WA_FIELDCAT_LVC-REPTEXT = ‘CITYFROM’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 5.
WA_FIELDCAT_LVC-EDIT = ‘X’.
WA_FIELDCAT_LVC-FIELDNAME = ‘COUNTRYTO’.
WA_FIELDCAT_LVC-REPTEXT = ‘COUNTRYTO’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 6.
WA_FIELDCAT_LVC-EDIT = ‘X’.
WA_FIELDCAT_LVC-FIELDNAME = ‘CITYTO’.
WA_FIELDCAT_LVC-REPTEXT = ‘CITYTO’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 7.
WA_FIELDCAT_LVC-FIELDNAME = ‘DISTANCE’.
WA_FIELDCAT_LVC-REPTEXT = ‘DISTANCE’.
WA_FIELDCAT_LVC-DO_SUM = ‘X’.
WA_FIELDCAT_LVC-EMPHASIZE = ‘C511’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 8.
WA_FIELDCAT_LVC-FIELDNAME = ‘DISTID’.
WA_FIELDCAT_LVC-REPTEXT = ‘DISTID’.
WA_FIELDCAT_LVC-TOOLTIP = ‘提示’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 9.
WA_FIELDCAT_LVC-FIELDNAME = ‘INTERNATION’.
WA_FIELDCAT_LVC-REPTEXT = ‘INTERNATION’.
WA_FIELDCAT_LVC-CHECKBOX = ‘X’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
CLEAR WA_FIELDCAT_LVC.
WA_FIELDCAT_LVC-COL_POS = 10.
WA_FIELDCAT_LVC-FIELDNAME = ‘ICON’.
WA_FIELDCAT_LVC-REPTEXT = ‘LED’.
WA_FIELDCAT_LVC-ICON = ‘X’.
APPEND WA_FIELDCAT_LVC TO IT_FIELDCAT_LVC.
ENDFORM. ” FIELDCAT_LVC
&———————————————————————
*& Form LAYOUT_LVC
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM LAYOUT_LVC .
CLEAR IS_LAYOUT_LVC.
IS_LAYOUT_LVC-ZEBRA = ‘X’.
IS_LAYOUT_LVC-CWIDTH_OPT = ‘X’.
IS_LAYOUT_LVC-INFO_FNAME = ‘COLOR’. “指定赋予颜色的字段
IS_LAYOUT_LVC-EXCP_FNAME = ‘EXP’.
IS_LAYOUT_LVC-CTAB_FNAME = ‘COLOR_CELL’.
IS_LAYOUT_LVC-BOX_FNAME = ‘BOX’.
ENDFORM. ” LAYOUT_LVC

&———————————————————————
*& Form STATUS_SET
&———————————————————————
* text
———————————————————————-
* –>R_EXTAB text
———————————————————————-
FORM STATUS_SET USING R_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS ‘STANDARD_FULLSCREEN’ OF PROGRAM ‘SAPLKKBL’.
ENDFORM. “STATUS_SET

&———————————————————————
*& Form user_command
&———————————————————————
* text
———————————————————————-
* –>R_UCOMM text
* –>R_SELFIELD text
———————————————————————-
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
R_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN ‘ADD’.
CLEAR WA_SPFLI.
APPEND WA_SPFLI TO IT_SPFLI.
WHEN ‘MARK’.
LOOP AT IT_SPFLI INTO WA_SPFLI.
* CHECK WA_SPFLI-BOX = ‘X’.
IF WA_SPFLI-BOX = ‘X’.
WA_SPFLI-COLOR = ‘C310’.
ELSE.
WA_SPFLI-COLOR = ”.
ENDIF.
MODIFY IT_SPFLI FROM WA_SPFLI.
ENDLOOP.
WHEN ‘ALL’.
LOOP AT IT_SPFLI INTO WA_SPFLI.
WA_SPFLI-BOX = ‘X’.
MODIFY IT_SPFLI FROM WA_SPFLI.
ENDLOOP.
WHEN ‘DEALL’.
LOOP AT IT_SPFLI INTO WA_SPFLI.
IF WA_SPFLI-BOX = ‘X’.
WA_SPFLI-BOX = ”.
ENDIF.
MODIFY IT_SPFLI FROM WA_SPFLI.
ENDLOOP.
ENDCASE.

R_SELFIELD-REFRESH = ‘X’.
ENDFORM. “user_command
&———————————————————————
*& Form SORT_LVC
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM SORT_LVC .
CLEAR WA_SORT_LVC.
WA_SORT_LVC-SPOS = 1.
WA_SORT_LVC-FIELDNAME = ‘CARRID’.
WA_SORT_LVC-UP = ‘X’.
WA_SORT_LVC-SUBTOT = ‘X’.
APPEND WA_SORT_LVC TO IT_SORT_LVC.
CLEAR WA_SORT_LVC.
WA_SORT_LVC-SPOS = 2.
WA_SORT_LVC-FIELDNAME = ‘CONNID’.
WA_SORT_LVC-UP = ‘X’.
APPEND WA_SORT_LVC TO IT_SORT_LVC.
ENDFORM. ” SORT_LVC

&———————————————————————
*& Form TOP_OF_LIST
&———————————————————————
* text
———————————————————————-
FORM TOP_OF_PAGE.
DATA: LDF_TABLINE TYPE I. “存储内表行数

CLEAR: I_LIST_COMMENTS.
W_LIST_COMMENTS-TYP = ‘H’.
W_LIST_COMMENTS-KEY = ”.
W_LIST_COMMENTS-INFO = ‘航班信息记录查询报表’.
APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
CLEAR W_LIST_COMMENTS.

扫描二维码关注公众号,回复: 3172959 查看本文章

DATA: DATA_TEMP(14).
WRITE SY-DATUM TO: DATA_TEMP USING EDIT MASK ‘_年月_日’.
CONCATENATE ‘日期: ’ DATA_TEMP INTO DATA_TEMP.
W_LIST_COMMENTS-TYP = ‘S’.
W_LIST_COMMENTS-KEY = ”.
W_LIST_COMMENTS-INFO = DATA_TEMP.
APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
CLEAR W_LIST_COMMENTS.

DESCRIBE TABLE IT_SPFLI LINES LDF_TABLINE.
DATA:L_SUM_LINE(20) TYPE C .
L_SUM_LINE = LDF_TABLINE.
CONDENSE L_SUM_LINE NO-GAPS.
CONCATENATE ‘记录总数: ’ L_SUM_LINE INTO L_SUM_LINE.
W_LIST_COMMENTS-TYP = ‘S’.
W_LIST_COMMENTS-KEY = ”.
W_LIST_COMMENTS-INFO = L_SUM_LINE.
APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
CLEAR W_LIST_COMMENTS.

CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’ “T-CODE : OAER PARAMENTS: PICTURES OT
EXPORTING
IT_LIST_COMMENTARY = I_LIST_COMMENTS
I_LOGO = ‘SAP_LOGO’
I_END_OF_LIST_GRID = ‘X’
* I_ALV_FORM =
.

ENDFORM. “TOP_OF_PAGE
&———————————————————————
*& Form EVENTS_LVC
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM EVENTS_LVC .
CALL FUNCTION ‘REUSE_ALV_EVENTS_GET’
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = IT_EVENTS
* EXCEPTIONS
* LIST_TYPE_WRONG = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

READ TABLE IT_EVENTS WITH KEY NAME = ‘TOP_OF_PAGE’ “1
INTO WA_EVENTS.
IF SY-SUBRC = 0.
MOVE ‘TOP_OF_PAGE’ TO WA_EVENTS-FORM. “2 注意1与2的name要相同
MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
ENDIF.

  • READ TABLE IT_EVENTS INTO WA_EVENTS WITH KEY NAME = ‘USER_COMMAND’.
  • IF SY-SUBRC EQ 0.
  • WA_EVENTS-NAME = ‘USER_COMMAND’.
  • MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
  • ENDIF.

    READ TABLE IT_EVENTS WITH KEY NAME = ‘END_OF_LIST‘“slis_ev_end_of_page
    INTO WA_EVENTS.
    IF SY-SUBRC = 0.
    MOVE ‘END_OF_LIST’ TO WA_EVENTS-FORM.
    MODIFY IT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
    ENDIF.
    ENDFORM. ” EVENTS_LVC
    &———————————————————————
    *& Form END_OF_LIST
    &———————————————————————

  • text
    ———————————————————————-
    FORM END_OF_LIST.
    CLEAR: I_LIST_COMMENTS.
    W_LIST_COMMENTS-TYP = ‘S’.
    W_LIST_COMMENTS-INFO = ‘确认: ____ 采购申请分配员: ____ ‘.
    APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
    CLEAR W_LIST_COMMENTS.

    W_LIST_COMMENTS-TYP = ‘S’.
    W_LIST_COMMENTS-INFO = ‘制表单位: IT部’.
    APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
    CLEAR W_LIST_COMMENTS.

    CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’
    EXPORTING
    IT_LIST_COMMENTARY = I_LIST_COMMENTS
    I_END_OF_LIST_GRID = ‘X’. “I_LOGO = ‘ENJOYSAP_LOGO’ “标题图标

ENDFORM. “END_OF_LIST
&———————————————————————
*& Form ALV_DISPLAY_LVC
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM ALV_DISPLAY_LVC .
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
* I_INTERFACE_CHECK = ’ ’
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ‘STATUS_SET’
I_CALLBACK_USER_COMMAND = ‘USER_COMMAND’
* I_CALLBACK_TOP_OF_PAGE = ‘TOP_OF_PAGE’
* I_CALLBACK_HTML_TOP_OF_PAGE = ’ ’
* I_CALLBACK_HTML_END_OF_LIST = ’ ’
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ’ ’
* I_GRID_TITLE = ‘MY SPFLI’
* I_GRID_SETTINGS =
IS_LAYOUT_LVC = IS_LAYOUT_LVC
IT_FIELDCAT_LVC = IT_FIELDCAT_LVC
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
IT_SORT_LVC = IT_SORT_LVC
IT_FILTER_LVC = IT_FILTER_LVC
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = ‘X’
* I_SAVE = ’ ’
* IS_VARIANT =
IT_EVENTS = IT_EVENTS
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_SPFLI
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
&———————————————————————
*& Form GET_DATA
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
ENDFORM. ” ALV_DISPLAY_LVC
&———————————————————————
*& Form FILTER_LVC
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM FILTER_LVC .
WA_FILTER_LVC-FIELDNAME = ‘CONNID’ .
WA_FILTER_LVC-SIGN = ‘I’ . “EXCLUDE INCLUDE
WA_FILTER_LVC-OPTION = ‘BT’ .
WA_FILTER_LVC-LOW = ‘0’ .
WA_FILTER_LVC-HIGH = ‘900’ .
APPEND WA_FILTER_LVC TO IT_FILTER_LVC .
ENDFORM. ” FILTER_LVC

猜你喜欢

转载自blog.csdn.net/qq_16116183/article/details/77850758
今日推荐