ABAP CODE:การนำข้อมูล Internal Table จากโปรแกรม มาเก็บไว้ในไฟล์ .TEXT

บทความก่อนหน้านี้ ผมเขียนถึงวิธีการนำข้อมูลไฟล์จากภายนอกมาเก็บไว้ใน Internal Table (ABAP Code:การนำข้อมูล Text File จากข้างนอก มาเก็บไว้ใน Internal Table) เพื่อไม่ให้น้อยหน้า วันนี้เลยเอาวิธีการนำข้อมูล(Internal Table)จากโปรแกรม มาเก็บไว้ในไฟล์

*  Program      : ZGETFILE2
*  Title        : Get internal table to file
*  Author       : Todsapon Kumnuan (todsapon.com)
*  R/3 Release  : ECC5

REPORT ztestpon
MESSAGE-ID fi.

TYPE-POOLS: truxs.

DATA: itab1 TYPE truxs_t_text_data.

DATA: BEGIN OF t_itab OCCURS 0,      "Conditions A
name(20) TYPE c,
url(20)  TYPE c,
END OF t_itab.

PARAMETERS: p_file  LIKE rfpdo2-febscfnam OBLIGATORY MODIF ID nc1.

INITIALIZATION.
IF p_file IS INITIAL.
CONCATENATE 'C:\temp\' 'todsapon_com.txt'  INTO p_file.
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
mask      = ',*.txt,*.txt,*.cvs,*.cvs'
static    = 'X'
CHANGING
file_name = p_file.

START-OF-SELECTION.
PERFORM read_main_data.
PERFORM gui_download.

FORM read_main_data.
t_itab-name = 'Todsapon Kumnuan'.
t_itab-url  = 'Todsapon.com'.
APPEND t_itab.
ENDFORM.                    "read_main_data

FORM gui_download.
DATA: lv_file TYPE  string,
textline TYPE string,
textlinex TYPE string,
ans.
CALL FUNCTION 'SAP_CONVERT_TO_TXT_FORMAT'
EXPORTING
i_field_seperator          = ''
*   I_LINE_HEADER              = I_LINE_HEADER
*   I_FILENAME                 = I_FILENAME
i_appl_keep                = ''
TABLES
i_tab_sap_data             = t_itab
CHANGING
i_tab_converted_data       = itab1
EXCEPTIONS
conversion_failed          = 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.

TRANSLATE p_file TO UPPER CASE.
lv_file = p_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = lv_file
TABLES
data_tab = itab1
EXCEPTIONS
OTHERS   = 1.
IF sy-subrc = 0.
CLEAR: textline,
textlinex.
textline = 'Download successfully!' .
textlinex = '' .
ELSE.
CLEAR: textline,
textlinex.
textline = 'Download error!' .
textlinex = 'Please try again.' .
ENDIF.
CALL FUNCTION 'POPUP_TO_DECIDE_INFO'
EXPORTING
textline1 = textline
textline2 = textlinex
titel     = 'Message Popup!'
IMPORTING
answer    = ans.
ENDFORM.                    "GUI_DOWNLOAD

จากโปรแกรม จะได้ไฟล์ todsapon_com.txt อยู่ใน Path ที่ได้ทำการเลือกที่หน้าจอครับ ในที่นี้สามารถเลือกที่จะเก็บไฟล์ได้และยังสามารถเปลี่ยนชื่อไฟล์ได้ตามต้องการ ข้อมูลในไฟล์นั้น ก็
คอลัมน์ที่ 1 Todsapon Kumnuan
คอลัมน์ที่ 2 Todsapon.com