一、功能逻辑








二、功能界面









三、功能代码
*&---------------------------------------------------------------------*
*& Report ZRPFICO_0007
*&---------------------------------------------------------------------*
*& 程序名:ZRPFICO_0007
*&---------------------------------------------------------------------*
REPORT zrpmm_0002 MESSAGE-ID zmm01.
************************************************************************
* 表参考 *
************************************************************************
TABLES:sscrfields.
************************************************************************
* 类型定义 *
************************************************************************
TYPES:BEGIN OF ty_sheet,"用于多sheet导入
name(50) TYPE c,
END OF ty_sheet.
TYPES:BEGIN OF ty_data,
col1(18), "在多个表导入的情况下第一个字段共用
col2(60),
col3(200),
col4(200),
col5(200),
col6(60),
col7(60),
col8(60),
col9(60),
col10(60),
col11(60),
col12(60),
col13(60),
col14(60),
col15(60),
col16(60),
col17(60),
col18(60),
col19(60),
col20(60),
col21(60),
col22(60),
col23(60),
col24(60),
col25(60),
col26(60),
col27(60),
col28(60),
col29(60),
col30(60),
col31(60),
col32(60),
col33(60),
col34(60),
icon TYPE icon_d,
message TYPE char200,
END OF ty_data.
TYPES:BEGIN OF ty_txz,
class LIKE klah-class, "分类
atnam LIKE cabn-atnam, "特征
atfor LIKE cabn-atfor, "特征值类型
END OF ty_txz.
************************************************************************
* 内表工作区定义 *
************************************************************************
DATA:gt_sheet TYPE TABLE OF ty_sheet,
gt_data TYPE TABLE OF ty_data,
gt_data1 TYPE TABLE OF ty_data,
gt_data2 TYPE TABLE OF ty_data,
gt_data3 TYPE TABLE OF ty_data,
gt_data4 TYPE TABLE OF ty_data,
gt_data5 TYPE TABLE OF ty_data,
gt_data6 TYPE TABLE OF ty_data,
gt_data7 TYPE TABLE OF ty_data,
gt_data8 TYPE TABLE OF ty_data,
gt_data9 TYPE TABLE OF ty_data,
gt_data10 TYPE TABLE OF ty_data,
gt_data11 TYPE TABLE OF ty_data,
gw_data TYPE ty_data.
DATA:gt_excel01 TYPE TABLE OF zalsmex_tabline,
gt_excel02 TYPE TABLE OF zalsmex_tabline,
gt_excel03 TYPE TABLE OF zalsmex_tabline,
gt_excel04 TYPE TABLE OF zalsmex_tabline.
DATA:gt_ztmm0001 TYPE TABLE OF ztmm0001,
gs_ztmm0001 TYPE ztmm0001.
***********
*常量定义 *
************************************************************************
***********
*BAPI 变量定义 *
************************************************************************
DATA:gs_head TYPE bapimathead,
gs_mara TYPE bapi_mara,
gs_marax TYPE bapi_marax,
gs_marc TYPE bapi_marc,
gs_marcx TYPE bapi_marcx,
gs_mard TYPE bapi_mard,
gs_mardx TYPE bapi_mardx,
gs_mbew TYPE bapi_mbew,
gs_mbewx TYPE bapi_mbewx,
gs_mvke TYPE bapi_mvke,
gs_mvkex TYPE bapi_mvkex,
gt_makt TYPE TABLE OF bapi_makt WITH HEADER LINE,
gt_marm TYPE TABLE OF bapi_marm WITH HEADER LINE,
gt_marmx TYPE TABLE OF bapi_marmx WITH HEADER LINE,
gs_return TYPE bapi_matreturn2,
gt_mlan TYPE TABLE OF bapi_mlan WITH HEADER LINE.
DATA:gt_tline TYPE TABLE OF tline WITH HEADER LINE,
gs_text TYPE thead.
DATA:gv_classtype LIKE bapi1003_key-classtype, "类型
gv_classnum LIKE bapi1003_key-classnum, "类名
gv_objecttable LIKE bapi1003_key-objecttable,
gv_object_long LIKE bapi1003_key-object_long.
DATA:gt_val_num LIKE TABLE OF bapi1003_alloc_values_num WITH HEADER LINE,
gt_val_char LIKE TABLE OF bapi1003_alloc_values_char WITH HEADER LINE,
gt_val_curr LIKE TABLE OF bapi1003_alloc_values_curr WITH HEADER LINE,
gt_return LIKE TABLE OF bapiret2 WITH HEADER LINE.
DATA:gt_txz TYPE TABLE OF ty_txz.
************************************************************************
* ALV 相关变量定义 *
************************************************************************
DATA:gt_fieldcat TYPE lvc_t_fcat.
DATA:gw_fieldcat LIKE LINE OF gt_fieldcat.
DATA:gw_layout TYPE lvc_s_layo.
DATA:gt_sort TYPE lvc_t_sort WITH HEADER LINE.
DATA:go_grid TYPE REF TO cl_gui_alv_grid, ""object
gs_stbl TYPE lvc_s_stbl. ""稳定刷新
************************************************************************
* 宏定义
************************************************************************
DEFINE def_fieldcat.
CLEAR gw_fieldcat.
gw_fieldcat-fieldname = &1.
gw_fieldcat-ref_table = &2.
gw_fieldcat-ref_field = &3.
gw_fieldcat-reptext = &4.
gw_fieldcat-coltext = &4.
gw_fieldcat-scrtext_l = &4.
gw_fieldcat-scrtext_m = &4.
gw_fieldcat-scrtext_s = &4.
gw_fieldcat-no_zero = &5.
gw_fieldcat-edit = &6.
gw_fieldcat-outputlen = &7.
gw_fieldcat-checkbox = &8.
gw_fieldcat-do_sum = &9.
APPEND gw_fieldcat TO gt_fieldcat.
END-OF-DEFINITION.
***********************************************************************
* 选择屏幕定义*
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE TEXT-t01.
PARAMETERS p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK a.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE TEXT-t02.
PARAMETERS:r_1 RADIOBUTTON GROUP grp1 DEFAULT 'X',
r_2 RADIOBUTTON GROUP grp1,
r_3 RADIOBUTTON GROUP grp1,
r_4 RADIOBUTTON GROUP grp1,
r_5 RADIOBUTTON GROUP grp1,
r_6 RADIOBUTTON GROUP grp1,
r_7 RADIOBUTTON GROUP grp1,
r_8 RADIOBUTTON GROUP grp1.
SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN FUNCTION KEY 1.
***********************************************************************
* 在这里可以初始一些数据*
************************************************************************
INITIALIZATION.
PERFORM frm_init_data.
***********************************************************************
* 在这里可以在选择屏幕PBO时做一些处理*
************************************************************************
AT SELECTION-SCREEN OUTPUT.
PERFORM frm_screen_pbo.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
* WHEN 'FC01'.
* PERFORM FRM_DOWNLOAD_TEMP_1.
WHEN 'FC01'.
PERFORM frm_download_temp.
WHEN OTHERS.
ENDCASE.
***********************************************************************
* F4帮助
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. "F4帮助
PERFORM frm_get_path."获取文件路径
***********************************************************************
* 开始数据获取
************************************************************************
START-OF-SELECTION.
PERFORM frm_check_auth.
PERFORM frm_upload_file USING p_file.
PERFORM frm_check_data .
END-OF-SELECTION.
***********************************************************************
* 显示ALV
************************************************************************
PERFORM frm_alv_data.""展示
*&---------------------------------------------------------------------*
*& 在这里可以初始一些数据
*&---------------------------------------------------------------------*
FORM frm_init_data .
"刷新参数赋值
gs_stbl-row = 'X'.
gs_stbl-col = 'X'.
DATA: ls_functxt TYPE smp_dyntxt.
ls_functxt-icon_id = icon_export.
ls_functxt-quickinfo = '下载模板'.
ls_functxt-icon_text = '下载模板'.
sscrfields-functxt_01 = ls_functxt.
sscrfields-ucomm = 'FC01'.
"批导物料分类属性时多sheet导入
gt_sheet[] = VALUE #(
( name = '成品' )
( name = '覆铜板' )
( name = '半固化片' )
( name = '铜箔' )
( name = '干膜' )
( name = '油墨' )
( name = '金属' )
( name = '刀具' )
( name = '化学药品' )
( name = '废品' ) ).
ENDFORM.
*&---------------------------------------------------------------------*
*& 在这里可以在选择屏幕PBO时做一些处理
*&---------------------------------------------------------------------*
FORM frm_screen_pbo .
ENDFORM.
*&---------------------------------------------------------------------*
*& 检查屏幕数据和权限
*&---------------------------------------------------------------------*
FORM frm_check_screen .
ENDFORM.
*&---------------------------------------------------------------------*
*& 获取数据
*&---------------------------------------------------------------------*
FORM frm_get_data .
ENDFORM.
*&---------------------------------------------------------------------*
*& 处理数据
*&---------------------------------------------------------------------*
FORM frm_processing_data .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_alv_data
*&---------------------------------------------------------------------*
*& 展示
*&---------------------------------------------------------------------*
FORM frm_alv_data .
PERFORM frm_fill_fieldcat.""填充字段目錄
PERFORM frm_set_layout.""設置佈局參數
CASE abap_true.
WHEN r_1 OR r_3 OR r_4 OR r_5 OR r_6 OR r_7 OR r_8.
PERFORM frm_alv_create TABLES gt_data.""展示ALV
WHEN r_2.
PERFORM frm_alv_create TABLES gt_data11.""展示ALV
WHEN OTHERS.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& 填充字段目錄,设置fieldcat属性
*&---------------------------------------------------------------------*
FORM frm_fill_fieldcat .
CASE abap_true.
WHEN r_1.
def_fieldcat: 'ICON' '' '' '指示灯' '' '' '' '' '',
'MESSAGE' '' '' '异常消息' '' '' '' '' '',
'COL1' '' '' TEXT-001 '' '' '' '' '',
'COL2' '' '' TEXT-002 '' '' '' '' '',
'COL3' '' '' TEXT-003 '' '' '' '' '',
'COL4' '' '' TEXT-004 '' '' '' '' '',
'COL5' '' '' TEXT-005 '' '' '' '' '',
'COL6' '' '' TEXT-006 '' '' '' '' '',
'COL7' '' '' TEXT-007 '' '' '' '' '',
'COL8' '' '' TEXT-008 '' '' '' '' '',
'COL9' '' '' TEXT-009 '' '' '' '' '',
'COL10' '' '' TEXT-010 '' '' '' '' '',
'COL11' '' '' TEXT-011 '' '' '' '' '',
'COL12' '' '' TEXT-012 '' '' '' '' '',
'COL13' '' '' TEXT-013 '' '' '' '' '',
'COL14' '' '' TEXT-014 '' '' '' '' '',
'COL15' '' '' TEXT-015 '' '' '' '' '',
'COL16' '' '' TEXT-016 '' '' '' '' '',
'COL17' '' '' TEXT-017 '' '' '' '' '',
'COL18' '' '' TEXT-018 '' '' '' '' '',
'COL19' '' '' TEXT-096 '' '' '' '' ''.
WHEN r_2.
def_fieldcat: 'ICON' '' '' '指示灯' '' '' '' '' '',
'MESSAGE' '' '' '异常消息' '' '' '' '' '',
'COL1' '' '' TEXT-001 '' '' '' '' '',
'COL2' '' '' TEXT-002 '' '' '' '' '',
'COL4' '' '' TEXT-071 '' '' '' '' '',
'COL5' '' '' TEXT-072 '' '' '' '' '',
'COL6' '' '' TEXT-073 '' '' '' '' '',
'COL7' '' '' TEXT-074 '' '' '' '' '',
'COL8' '' '' TEXT-075 '' '' '' '' '',
'COL9' '' '' TEXT-076 '' '' '' '' '',
'COL10' '' '' TEXT-077 '' '' '' '' '',
'COL11' '' '' TEXT-078 '' '' '' '' '',
'COL12' '' '' TEXT-079 '' '' '' '' '',
'COL13' '' '' TEXT-080 '' '' '' '' '',
'COL14' '' '' TEXT-081 '' '' '' '' '',
'COL15' '' '' TEXT-082 '' '' '' '' '',
'COL16' '' '' TEXT-083 '' '' '' '' '',
'COL17' '' '' TEXT-084 '' '' '' '' '',
'COL18' '' '' TEXT-085 '' '' '' '' '',
'COL19' '' '' TEXT-086 '' '' '' '' '',
'COL20' '' '' TEXT-087 '' '' '' '' '',
'COL21' '' '' TEXT-088 '' '' '' '' '',
'COL22' '' '' TEXT-089 '' '' '' '' '',
'COL23' '' '' TEXT-090 '' '' '' '' '',
'COL24' '' '' TEXT-091 '' '' '' '' '',
'COL25' '' '' TEXT-092 '' '' '' '' '',
'COL26' '' '' TEXT-093 '' '' '' '' '',
'COL27' '' '' TEXT-094 '' '' '' '' '' ,
'COL28' '' '' TEXT-100 '' '' '' '' '',
'COL29' '' '' TEXT-101 '' '' '' '' '',
'COL30' '' '' TEXT-102 '' '' '' '' '',
'COL31' '' '' TEXT-103 '' '' '' '' '',
'COL32' '' '' TEXT-104 '' '' '' '' '',
'COL33' '' '' TEXT-105 '' '' '' '' '',
'COL34' '' '' TEXT-106 '' '' '' '' '' .
WHEN r_3.
def_fieldcat: 'ICON' '' '' '指示灯' '' '' '' '' '',
'MESSAGE' '' '' '异常消息' '' '' '' '' '',
'COL1' '' '' TEXT-001 '' '' '' '' '',
'COL2' '' '' TEXT-002 '' '' '' '' '',
'COL3' '' '' TEXT-030 '' '' '' '' '',
'COL4' '' '' TEXT-031 '' '' '' '' '',
'COL5' '' '' TEXT-032 '' '' '' '' '',
'COL6' '' '' TEXT-033 '' '' '' '' '',
'COL7' '' '' TEXT-034 '' '' '' '' '',
'COL8' '' '' TEXT-035 '' '' '' '' ''.
WHEN r_4.
def_fieldcat: 'ICON' '' '' '指示灯' '' '' '' '' '',
'MESSAGE' '' '' '异常消息' '' '' '' '' '',
'COL1' '' '' TEXT-001 '' '' '' '' '',
'COL2' '' '' TEXT-002 '' '' '' '' '',
'COL3' '' '' TEXT-019 '' '' '' '' '',
'COL4' '' '' TEXT-029 '' '' '' '' '',
'COL5' '' '' TEXT-020 '' '' '' '' '',
'COL6' '' '' TEXT-008 '' '' '' '' '',
'COL7' '' '' TEXT-021 '' '' '' '' '',
'COL8' '' '' TEXT-022 '' '' '' '' '',
'COL9' '' '' TEXT-023 '' '' '' '' '',
'COL10' '' '' TEXT-024 '' '' '' '' '',
'COL11' '' '' TEXT-069 '' '' '' '' ''.
WHEN r_5.
def_fieldcat: 'ICON' '' '' '指示灯' '' '' '' '' '',
'MESSAGE' '' '' '异常消息' '' '' '' '' '',
'COL1' '' '' TEXT-001 '' '' '' '' '',
'COL2' '' '' TEXT-002 '' '' '' '' '',
'COL3' '' '' TEXT-019 '' '' '' '' '',
'COL4' '' '' TEXT-036 '' '' '' '' '',
'COL5' '' '' TEXT-037 '' '' '' '' '',
'COL6' '' '' TEXT-038 '' '' '' '' '',
'COL7' '' '' TEXT-039 '' '' '' '' '',
'COL8' '' '' TEXT-097 '' '' '' '' '',
'COL9' '' '' TEXT-098 '' '' '' '' '',
'COL10' '' '' TEXT-040 '' '' '' '' '',
'COL11' '' '' TEXT-041 '' '' '' '' '',
'COL12' '' '' TEXT-042 '' '' '' '' '',
'COL13' '' '' TEXT-043 '' '' '' '' '',
'COL14' '' '' TEXT-044 '' '' '' '' '',
'COL15' '' '' TEXT-045 '' '' '' '' '',
'COL16' '' '' TEXT-046 '' '' '' '' '',
'COL17' '' '' TEXT-047 '' '' '' '' '',
'COL18' '' '' TEXT-048 '' '' '' '' '',
'COL19' '' '' TEXT-049 '' '' '' '' '',
'COL20' '' '' TEXT-050 '' '' '' '' '',
'COL21' '' '' TEXT-051 '' '' '' '' '',
'COL22' '' '' TEXT-052 '' '' '' '' '',
'COL23' '' '' TEXT-053 '' '' '' '' '',
'COL24' '' '' TEXT-025 '' '' '' '' '',
'COL25' '' '' TEXT-026 '' '' '' '' '',
'COL26' '' '' TEXT-027 '' '' '' '' '',
'COL27' '' '' TEXT-028 '' '' '' '' '',
'COL28' '' '' TEXT-099 '' '' '' '' ''.
WHEN r_6.
def_fieldcat: 'ICON' '' '' '指示灯' '' '' '' '' '',
'MESSAGE' '' '' '异常消息' '' '' '' '' '',
'COL1' '' '' TEXT-001 '' '' '' '' '',
'COL2' '' '' TEXT-002 '' '' '' '' '',
'COL3' '' '' TEXT-019 '' '' '' '' '',
'COL4' '' '' TEXT-054 '' '' '' '' '',
'COL5' '' '' TEXT-055 '' '' '' '' '',
'COL6' '' '' TEXT-056 '' '' '' '' '',
'COL7' '' '' TEXT-057 '' '' '' '' '',
'COL8' '' '' TEXT-058 '' '' '' '' '',
'COL9' '' '' TEXT-059 '' '' '' '' '',
'COL10' '' '' TEXT-069 '' '' '' '' ''.
WHEN r_7.
def_fieldcat: 'ICON' &n


255

被折叠的 条评论
为什么被折叠?



