116、SAP導出表結構並保存到Excel,方便寫代碼時復制粘貼


01. 在SE38模塊,創建一個程序

 

 

02.ABAP代碼如下:

*&---------------------------------------------------------------------*
*& Report Z_TIANPAN_20190716_HELLO
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*

* 此條為系統自動生成,為程序名
REPORT z_tianpan_20190716_hello NO STANDARD PAGE HEADING
                 MESSAGE-ID y2
                 LINE-SIZE  200
                 LINE-COUNT 65 .

TABLES: dfies, x030l,rlgrap.

DATA: BEGIN OF itab OCCURS 0.
    INCLUDE STRUCTURE dfies.
DATA: END OF itab.

*文件保存路徑
DATA: g_file LIKE rlgrap-filename.

*數據庫字段結構表
DATA:BEGIN OF itab1 OCCURS 0,
       fieldname    LIKE dfies-fieldname,  "字段名
       keyflag(4),       "KEY
       rollname(12),     "數據元素
       datatype(8),      "數據類型
       leng(6),          "長度
       decimals(6),      "小數位
       fieldtext    LIKE dfies-fieldtext,   "字段簡短描述
     END OF itab1.

*定義屏幕
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
PARAMETERS:table    TYPE ddobjname DEFAULT 'VBAK',        "默認表名
           field    TYPE dfies-fieldname,                 "字段名
           p_dnfile LIKE rlgrap-filename DEFAULT 'G:\'.   "默認存放地址
SELECTION-SCREEN END OF BLOCK blk1.

START-OF-SELECTION.
  PERFORM read_data."從表中讀取數據

END-OF-SELECTION.
  PERFORM write_data."輸出數據


*--從表中讀取數據----------------------------------------
FORM read_data .
*****CALL FUNCTION*****
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      tabname        = table  "自己輸的表名
      fieldname      = field  "字段
      langu          = sy-langu "語言碼
    TABLES
      dfies_tab      = itab " like table dfies.
    EXCEPTIONS
      not_found      = 1
      internal_error = 2
      OTHERS         = 3.
  IF sy-subrc <> 0.
*    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  itab1-fieldname = '字段'.  "Fieldname
  itab1-keyflag = '主鍵'.    "KEY
  itab1-rollname = '數據元素'.   "Data Element
  itab1-datatype = '數據類型'.   "Data Type
  itab1-leng = '長度'.       "Length
  itab1-decimals = '小數位'.  "Decimal Place
  itab1-fieldtext = '短文本'.  "Short Description
  APPEND itab1.
  CLEAR itab1.

  LOOP AT itab.
    itab1-fieldname = itab-fieldname.
    itab1-keyflag = itab-keyflag.
    itab1-rollname = itab-rollname.
    itab1-datatype = itab-datatype.
    itab1-leng = itab-leng.
    itab1-decimals = itab-decimals.
    itab1-fieldtext = itab-fieldtext.
    APPEND itab1.
    CLEAR itab1.
  ENDLOOP.

*將內表數據下載到本地,類型為Excel
  CONCATENATE p_dnfile table '.xls' INTO g_file.
  CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
      filename = g_file
      filetype = 'DAT'
    TABLES
      data_tab = itab1.  "被下載的內表

ENDFORM.


*--輸出數據----------------------------------------
FORM write_data .
  LOOP AT itab1.
    WRITE:/ itab1-fieldname,  "Fieldname
            itab1-keyflag,    "KEY
            itab1-rollname,   "Data Element
            itab1-datatype,   "Data Type
            itab1-leng,       "Length
            itab1-decimals,   "Decimal Place
            itab1-fieldtext.  "Short Description
  ENDLOOP.
ENDFORM.                    " write_data

 

 

 03.代碼執行一下

 

 

04.文件已經被保存了,很完美

 

 

 

 

原創不易,如果您認為這篇文章有價值,認同作者的付出,可以微信二維碼打賞任意金額給作者(微信號:382477247)哦,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM