首页 > 其他 > 详细

【SAP】ALV練習(一覧、DL)

时间:2020-09-16 12:33:49      阅读:63      评论:0      收藏:0      [点我收藏+]

出力イメージ

技术分享图片

 

 

REPORT  ZXXX_TEST.
TYPE-POOLS SLIS.

TABLES : VBAK.
*----------------------------------------------------------------------*
* TYPES定義
*----------------------------------------------------------------------*
* 対象データ用構造
  TYPES:
    BEGIN OF GTYP_DATA,
      VBELN   TYPE VBAK-VBELN,  " 販売伝票
      POSNR   TYPE VBAP-POSNR,  " 販売伝票明細
      KUNNR   TYPE VBAK-KUNNR,  " 受注先
      KUNNR_T TYPE KNA1-NAME1,  " 受注先テキスト
      VKORG   TYPE VBAK-VKORG,  " 販売組織
      VKORG_T  TYPE TVKOT-VTEXT,  " 販売組織テキスト
      MATNR   TYPE VBAP-MATNR,  " 品目コード
      MATNR_T TYPE MAKT-MAKTX,  " 品目コードテキスト
      VDATU   TYPE VBAK-VDATU,  " 指定納期
      WERKS   TYPE VBAP-WERKS,  " プラント
      WERKS_T  TYPE T001W-NAME1,  " プラントテキスト
      WAERK   TYPE VBAP-WAERK,  " 販売伝票通貨
      VRKME   TYPE VBAP-VRKME,  " 販売単位
      NETPR   TYPE VBAP-NETPR,  " 正味価格
      KWMENG  TYPE VBAP-KWMENG" 受注数量
      NETWR   TYPE VBAP-NETWR,  " 正味額
      END OF GTYP_DATA,
    GT_TYP TYPE STANDARD TABLE OF GTYP_DATA,
    GS_TYP TYPE GTYP_DATA,

* DLファイルヘッダ行
    BEGIN OF GTYP_HEAD,
      HEAD_NAME(100TYPE C,
      END OF GTYP_HEAD,
    GT_TYP_HEAD TYPE STANDARD TABLE OF GTYP_HEAD,
    GS_TYP_HEAD TYPE GTYP_HEAD.
*----------------------------------------------------------------------*
* 定数定義
*----------------------------------------------------------------------*
  CONSTANTS:
    CON_X(1)       TYPE VALUE ‘X‘,     " フラグオン
    CNS_DATE_01(2TYPE VALUE ‘01‘,    " 月初日:01
    CNS_MTY_E(1)   TYPE VALUE ‘E‘,     " エラータイプ:E
    CNS_LANG_J(1)  TYPE VALUE ‘J‘.     " 言語:日本語(J)

*----------------------------------------------------------------------*
* データ定義
*----------------------------------------------------------------------*
  DATA:
    G_FIRST_DAY TYPE SY-DATLO,           " 月初日
    G_LAST_DAY  TYPE SY-DATLO,           " 月末日
    GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV," フィールドカタログテーブル
    GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,  " フィールドカタログ構造
    GT_HEAD     TYPE GT_TYP_HEAD,        " DLファイルヘッダ行
    GT_DATA     TYPE GT_TYP.             " 出力用内部テーブル

*-MACRO定義
DEFINE FIELDCAT_DATA.
  CLEAR : GS_FIELDCAT.

  GS_FIELDCAT-COL_POS   = &1.
  GS_FIELDCAT-FIELDNAME = &2.
  GS_FIELDCAT-OUTPUTLEN = &3.
  GS_FIELDCAT-SELTEXT_M = &4.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.
*----------------------------------------------------------------------*
* 初期化
*----------------------------------------------------------------------*
INITIALIZATION.

*----------------------------------------------------------------------*
* 選択画面
*----------------------------------------------------------------------*
* ラジオボタン
SELECTION-SCREEN BEGIN OF LINE.
  PARAMETERS:
    R_1 RADIOBUTTON GROUP RG1 DEFAULT ‘X‘ USER-COMMAND R1.   " 一覧表示
  SELECTION-SCREEN COMMENT 3(8TEXT-001 FOR FIELD R_1.

  PARAMETERS:
    R_2 RADIOBUTTON GROUP RG1.                               " DL
  SELECTION-SCREEN COMMENT 20(4TEXT-002 FOR FIELD R_2.

SELECTION-SCREEN END OF LINE.

* 基本条件
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-003.
  PARAMETERS:
    P_DATE(6TYPE C.                 " 指定納期

  SELECT-OPTIONS:
    S_VBELN FOR VBAK-VBELN,           " 伝票番号
    S_KUNNR FOR VBAK-KUNNR.           " 受注先
SELECTION-SCREEN END OF BLOCK BLK1.

SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-004.
* ファイルパス
  PARAMETERS:
    P_PATH TYPE STRING MODIF ID P1.   " ファイルパス
SELECTION-SCREEN END OF BLOCK BLK2.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
* 選択画面制御
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF R_1 = CON_X AND SCREEN-GROUP1 ‘P1‘.
      SCREEN-INPUT 0.
      MODIFY SCREEN.
    ELSEIF SCREEN-GROUP1 ‘P1‘.
      SCREEN-INPUT 1.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

* ファイルパス取得
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
  PERFORM GET_PATH USING P_PATH.

*----------------------------------------------------------------------*
* メインプログラム
*----------------------------------------------------------------------*
START-OF-SELECTION.

* 指定納期チェック
  PERFORM DATE_CHECK.

* 対象データ取得
  PERFORM GET_DATA.

* 対象データ存在しない場合、エラー発生
  IF GT_DATA IS INITIAL.
    MESSAGE S001 DISPLAY LIKE CNS_MTY_E.
  ENDIF.

* 対象データ編集
  PERFORM EDIT_DATA.

* 対象データ出力
  PERFORM OUTPUT_DATA.

*&---------------------------------------------------------------------*
*& Form EDIT_FIELDCAT
*&---------------------------------------------------------------------*
*& フィールドカタログ編集
*&---------------------------------------------------------------------*
FORM EDIT_FIELDCAT .
  FIELDCAT_DATA ‘1‘  ‘VBELN‘   ‘10‘ ‘販売伝票‘,
                  ‘2‘  ‘POSNR‘   ‘6‘  ‘販売伝票明細‘,
                  ‘3‘  ‘KUNNR‘   ‘10‘ ‘受注先‘,
                  ‘4‘  ‘KUNNR_T‘ ‘35‘ ‘受注先テキスト‘,
                  ‘5‘  ‘VKORG‘   ‘4‘  ‘販売組織‘,
                  ‘6‘  ‘VKORG_T‘ ‘20‘ ‘販売組織テキスト‘,
                  ‘7‘  ‘MATNR‘   ‘18‘ ‘品目コード‘,
                  ‘8‘  ‘MATNR_T‘ ‘40‘ ‘品目コードテキスト‘,
                  ‘9‘  ‘VDATU‘   ‘8‘  ‘指定納期‘,
                  ‘10‘ ‘WERKS‘   ‘4‘  ‘プラント‘,
                  ‘11‘ ‘WERKS_T‘ ‘30‘ ‘プラントテキスト‘,
                  ‘12‘ ‘WAERK‘   ‘5‘  ‘販売伝票通貨‘,
                  ‘13‘ ‘VRKME‘   ‘3‘  ‘販売単位‘,
                  ‘14‘ ‘NETPR‘   ‘14‘ ‘正味価格‘,
                  ‘15‘ ‘KWMENG‘  ‘20‘ ‘受注数量‘,
                  ‘16‘ ‘NETWR‘   ‘18‘ ‘正味額‘.
ENDFORM.

*&---------------------------------------------------------------------*
*& Form GET_PATH
*&---------------------------------------------------------------------*
*& ファイルパスを取得
*&---------------------------------------------------------------------*
*&      --> PU_PATH ファイルパス
*&---------------------------------------------------------------------*
FORM GET_PATH USING PU_PATH.
  DATA:    LC_FILENAME 
TYPE STRING,    LC_PATH     
TYPE STRING,    LC_FULLPATH 
TYPE STRING.  

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG    
EXPORTING
*      WINDOW_TITLE              =      DEFAULT_EXTENSION         
‘TXT‘      DEFAULT_FILE_NAME         
= LC_FILENAME
*      WITH_ENCODING             =
*      FILE_FILTER               =
*      INITIAL_DIRECTORY         =
*      PROMPT_ON_OVERWRITE       = ‘X‘    
CHANGING      FILENAME                  
= LC_FILENAME      PATH                      
= LC_PATH      FULLPATH                  
= LC_FULLPATH
*      USER_ACTION               =
*      FILE_ENCODING             =    
EXCEPTIONS      CNTL_ERROR                
1      ERROR_NO_GUI              
2      NOT_SUPPORTED_BY_GUI      
3      INVALID_DEFAULT_FILE_NAME 
4      
OTHERS                    5          
.

* 異常処理  
IF SY-SUBRC <> 0.    
MESSAGE S011 DISPLAY LIKE CNS_MTY_E.
*   ファイルパスが取得できません

* 正常処理  
ELSE.    PU_PATH 
= LC_FULLPATH.  
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form DATE_CHECK
*&---------------------------------------------------------------------*
*& 指定納期チェック
*&---------------------------------------------------------------------*
FORM DATE_CHECK .
* 必須チェック  
IF P_DATE IS INITIAL.    
MESSAGE S009 DISPLAY LIKE CNS_MTY_E.    
SET CURSOR FIELD P_DATE.    
LEAVE LIST-PROCESSING.  
ENDIF.

* 月初日  
CONCATENATE P_DATE CNS_DATE_01 INTO G_FIRST_DAY.
* 日付妥当性チェック  
CALL FUNCTION ‘DATE_CHECK_PLAUSIBILITY‘    
EXPORTING      
DATE                           = G_FIRST_DAY   
EXCEPTIONS     PLAUSIBILITY_CHECK_FAILED       
1     
OTHERS                          2            
.

* 異常処理  
IF SY-SUBRC <> 0.    
MESSAGE S010 DISPLAY LIKE CNS_MTY_E.
*   正しい日付を入力してください。    
LEAVE LIST-PROCESSING.  
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& 対象データ取得
*&---------------------------------------------------------------------*
FORM GET_DATA .
* 月末日取得  
PERFORM GET_DATE.

* 対象データ取得  
PERFORM GET_VBAK_VBAP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_DATE
*&---------------------------------------------------------------------*
*& 月末日取得
*&---------------------------------------------------------------------*
FORM GET_DATE .
* 月末日取得  
CALL FUNCTION ‘RP_LAST_DAY_OF_MONTHS‘    
EXPORTING      DAY_IN                  
= G_FIRST_DAY    
IMPORTING      LAST_DAY_OF_MONTH       
= G_LAST_DAY    
EXCEPTIONS      DAY_IN_NO_DATE          
1      
OTHERS                  2            
.

* 異常処理  
IF SY-SUBRC <> 0.    
MESSAGE S012 DISPLAY LIKE CNS_MTY_E.
*   月末日取得できません  
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_VBAK_VBAP
*&---------------------------------------------------------------------*
*& 対象データ取得
*&---------------------------------------------------------------------*
FORM GET_VBAK_VBAP .  
SELECT VBAK~VBELN         VBAP
~POSNR         VBAK
~KUNNR         VBAK
~VKORG         VBAP
~MATNR         VBAK
~VDATU         VBAP
~WERKS         VBAP
~WAERK         VBAP
~VRKME         VBAP
~NETPR         VBAP
~KWMENG         VBAP
~NETWR    
INTO CORRESPONDING FIELDS OF TABLE GT_DATA    
FROM VBAK   INNER 
JOIN VBAP      
ON VBAK~VBELN = VBAP~VBELN   
WHERE VBAK~VDATU >= G_FIRST_DAY     
AND VBAK~VDATU <= G_LAST_DAY     
AND VBAK~VBELN IN S_VBELN     
AND VBAK~KUNNR IN S_KUNNR.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_VKORG_TEXT
*&---------------------------------------------------------------------*
*& 販売組織テキスト取得
*&---------------------------------------------------------------------*
*&      --> PU_VKORG   : 販売組織
*&      <-- PC_VKORG_T : 販売組織テキスト
*&---------------------------------------------------------------------*
FORM GET_VKORG_TEXT USING PU_VKORG   TYPE VKORG                 
CHANGING PC_VKORG_T TYPE VTEXT.    

SELECT SINGLE VTEXT      
INTO PC_VKORG_T      
FROM TVKOT     
WHERE SPRAS = CNS_LANG_J       
AND VKORG = PU_VKORG.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_KUNNR_TEXT
*&---------------------------------------------------------------------*
*& 受注先テキスト取得
*&---------------------------------------------------------------------*
*&      --> PU_KUNNR   : 受注先
*&      <-- PC_KUNNR_T : 受注先テキスト
*&---------------------------------------------------------------------*
FORM GET_KUNNR_TEXT USING PU_KUNNR   TYPE KUNNR                 
CHANGING PC_KUNNR_T TYPE KNA1-NAME1.  

SELECT SINGLE NAME1    
INTO PC_KUNNR_T    
FROM KNA1   
WHERE KUNNR = PU_KUNNR.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_MATNR_TEXT
*&---------------------------------------------------------------------*
*& 品目コードテキスト取得
*&---------------------------------------------------------------------*
*&      --> PU_MATNR   : 品目コード
*&      <-- PC_MATNR_T : 品目コードテキスト
*&---------------------------------------------------------------------*
FORM GET_MATNR_TEXT USING PU_MATNR   TYPE MATNR                 
CHANGING PC_MATNR_T TYPE MAKTX.    

SELECT SINGLE MAKTX      
INTO PC_MATNR_T      
FROM MAKT     
WHERE MATNR = PU_MATNR       
AND SPRAS = CNS_LANG_J.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_WERKS_TEXT
*&---------------------------------------------------------------------*
*& プラントテキスト取得
*&---------------------------------------------------------------------*
*&      --> PU_WERKS   : プラント
*&      <-- PC_WERKS_T : プラントテキスト
*&---------------------------------------------------------------------*
FORM GET_WERKS_TEXT USING PU_WERKS   TYPE VBAP-WERKS                 
CHANGING PC_WERKS_T TYPE T001W-NAME1.    

SELECT SINGLE NAME1      
INTO PC_WERKS_T      
FROM T001W     
WHERE WERKS = PU_WERKS.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form EDIT_DATA
*&---------------------------------------------------------------------*
*& 対象データ編集
*&---------------------------------------------------------------------*
FORM EDIT_DATA .  
DATA:    LT_DATA 
TYPE GT_TYP,    LS_DATA 
TYPE GS_TYP.  LT_DATA[] 

= GT_DATA[].  
CLEAR GT_DATA[].  

LOOP AT LT_DATA INTO LS_DATA.

*   受注先テキスト取得    
PERFORM GET_KUNNR_TEXT USING LS_DATA-KUNNR                        
CHANGING LS_DATA-KUNNR_T.

*   販売組織テキスト取得    
PERFORM GET_VKORG_TEXT USING LS_DATA-VKORG                        
CHANGING LS_DATA-VKORG_T.

*   品目コードテキスト取得    
PERFORM GET_MATNR_TEXT USING LS_DATA-MATNR                        
CHANGING LS_DATA-MATNR_T.

*   プラントテキスト取得    
PERFORM GET_WERKS_TEXT USING LS_DATA-WERKS                        
CHANGING LS_DATA-WERKS_T.    

APPEND LS_DATA TO GT_DATA.  

ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form OUTPUT_DATA
*&---------------------------------------------------------------------*
*& 対象データ出力
*&---------------------------------------------------------------------*
FORM OUTPUT_DATA .

** レポートヘッダ出力
*  PERFORM WRITE_HEADER.
*
** データ出力
*  PERFORM OUTPUT_REPORT.

* 一覧表示が選択する場合  
IF R_1 = CON_X.
*   フィールドカタログ編集    
PERFORM EDIT_FIELDCAT.

*   ALV出力    
PERFORM OUTPUT_ALV.

* ファイルDLが選択する場合  
ELSEIF R_2 = CON_X.
*   DLファイルヘッダ行    
PERFORM EDIT_HEAD.
*   ファイルDL    
PERFORM FILE_DOWNLOAD.  

ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form WRITE_HEADER
*&---------------------------------------------------------------------*
*& レポートヘッダ出力
*&---------------------------------------------------------------------*
*FORM WRITE_HEADER .
*
*  WRITE: 040 ‘一覧表示‘.
*  ULINE AT /001(80).
*  WRITE:/001 ‘販売伝票‘,"10
*         012 ‘明細‘,"6
*         019 ‘受注先‘,"10
*         030 ‘受注先テキスト‘,"35
*         066 ‘販売組織‘,"4
*         075 ‘販売組織テキスト‘,"20
*         096 ‘品目コード‘,"18
*         115 ‘品目コードテキスト‘,"40
*         156 ‘指定納期‘,"8
*         165 ‘プラント‘,"4
*         174 ‘プラントテキスト‘,"30
*         205 ‘通貨‘,"5
*         212 ‘販売単位‘,"3
*         221 ‘正味価格‘,"11,2
*         236 ‘受注数量‘,"15,3
*         255 ‘正味額‘."15,2

*ENDFORM.
*&---------------------------------------------------------------------*
*& Form OUTPUT_REPORT
*&---------------------------------------------------------------------*
*& データ出力
*&---------------------------------------------------------------------*
*FORM OUTPUT_REPORT .
*  DATA:
*    LS_DATA TYPE GS_TYP.
*
*  LOOP AT GT_DATA INTO LS_DATA.
**    WRITE:/001 LS_DATA-VBELN,
**           012 LS_DATA-POSNR,
**           019 LS_DATA-KUNNR,
**           030 LS_DATA-KUNNR_T,
**           066 LS_DATA-VKORG,
**           075 LS_DATA-VKORG_T,
**           096 LS_DATA-MATNR,
**           115 LS_DATA-MATNR_T,
**           156 LS_DATA-VDATU,
**           165 LS_DATA-WERKS,
**           174 LS_DATA-WERKS_T,
**           205 LS_DATA-WAERK,
**           212 LS_DATA-VRKME,
**           221 LS_DATA-NETPR,
**           236 LS_DATA-KWMENG,
**           255 LS_DATA-NETWR.
*
*  ENDLOOP.
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form OUTPUT_ALV
*&---------------------------------------------------------------------*
*& ALV出力
*&---------------------------------------------------------------------*
FORM OUTPUT_ALV .
* ALV出力レイアウト  
DATA:    LS_LAYOUT   
TYPE SLIS_LAYOUT_ALV.    " レイアウト  LS_LAYOUT

-ZEBRA             ‘X‘.           " 縞模様  LS_LAYOUT
-COLWIDTH_OPTIMIZE ‘X‘.           " セル長さ合わせ

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘ 
EXPORTING
*   I_INTERFACE_CHECK                 = ‘ ‘
*   I_BYPASSING_BUFFER                = ‘ ‘
*   I_BUFFER_ACTIVE                   = ‘ ‘   I_CALLBACK_PROGRAM                
= SY-REPID
*   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                  =
*   I_BACKGROUND_ID                   = ‘ ‘
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =   IS_LAYOUT                         
= LS_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        =
*   O_PREVIOUS_SRAL_HANDLER           =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =  
TABLES    T_OUTTAB                          
= GT_DATA[]  
EXCEPTIONS    PROGRAM_ERROR                     
1    
OTHERS                            2          
.

* 異常処理  
IF SY-SUBRC <> 0.    
MESSAGE ID SY-MSGID          
TYPE SY-MSGTY        
NUMBER SY-MSGNO          
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FILE_DOWNLOAD
*&---------------------------------------------------------------------*
*& ファイルDL
*&---------------------------------------------------------------------*
FORM FILE_DOWNLOAD .

CALL FUNCTION ‘GUI_DOWNLOAD‘  
EXPORTING
*   BIN_FILESIZE                    =    FILENAME                        
= P_PATH    FILETYPE                        
‘ASC‘
*   APPEND                          = ‘ ‘    WRITE_FIELD_SEPARATOR           
‘X‘
*   HEADER                          = ‘00‘
*   TRUNC_TRAILING_BLANKS           = ‘ ‘
*   WRITE_LF                        = ‘X‘
*   COL_SELECT                      = ‘ ‘
*   COL_SELECT_MASK                 = ‘ ‘
*   DAT_MODE                        = ‘ ‘
*   CONFIRM_OVERWRITE               = ‘ ‘
*   NO_AUTH_CHECK                   = ‘ ‘
*   CODEPAGE                        = ‘ ‘
*   IGNORE_CERR                     = ABAP_TRUE
*   REPLACEMENT                     = ‘#‘
*   WRITE_BOM                       = ‘ ‘
*   TRUNC_TRAILING_BLANKS_EOL       = ‘X‘
*   WK1_N_FORMAT                    = ‘ ‘
*   WK1_N_SIZE                      = ‘ ‘
*   WK1_T_FORMAT                    = ‘ ‘
*   WK1_T_SIZE                      = ‘ ‘
*   WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
*   SHOW_TRANSFER_STATUS            = ABAP_TRUE
*   VIRUS_SCAN_PROFILE              = ‘/SCET/GUI_DOWNLOAD‘
* IMPORTING
*   FILELENGTH                      =  
TABLES    DATA_TAB                        
= GT_DATA    FIELDNAMES                      
= GT_HEAD  
EXCEPTIONS    FILE_WRITE_ERROR                
1    NO_BATCH                        
2    GUI_REFUSE_FILETRANSFER         
3    INVALID_TYPE                    
4    NO_AUTHORITY                    
5    UNKNOWN_ERROR                   
6    HEADER_NOT_ALLOWED              
7    SEPARATOR_NOT_ALLOWED           
8    FILESIZE_NOT_ALLOWED            
9    HEADER_TOO_LONG                 
10    DP_ERROR_CREATE                 
11    DP_ERROR_SEND                   
12    DP_ERROR_WRITE                  
13    UNKNOWN_DP_ERROR                
14    ACCESS_DENIED                   
15    DP_OUT_OF_MEMORY                
16    DISK_FULL                       
17    DP_TIMEOUT                      
18    FILE_NOT_FOUND                  
19    DATAPROVIDER_EXCEPTION          
20    CONTROL_FLUSH_ERROR             
21    
OTHERS                          22          
.
* 異常処理  
IF SY-SUBRC <> 0.    
MESSAGE ID SY-MSGID          
TYPE SY-MSGTY        
NUMBER SY-MSGNO          
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.  
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form EDIT_HEAD
*&---------------------------------------------------------------------*
*& DLファイルヘッダ行
*&---------------------------------------------------------------------*
FORM EDIT_HEAD .  
DATA:    LS_HEAD 
TYPE GS_TYP_HEAD.  LS_HEAD

-HEAD_NAME ‘販売伝票‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘販売伝票明細‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘受注先‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘受注先テキスト‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘販売組織‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘販売組織テキスト‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘品目コード‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘品目コードテキスト‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘指定納期‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘プラント‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘プラントテキスト‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘販売伝票通貨‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘販売単位‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘正味価格‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘受注数量‘.  
APPEND LS_HEAD TO GT_HEAD.  LS_HEAD
-HEAD_NAME ‘正味額‘.  
APPEND LS_HEAD TO GT_HEAD.

ENDFORM.

【SAP】ALV練習(一覧、DL)

原文:https://www.cnblogs.com/ogyoho/p/13677782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!