根据业务需求,将EXCEL的生产版本的相关数据通过程序导入到系统。
TABLES:SSCRFIELDS.
TYPE-POOLS : slis,icon,truxs .
TYPES:
BEGIN OF ty_alv,
werks TYPE mkal-werks, "工厂
matnr TYPE mkal-matnr, "物料编码
verid TYPE mkal-verid, "生产版本
text1 TYPE mkal-text1, "生产版本描述
adatu TYPE string, "有效日期从
bdatu TYPE string, "有效日期至 都为99991231
* ADATU TYPE MKAL-ADATU, "有效日期从
* BDATU TYPE MKAL-BDATU, "有效日期至 都为99991231
plnty TYPE mkal-plnty, "任务清单类型 默认都为N
plnnr TYPE mkal-plnnr, "工艺路线组
alnal TYPE mkal-alnal, "组计数器 默认都为1
stlal TYPE mkal-stlal, "可选BOM
stlan TYPE mkal-stlan, "BOM用途 默认都为1
id TYPE icon-id,
mess(200) TYPE c,
box TYPE c,
END OF ty_alv.
DATA : gt_alv TYPE TABLE OF ty_alv,
gs_alv LIKE LINE OF gt_alv.
DATA : gv_id TYPE icon-id,
gv_mess(200) TYPE c.
TYPES:
BEGIN OF ty_upload,
werks TYPE mkal-werks, "工厂
matnr TYPE mkal-matnr, "物料编码
verid TYPE mkal-verid, "生产版本
text1 TYPE mkal-text1, "生产版本描述
adatu TYPE string, "有效日期从
bdatu TYPE string, "有效日期至 都为99991231
* ADATU TYPE MKAL-ADATU, "有效日期从
* BDATU TYPE MKAL-BDATU, "有效日期至 都为99991231
plnty TYPE mkal-plnty, "任务清单类型 默认都为N
plnnr TYPE mkal-plnnr, "工艺路线组
alnal TYPE mkal-alnal, "组计数器 默认都为1
stlal TYPE mkal-stlal, "可选BOM
stlan TYPE mkal-stlan, "BOM用途 默认都为1
END OF ty_upload.
DATA : gt_upload TYPE TABLE OF ty_upload,
gs_upload LIKE LINE OF gt_upload.
FIELD-SYMBOLS : <fs_alv> TYPE ty_alv.
DATA gt_bdcdata TYPE TABLE OF bdcdata WITH HEADER LINE. "BDC执行内表
DATA gt_msgtab TYPE TABLE OF bdcmsgcoll WITH HEADER LINE . "BDC返回信息表
TYPES: BEGIN OF ty_message,
message(100) TYPE c,
ztype TYPE c,
END OF ty_message.
DATA:gt_mes TYPE TABLE OF ty_message,
gs_mes TYPE ty_message.
*&---定义ALV显示的字段列及其描述等属性
DATA: gt_fieldcat TYPE TABLE OF lvc_s_fcat,
gs_fieldcat TYPE lvc_s_fcat,
gs_layout TYPE lvc_s_layo,
g_repid LIKE sy-repid VALUE sy-repid.
DATA:FUNCTXT TYPE SMP_DYNTXT.
*--进度条--------------------------------------------------------------------*
"进度条标志
DATA:GV_FLAG TYPE C.
"进度条变量
DATA:GV_INDEX TYPE SY-TABIX.
"上传模板条目数
DATA:GV_LINES TYPE I.
*----------定义选择屏幕参数 ------------------------------------------------*
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
PARAMETERS:
p_path LIKE rlgrap-filename, "文件路径
p_mode TYPE c DEFAULT 'N'.
SELECTION-SCREEN END OF BLOCK blk1.
*-------初始化-------------------------------------------------------------*
INITIALIZATION.
FUNCTXT-ICON_ID = ICON_EXPORT.
FUNCTXT-QUICKINFO = '下载模板'.
FUNCTXT-ICON_TEXT = '下载模板'.
SSCRFIELDS-FUNCTXT_01 = FUNCTXT.
*----选择屏幕事件----------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. "为P_PATH创建搜索帮助
PERFORM frm_browser_file. "选择屏幕获取本地EXCEL
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'FC01'."系统预留的功能码
PERFORM frm_down_excel."下载模板文件
WHEN OTHERS.
ENDCASE.
*----选择事件开始----------------------------------------------------------*
START-OF-SELECTION.
IF p_path IS INITIAL.
MESSAGE '请输入文件路径!' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
PERFORM frm_up_excel. "上传Excel数据
PERFORM frm_chk_data. "检查数据
PERFORM frm_layout.
PERFORM frm_fieldcat.
PERFORM frm_display.
*----选择事件结束----------------------------------------------------------*
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form FRM_BROWSER_FILE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_browser_file .
CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'
EXPORTING
* DEF_FILENAME = ' '
* DEF_PATH = ' '
mask = 'Excel Files,*.xls,All Files,*.*. '
mode = 'O'
* TITLE = ' '
IMPORTING
filename = p_path
* PATH =
* FILE =
EXCEPTIONS
selection_cancel = 1
selection_error = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN 2.
MESSAGE 'Cancel.' TYPE 'S'.
WHEN OTHERS.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*