---------------------------------------------------------------------*
*& Report ZPPR033
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPPR033 NO STANDARD PAGE HEADING MESSAGE-ID OO.
INCLUDE ZPRJ001_INCL.
*----------------------------------------------------------------------*
* TABLE DECLARATION *
*----------------------------------------------------------------------*
TABLES: SSCRFIELDS."选择屏幕-下载模板按钮
*----------------------------------------------------------------------*
* TYPE-POOLS *
*----------------------------------------------------------------------*
TYPE-POOLS: SLIS,VRM,TRUXS. "#EC *
*----------------------------------------------------------------------*
* CONSTANTS *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* TYPES *
*----------------------------------------------------------------------*
TYPES: BEGIN OF ty_excel,
MATNR TYPE string,"物料号
STLAN TYPE string,"用途
WERKS TYPE string,"工厂
STLAL TYPE string,"可选BOM
POSNR TYPE string,"项目号
IDNRK TYPE string,"BOM组件
MENGE TYPE string,"数量
SORTP TYPE string,"修改:添加->排序字符串
POTX1 TYPE string,"修改:添加->行1(替代备件)
POTX2 TYPE string,"修改:添加->行2(替换备件)
SANKA TYPE string,"成本核算标识相关
UPOSZ TYPE string,"修改:添加->子项目编号
EBORT TYPE string,"修改:添加->子项目安装地点
UPMNG TYPE string,"修改:添加->子项目数量
END OF ty_excel.
TYPES: BEGIN OF ty_output,
ZSEL TYPE C,
INDEX TYPE SY-INDEX,
MATNR(18),"物料号
STLAN(1),"用途
WERKS(4),"工厂
STLAL(2),"可选BOM
POSNR(4),"项目号
IDNRK(18),"组件
MENGE(13),"数量
SORTP(10),"修改:添加->排序字符串
POTX1(40),"修改:添加->行1(替代备件)
POTX2(40),"修改:添加->行2(替换备件)
SANKA(1),"成本核算标识相关
UPOSZ(4),"修改:添加->子项目编号
EBORT(20),"修改:添加->子项目安装地点
UPMNG(17),"修改:添加->子项目数量
POSTP(1),"项目类别
* POTX1 TYPE string,"
* RFPNT TYPE string,
TYPE TYPE BAPI_MTYPE,"消息类型
MESSAGE TYPE BAPI_MSG,"消息类别
COLOR_ROW TYPE CHAR4,"行颜色
END OF ty_output.
TYPES: BEGIN OF ty_screen,
DATUV TYPE DATUM,
END OF ty_screen.
*----------------------------------------------------------------------*
* DATA *
*----------------------------------------------------------------------*
DATA: gs_excel TYPE ty_excel,
gt_excel TYPE TABLE OF ty_excel,
gs_output TYPE ty_output,
gt_output TYPE TABLE OF ty_output,
gs_output1 TYPE ty_output,
gt_output1 TYPE TABLE OF ty_output,
gs_screen TYPE ty_screen,
gv_datuv TYPE BICSK-DATUV.
*---for alv
DATA: GWA_LAYOUT TYPE SLIS_LAYOUT_ALV,
GIT_FIELD TYPE SLIS_T_FIELDCAT_ALV,
GWA_FIELD LIKE LINE OF GIT_FIELD, "#EC *
GIT_SORT TYPE SLIS_T_SORTINFO_ALV,
GWA_SORT LIKE LINE OF GIT_SORT. "#EC *
*----------------------------------------------------------------------*
* SCREEN DECLARATION: PARAMETERS & SELECT-OPTIONS *
*----------------------------------------------------------------------*
SELECTION-SCREEN: FUNCTION KEY 1. "激活下载模板按钮
SELECTION-SCREEN: BEGIN OF BLOCK B01 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_DATUV FOR gs_screen-DATUV NO-EXTENSION NO INTERVALS OBLIGATORY DEFAULT sy-datum.
PARAMETERS P_FILE LIKE RLGRAP-FILENAME. "#EC *
SELECTION-SCREEN: END OF BLOCK B01.
*----------------------------------------------------------------------*
* INCLUDE FILES FOR PROCESSING *
*----------------------------------------------------------------------*
*INCLUDE xxx.
*----------------------------------------------------------------------*
* DEFINE *
*----------------------------------------------------------------------*
DEFINE M_ALV_FIELDCAT.
GWA_FIELD-FIELDNAME = &1.
GWA_FIELD-OUTPUTLEN = &2.
GWA_FIELD-REPTEXT_DDIC = &3.
GWA_FIELD-EDIT = &4.
GWA_FIELD-CHECKBOX = &5.
GWA_FIELD-REF_FIELDNAME = &6.
GWA_FIELD-REF_TABNAME = &7.
GWA_FIELD-JUST = &8.
GWA_FIELD-NO_ZERO = &9.
APPEND GWA_FIELD TO GIT_FIELD.
CLEAR GWA_FIELD.
END-OF-DEFINITION.
*----------------------------------------------------------------------*
* INITIALIZATION *
*----------------------------------------------------------------------*
INITIALIZATION.
SSCRFIELDS-FUNCTXT_01 = '下载模板'.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN OUTPUT *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM FRM_CHOOSE_FILE."选择文件
* AT SELECTION-SCREEN *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM FRM_DOWNLOAD_TEMPLATE."下载模板
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FRM_RETRIVE_DATA."get data
PERFORM FRM_PROCESS_DATA."process data
PERFORM FRM_ZUSENUM USING 3.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM frm_write_log.
PERFORM FRM_OUTLOG.
*&---------------------------------------------------------------------*
*& Form FRM_CHOOSE_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CHOOSE_FILE .
DATA: LC_MASK TYPE CHAR30.
LC_MASK = ' Excel Files,*.xls,All Files,*.*.'.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = '*.xls'
DEF_PATH = 'C:\'
MASK = LC_MASK
MODE = 'O'
TITLE = TEXT-002
IMPORTING
FILENAME = P_FILE
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5
.
IF SY-SUBRC <> 0 AND SY-SUBRC <> 3.
MESSAGE TEXT-003 TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " FRM_CHOOSE_FILE
*&---------------------------------------------------------------------*
*& Form FRM_DOWNLOAD_TEMPLATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
*----------------------------------------------------------------------*
FORM FRM_DOWNLOAD_TEMPLATE .
DATA: LC_FILE TYPE RLGRAP-FILENAME.
DATA: LC_WWWDATATAB TYPE WWWDATATAB VALUE 'MIZPPB001'.
CASE SSCRFIELDS-UCOMM.
WHEN'FC01'."下载模板
"获取要下载的文件路径
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = 'MD_B_PP_002_BOM批量导入模板.xls'
DEF_PATH = 'C:\'
* MASK = lc_mask
MODE = 'S'
* TITLE = text-005
IMPORTING
FILENAME = LC_FILE
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5
.
IF SY-SUBRC = 0.
"下载模板到指定路径
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = LC_WWWDATATAB
DESTINATION = LC_FILE
* IMPORTING
* RC =
* CHANGING
* TEMP =
.
ENDIF.
ENDCASE.
ENDFORM. " FRM_DOWNLOAD_TEMPLATE
转载于:https://my.oschina.net/lanzp/blog/188346