*&---------------------------------------------------------------------*
*& Report ZJGL_F_003
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZJGL_F_003.
**********************************************************************
*REPORT DESCRIBE:打印采购订单
*DEVELOPER:SALAH
*DEVELOP DATE:20191118
*MODIFY DATE:
*FUNCTION SPEC:
*KEY USER:
**********************************************************************
*内表的声明和定义
TYPE-POOLS:SLIS.
TABLES:EKKO,ZJGL_F_003S.
DATA:GT_01 TYPE TABLE OF ZJGL_F_003S.
DATA:GS_01 LIKE LINE OF GT_01.
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
*选择屏幕
SELECTION-SCREEN BEGIN OF BLOCK BL01 WITH FRAME TITLE TEXT-001.
PARAMETERS S_ERNAM TYPE EKKO-ERNAM DEFAULT 'SAP019'.
SELECT-OPTIONS S_EBELN FOR EKKO-EBELN .
SELECT-OPTIONS S_EKORG FOR EKKO-EKORG .
SELECT-OPTIONS S_EKGRP FOR EKKO-EKGRP .
SELECT-OPTIONS S_LIFNR FOR EKKO-LIFNR .
SELECT-OPTIONS S_BEDAT FOR EKKO-BEDAT.
SELECTION-SCREEN END OF BLOCK BL01.
*程序开始执行
START-OF-SELECTION.
INCLUDE ZJGL_F_0003.
START-OF-SELECTION.
*取数
PERFORM FRM_GET_DATA.
END-OF-SELECTION.
*ALV显示
IF GT_01 IS NOT INITIAL.
PERFORM FRM_ALV_SHOW.
ELSE.
MESSAGE '无符合要求的数据' TYPE 'E'.
ENDIF.
包含;
*&---------------------------------------------------------------------*
*& 包含 ZJGL_F_0003
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA .
SELECT ERNAM
EBELN
EKORG
EKGRP
LIFNR
BEDAT
FROM EKKO
INTO CORRESPONDING FIELDS OF TABLE GT_01 UP TO 10 ROWS.
* WHERE EKKO~ERNAM = S_ERNAM
* AND EKKO~EBELN IN S_EBELN
* AND EKKO~EKORG IN S_EKORG
* AND EKKO~EKGRP IN S_EKGRP
* AND EKKO~LIFNR IN S_LIFNR
* AND EKKO~BEDAT IN S_BEDAT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_ALV_SHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_SHOW .
PERFORM FRM_LAYOUT.
PERFORM FRM_DISPLAY.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_DISPLAY .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-CPROG
* I_INTERNAL_TABNAME =
I_STRUCTURE_NAME = 'ZJGL_F_003S'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = GT_FIELDCAT
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
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 = 'FRM_STATUS'
I_CALLBACK_USER_COMMAND = 'FRM_UCOMM'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_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_01
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
FORM FRM_STATUS USING DADI.
SET PF-STATUS 'MENU'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_LAYOUT .
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-BOX_FIELDNAME = 'CBOX'.
ENDFORM.
FORM FRM_UCOMM USING P_UCOMM TYPE SYUCOMM
CHANGING LTAB TYPE SLIS_SELFIELD.
CASE P_UCOMM .
WHEN 'BC'.
DATA IT_01 TYPE ZJGL_F_003.
DATA IT_02 TYPE ZJGL_F_003.
DATA IS_01 LIKE LINE OF IT_01.
DATA GS_FM TYPE RS38L_FNAM.
DATA L_CONTORL TYPE SSFCTRLOP.
DATA L_CONTORL_INFO TYPE SSFCRESCL.
DATA I_01 TYPE I.
CLEAR IT_02.
LOOP AT GT_01 INTO GS_01 WHERE CBOX = 'X' .
MOVE-CORRESPONDING GS_01 TO IS_01 .
APPEND IS_01 TO IT_01 .
ENDLOOP .
SORT IT_01 BY EBELN.
I_01 = LINES( IT_01 ).
DATA LS LIKE IS_01.
LOOP AT IT_01 INTO IS_01.
IF SY