打印采购订单

狂风中的少年 提交于 2019-11-26 21:20:20

*&---------------------------------------------------------------------*
*& 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-TABIX = I_01.
 " APPEND INITIAL LINE TO IT_01.
  ENDIF.
   AT FIRST 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!