ABAP程序编写模板导入程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ABAP程序编写模板导入程序
*———————————————————————-* * 功能名称:ABAP/4 编辑器模式- 插入” 命令-增加模板* 程序ID :ZTEST_INSERT_TSE05
* 程序名:增加模板(更新表: TSE05)
* 作者:liuzf
* 完成日:2012/04/19 *———————————————————————-* * 《主要功能》
* 1.在编辑器选择模式 - 其他模式插入代码格式*———————————————————————-* * 《修改记录》
* 更新日 NO. 更新者更新内容
* ———–—–———–—————————————* * 2012/04/19 0001 LIUZF 新建
*&———————————————————————* REPORT ylp_test LINE-COUNT 120 LINE-SIZE 120.
*———————————————————————-* * INTERNAL TABLE *———————————————————————-* **—- INTERNAL TABLE —-**
DATA:
td_updata TYPE TABLE OF string,
td_tse05 TYPE TABLE OF tse05, "编辑器”插入”
**—- HEADER —-**
th_tse05 LIKE LINE OF td_tse05. "编辑器”插入”*———————————————————————-*
* DATA
*———————————————————————-*
DATA:
w_path TYPE string. "文件路径
*———————————————————————-*
* PARAMETERS
*———————————————————————-*
SELECTION-SCREEN SKIP 1.
PARAMETERS:
p_name TYPE c LENGTH 30 VISIBLE LENGTH 30 OBLIGATORY."模板名
PARAMETERS:
p_pcfile TYPE c LENGTH 80 VISIBLE LENGTH 50 OBLIGATORY."文件路径
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN COMMENT /8(60) text-t01.
*====================================== ================================*
* MAIN ROUTINE
*====================================== ================================*
*———————————————————————-*
* INITIALIZATION
*———————————————————————-*
INITIALIZATION.
* 标题设定
SET TITLEBAR '1001'. "选择画面标题(增加模板)
*———————————————————————-*
* AT SELECTION-SCREEN ON VALUE-REQUEST *———————————————————————-* AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_pcfile.
* 文件上传 F4 帮助菜单
PERFORM frm_set_scrwf4 USING 'P_PCFILE'.
*———————————————————————-*
* AT SELECTION-SCREEN *———————————————————————-* AT SELECTION-SCREEN.
IF p_pcfile IS NOT INITIAL.
* 存在性检查
SELECT COUNT(*) FROM tse05 WHERE keyword = p_name. IF sy-dbcnt > 0.
MESSAGE '此模板已经存在!' TYPE 'E
'.
ENDIF.
* 获取上传文件内容
PERFORM frm_get_updata.
ENDIF.
*———————————————————————-*
* START-OF-SELECTION *———————————————————————-* START-OF-SELECTION.
PERFORM frm_insert_data.
END-OF-SELECTION.
*&———————————————————————*
*& Form FRM_SET_SCRWF4
*&———————————————————————*
* 文件上传 F4 帮助菜单*———————————————————————-*
* –>I_FILENAME 文件路径*———————————————————————-* FORM frm_set_scrwf4 USING i_filename.
DATA:
ltd_file_table TYPE filetable,
lth_file_table LIKE LINE OF ltd_file_table,
lw_rc TYPE i.
* 获取文件路径
CALL METHOD cl_gui_frontend_services=>file_open_dialog * EXPORTING
* WINDOW_TITLE =
* DEFAULT_EXTENSION =
* DEFAULT_FILENAME =
* FILE_FILTER =
* WITH_ENCODING =
* INITIAL_DIRECTORY =
* MULTISELECTION =
CHANGING
file_table = ltd_file_table
rc = lw_rc
* USER_ACTION =
* FILE_ENCODING =
* EXCEPTIONS
* FILE_OPEN_DIALOG_FAILED = 1
* CNTL_ERROR = 2
* ERROR_NO_GUI = 3
* NOT_SUPPORTED_BY_GUI = 4
* OTHERS = 5
.
IF sy-subrc = 0.
READ TABLE ltd_file_table INDEX 1 INTO lth_file_table. IF sy-subrc = 0.
p_pcfile = lth_file_table.
ENDIF.
ENDIF.
ENDFORM. "FRM_SET_SCRWF4
*&———————————————————————* *& Form FRM_GET_UPDATA
*&———————————————————————* * 获取上传文件内容*———————————————————————-* FORM frm_get_updata .
w_path = p_pcfile.
CALL METHOD cl_gui_frontend_services=>gui_upload EXPORTING
filename = w_path
filetype = 'ASC'
* HAS_FIELD_SEPARATOR = SPACE
* HEADER_LENGTH = 0
* READ_BY_LINE = ’X’
* DAT_MODE = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = ’#’
* VIRUS_SCAN_PROFILE =
* IMPORTING
* FILELENGTH =
* HEADER =
CHANGING
data_tab = td_updata
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
* NO_BATCH = 3
* GUI_REFUSE_FILETRANSFER = 4
* INVALID_TYPE = 5
* NO_AUTHORITY = 6
* UNKNOWN_ERROR = 7
* BAD_DATA_FORMAT = 8
* HEADER_NOT_ALLOWED = 9
* SEPARATOR_NOT_ALLOWED
= 10
* HEADER_TOO_LONG = 11
* UNKNOWN_DP_ERROR = 12
* ACCESS_DENIED = 13
* DP_OUT_OF_MEMORY = 14
* DISK_FULL = 15
* DP_TIMEOUT = 16
* NOT_SUPPORTED_BY_GUI = 17
* ERROR_NO_GUI = 18
* OTHERS = 19
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF td_updata IS INITIAL.
MESSAGE '请选择路径' TYPE 'E'.
ENDIF.
ENDFORM. "FRM_GET_UPDATA
*&———————————————————————*
*& Form FRM_INSERT_DATA
*&———————————————————————*
* 插入模板
*———————————————————————-*
FORM frm_insert_data .
DATA:
l_line TYPE i,
lw_value(72) TYPE c .
LOOP AT td_updata INTO lw_value.
l_line = l_line + 1 .
th_tse05-position = l_line.
th_tse05-app_obj = 'ABAP'.
th_tse05-keyword = p_name.
th_tse05-line = lw_value.
APPEND th_tse05 TO td_tse05 .
CLEAR:
th_tse05,
lw_value.
ENDLOOP.
INSERT tse05 FROM TABLE td_tse05 ACCEPTING DUPLICATE KEYS.
IF sy-subrc = 0.
COMMIT WORK.
* 更新成功结果显示
PERFORM frm_success_report.
MESSAGE '更新成功!' TYPE 'S'.
ELSE.
ROLLBACK WORK.
MESSAGE '更新失败!' TYPE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. "FRM_INSERT_DATA
*&———————————————————————* *& Form FRM_SUCCESS_REPORT
*&———————————————————————* * 更新成功结果显示*———————————————————————-* FORM frm_success_report .
DATA:
lw_value(73) TYPE c .
WRITE:
/2(20) '处理成功'.
LOOP AT td_updata INTO lw_value.
CONCATENATE '|' lw_value INTO lw_value .
WRITE:
/4(100) lw_value,
77(2) '|'.
CLEAR:
lw_value.
ENDLOOP.
ENDFORM. "FRM_SUCCESS_REPORT。

相关文档
最新文档