SAP 物料主数据 MAT 批导CODE
REPORT ZMMB001.
INCLUDE ZMMB001_TOP.
INCLUDE ZMMB001_F01.
*&---------------------------------------------------------------------*
*& 初始化处理
*&---------------------------------------------------------------------*
INITIALIZATION.
PERFORM FRM_INI_SELC.
*&---------------------------------------------------------------------*
*& 选择屏幕控制
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM FRM_F4_FILE.
*&---------------------------------------------------------------------*
*& 参数输入检查
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
PERFORM FRM_CHK_SELC.
*&---------------------------------------------------------------------*
*& 程序开始处理
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FRM_STA_SELC.
PERFORM FRM_ALV_SHOW.
*&---------------------------------------------------------------------*
*& 包含 ZMMB001_TOP
*&---------------------------------------------------------------------*
************************************************************************
* TABLES
************************************************************************
TABLES:SSCRFIELDS,ZTMM001.
************************************************************************
* Type Declaration
************************************************************************
TYPES: BEGIN OF TY_DATA,
*&---------------------------------------------------------------------*
*& 初始屏幕
*&---------------------------------------------------------------------*
MATERIAL(18) TYPE C, "物料号
MATL_DESC_ZH(255) TYPE C, "物料描述(中文)
MATL_DESC_EN(255) TYPE C, "物料描述(英文)
OLD_MAT_NO(40) TYPE C, "旧物料编号
MATL_TYPE(4) TYPE C, "物料类型
*&---------------------------------------------------------------------*
*& 组织级别
*&---------------------------------------------------------------------*
PLANT(4) TYPE C, "工厂
STGE_LOC(4) TYPE C, "库存地点
SALES_ORG(4) TYPE C, "销售组织
DISTR_CHAN(2) TYPE C, "分销渠道
WHSE_NO(3) TYPE C, "仓库号
STGE_TYPE(3) TYPE C, "仓储类型
*&---------------------------------------------------------------------*
*& 基本数据
*&---------------------------------------------------------------------*
BASE_UOM(3) TYPE C, "基本计量单位
MATL_GROUP(9) TYPE C, "物料组
DIVISION(2) TYPE C, "产品组
EXTMATLGRP(18) TYPE C, "外部物料组
GROSS_WT(18) TYPE C, "毛重
NET_WEIGHT(18) TYPE C, "净重
UNIT_OF_WT(5) TYPE C, "重量单位
LENGTH(18) TYPE C, "长
WIDTH(18) TYPE C, "宽
HEIGHT(18) TYPE C, "高
UNIT_DIM(5) TYPE C, "长度单位
VOLUME(18) TYPE C, "业务量
VOLUMEUNIT(5) TYPE C, "体积单位
SIZE_DIM(32) TYPE C, "大小量纲
EAN_UPC(18) TYPE C, "EAN/UPC
EAN_CAT(2) TYPE C, "EAN类别
MTPOS_MARA(4) TYPE C, "普通项目类别组
KZKFG(1) TYPE C, "可配置物料
STD_DESCR(18) TYPE C, "行业标准描述
*&---------------------------------------------------------------------*
*& 分类
*&---------------------------------------------------------------------*
CLASS_TYPE1(18) TYPE C, "类别种类
CLASS1(18) TYPE C, "类别种类
*&---------------------------------------------------------------------*
*& 销售
*&---------------------------------------------------------------------*
DELYG_PLNT(4) TYPE C, "交货工厂
TAXCLASS_1(1) TYPE C, "税分类
MATL_STATS(1) TYPE C, "物料统计组
MAT_PR_GRP(2) TYPE C, "物料价格组
ACCT_ASSGT(2) TYPE C, "科目设置组
AVAILCHECK(2) TYPE C, "可用性检查
MATFRGTGRP(8) TYPE C, "物料运输组
TRANS_GRP(4) TYPE C, "运输组
LOADINGGRP(4) TYPE C, "装载组
MTPOS(4) TYPE C, "项目类别组***
PROFIT_CTR(10) TYPE C, "利润中心
*&---------------------------------------------------------------------*
*& 采购
*&---------------------------------------------------------------------*
PUR_GROUP(3) TYPE C, "采购组
BATCH_MGMT(1) TYPE C, "批次管理
GR_PR_TIME(3) TYPE C, "收货处理时间
SOURCELIST(1) TYPE C, "源清单
"MANUF_PROF(4) TYPE C, "制造商参数文件
FABKZ(1) TYPE C, "JIT件
*&---------------------------------------------------------------------*
*& MRP 1
*&---------------------------------------------------------------------*
ABC_ID(1) TYPE C, "ABC标识
MRP_GROUP(4) TYPE C, "MRP组
MRP_TYPE(2) TYPE C, "MRP类型
REORDER_PT(18) TYPE C, "再订货点
MRP_CTRLER(3) TYPE C, "MRP控制者
LOTSIZEKEY(2) TYPE C, "批量大小
MINLOTSIZE(18) TYPE C, "最小批量大小
ROUND_VAL(18) TYPE C, "舍入值
*&---------------------------------------------------------------------*
*& MRP 2
*&---------------------------------------------------------------------*
PROC_TYPE(1) TYPE C, "采购类型
SPPROCTYPE(2) TYPE C, "特殊采购类型
DZEIT TYPE MARC-DZEIT, "自制生产时间
PLZFZ TYPE MARC-PLIFZ, "计划交货时间
"PLND_DELRY(3) TYPE C, "计划的天数内交货
SM_KEY(3) TYPE C, "浮动的计划边际码
SAFETY_STK(18) TYPE C, "安全库存
*&---------------------------------------------------------------------*
*& MRP 3
*&---------------------------------------------------------------------*
PLAN_STRGP(2) TYPE C, "计划策略组
CONSUMMODE TYPE C, "消耗模式-----------
RGEKZ TYPE MARC-RGEKZ, "反冲
MTVFP TYPE MARC-MTVFP, "可用性检查
SBDKZ TYPE MARC-SBDKZ, "独立/集中
SERNP TYPE MARC-SERNP, "序列号参数文件
BWD_CONS(3) TYPE C, "消耗期间:逆向---------
FWD_CONS(3) TYPE C, "消耗时期-向前---------
MIXED_MRP(1) TYPE C, "综合MRP
*&---------------------------------------------------------------------*
*& 工作计划
*&---------------------------------------------------------------------*
PRODUCTION_SCHEDULER(3) TYPE C, "生产调度员
*&---------------------------------------------------------------------*
*& 工厂
*&---------------------------------------------------------------------*
MINREMLIFE(4) TYPE C, "最小剩余货架寿命
SHELF_LIFE(4) TYPE C, "总货架寿命
STGEPERIOD(5) TYPE C, "最大存储期间
STGE_PD_UN(5) TYPE C, "时间单位
*&---------------------------------------------------------------------*
*& 会计、成本
*&---------------------------------------------------------------------*
VAL_CLASS(4) TYPE C, "评估类
STD_PRICE(28) TYPE C, "标准价
PRICE_UNIT(5) TYPE C, "价格单位
ORIG_MAT(1) TYPE C, "物料来源
SPECPROCTY(2) TYPE C, "特殊采购成本核算
PLNDPRICE1(28) TYPE C, "计划价格1
PLNDPRDATE1(10) TYPE C, "计划价格日期1
PLNDPRICE2(28) TYPE C, "计划价格2
PLNDPRDATE2(10) TYPE C, "计划价格日期2
PLNDPRICE3(28) TYPE C, "计划价格3
PLNDPRDATE3(10) TYPE C, "计划价格日期3
*&---------------------------------------------------------------------*
*& 附加数据
*&---------------------------------------------------------------------*
MEINH1(5) TYPE C, "附加单位1
UMREZ1(5) TYPE C, "分子1
UMREN1(5) TYPE C, "分母1
MEINH2(5) TYPE C, "附加单位2
UMREZ2(5) TYPE C, "分子2
UMREN2(5) TYPE C, "分母2
MEINH3(5) TYPE C, "附加单位3
UMREZ3(5) TYPE C, "分子3
UMREN3(5) TYPE C, "分母3
MEINH4(5) TYPE C, "附加单位4
UMREZ4(5) TYPE C, "分子4
UMREN4(5) TYPE C, "分母4
MEINH5(5) TYPE C, "附加单位5
UMREZ5(5) TYPE C, "分子5
UMREN5(5) TYPE C, "分母5
*&---------------------------------------------------------------------*
*& 增强数据add by qt_abap1 20180611
*&---------------------------------------------------------------------*
ZLJFL TYPE ZTMM001-ZLJFL , " 零件分类
ZSYCX TYPE ZTMM001-ZSYCX , " 首用车型
ZLJZT TYPE ZTMM001-ZLJZT , " 零件状态
ZGHZT TYPE ZTMM001-ZGHZT , " 供货状态
ZSMBB TYPE ZTMM001-ZSMBB , " 数模版本
ZSMFB TYPE ZTMM001-ZSMFB , " 数模发布日期
ZZTZH TYPE ZTMM001-ZZTZH , " 图纸号
ZTZBB TYPE ZTMM001-ZTZBB , " 图纸版本
ZRJBB TYPE ZTMM001-ZRJBB , " 软件版本
ZYJBB TYPE ZTMM001-ZYJBB , " 硬件版本
ZZZCL TYPE ZTMM001-ZZZCL , " 材料
ZCLHD TYPE ZTMM001-ZCLHD , " 料厚mm
ZCLGG TYPE ZTMM001-ZCLGG , " 规格
ZDCJBS TYPE ZTMM001-ZDCJBS , " 对称件标识
ZDCJH TYPE ZTMM001-ZDCJH , " 对称件号
ZGJTX TYPE ZTMM001-ZGJTX , " 关键特性
ZZLJBZS TYPE ZTMM001-ZZLJBZS, " 质量精准追溯
ZHBHJJ TYPE ZTMM001-ZHBHJJ , " 黑白灰匣件
ZBSJBS TYPE ZTMM001-ZBSJBS , " 本色件标识
ZYSJBS TYPE ZTMM001-ZYSJBS , " 颜色件标识
ZAQJBS TYPE ZTMM001-ZAQJBS , " 安全件标识
ZFGJBS TYPE ZTMM001-ZFGJBS , " 法规件标识
Z3CJBS TYPE ZTMM001-Z3CJBS , " 3C件标识
ZVOCJBS TYPE ZTMM001-ZVOCJBS, " VOC件标识
ZEVLJBS TYPE ZTMM001-ZEVLJBS, " ELV件标识
ZZRGSC TYPE ZTMM001-ZZRGSC , " 责任工程师
ZECNBH TYPE ZTMM001-ZECNBH , " ECN编号
ZZCFL TYPE ZTMM001-ZZCFL , " 整车分类
**************end add 增强数据
END OF TY_DATA.
TYPES: BEGIN OF TY_RESULT,
BOX TYPE C,
ICON(4) TYPE C,
MSG(255) TYPE C,
MATNR TYPE MARA-MATNR,
END OF TY_RESULT.
************************************************************************
* WorkArea
************************************************************************
DATA: WA_DATA TYPE TY_DATA.
DATA: WA_RESULT TYPE TY_RESULT.
************************************************************************
* Internal Table
************************************************************************
DATA: IT_DATA TYPE TABLE OF TY_DATA WITH HEADER LINE.
DATA: IT_RESULT TYPE TABLE OF TY_RESULT WITH HEADER LINE.
DATA: HEADDATA TYPE BAPIMATHEAD, "BAPIMATHEAD:带有控制信息的表头段
CLIENTDATA TYPE BAPI_MARA, "客户端层次物料数据
CLIENTDATAX TYPE BAPI_MARAX, "BAPI_MARA 的复选框结构
PLANTDATA TYPE BAPI_MARC, "工厂级别的物料数据
PLANTDATAX TYPE BAPI_MARCX, "BAPI_MARC 的复选框结构
FORECASTPARAMETERS TYPE BAPI_MPOP, "预测参数
FORECASTPARAMETERSX TYPE BAPI_MPOPX, "BAPI_MPOP 复选框结构
PLANNINGDATA TYPE BAPI_MPGD, "更改物料主记录/产品组的凭证结构
PLANNINGDATAX TYPE BAPI_MPGDX, "BAPI_MPGD 复选框结构
STORAGELOCATIONDATA TYPE BAPI_MARD, "存储位置级别的物料数据
STORAGELOCATIONDATAX TYPE BAPI_MARDX, "
WAREHOUSENUMBERDATA TYPE BAPI_MLGN, "仓库号数据
WAREHOUSENUMBERDATAX TYPE BAPI_MLGNX, "
SALESDATA TYPE BAPI_MVKE, "销售数据
SALESDATAX TYPE BAPI_MVKEX, "
STORAGETYPEDATA TYPE BAPI_MLGT, "存储类型数据
STORAGETYPEDATAX TYPE BAPI_MLGTX, "
VALUATIONDATA TYPE BAPI_MBEW, "评估数据
VALUATIONDATAX TYPE BAPI_MBEWX, "
RETURN TYPE BAPIRET2, "返回参数
MATERIALDESCRIPTION TYPE TABLE OF BAPI_MAKT WITH HEADER LINE, "物料描述
TAXCLASSIFICATIONS TYPE TABLE OF BAPI_MLAN WITH HEADER LINE,
MATERIALLONGTEXT TYPE TABLE OF BAPI_MLTX WITH HEADER LINE,
RETURNMESSAGES TYPE TABLE OF BAPI_MATRETURN2,
UNITSOFMEASURE TYPE TABLE OF BAPI_MARM WITH HEADER LINE,
UNITSOFMEASUREX TYPE TABLE OF BAPI_MARMX WITH HEADER LINE,
PRTDATA TYPE TABLE OF BAPI_MFHM WITH HEADER LINE,
PRTDATAX TYPE TABLE OF BAPI_MFHMX WITH HEADER LINE,
EXTENSIONINS TYPE TABLE OF BAPIPAREX WITH HEADER LINE,
EXTENSIONINX TYPE TABLE OF BAPIPAREXX WITH HEADER LINE.
DATA: IT_VALUECHAR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR WITH HEADER LINE.
DATA: WA_INSPECTIONCTRL TYPE BAPI1001004_QMAT,
IT_INSPECTIONCTRL TYPE TABLE OF BAPI1001004_QMAT WITH HEADER LINE.
DATA: IT_RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE.
DATA: WA_TQ34 TYPE TQ34,
IT_TQ34 TYPE TABLE OF TQ34 WITH HEADER LINE.
DATA: WA_MARA_EN TYPE BAPI_TE_MARA,
WA_MARA_ENX TYPE BAPI_TE_MARAX.
************************************************************************
* Gloable data
************************************************************************
CONSTANTS: C_X TYPE C VALUE 'X',
C_N TYPE C VALUE ''.
FIELD-SYMBOLS: <DY_FIELD>.
************************************************************************
* DEFINITION
************************************************************************
DEFINE INIT_FIELDCAT. " ALV Fieldcat Setting
gw_lvc-fieldname = &1.
gw_lvc-coltext = &2.
gw_lvc-scrtext_l = &2.
gw_lvc-scrtext_m = &2.
gw_lvc-scrtext_s = &2.
gw_lvc-reptext = &2.
gw_lvc-outputlen = &3.
IF &4 = 'X'.
gw_lvc-key = 'X'.
ENDIF.
gw_lvc-checkbox = &5.
gw_lvc-edit = &6.
gw_lvc-hotspot = &7.
gw_lvc-ref_field = &9.
gw_lvc-ref_table = &8.
APPEND gw_lvc TO gt_lvc.
CLEAR gw_lvc.
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*& ALV Declaration
*&---------------------------------------------------------------------*
TYPE-POOLS: SLIS.
DATA: GT_LVC TYPE LVC_T_FCAT,
GT_SORT TYPE LVC_T_SORT,
GW_LAYOUT TYPE LVC_S_LAYO,
GW_VARIANT TYPE DISVARIANT,
GW_GRID_SETTINGS TYPE LVC_S_GLAY,
GW_LVC TYPE LVC_S_FCAT,
GW_SORT TYPE LVC_S_SORT,
GW_GRID_SETTING TYPE LVC_S_GLAY,
G_REPID LIKE SY-REPID,
GT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE,
GW_EVENTS LIKE LINE OF GT_EVENTS.
DATA: GT_EXCLUDE TYPE SLIS_T_EXTAB,
GS_EXCLUDE TYPE SLIS_EXTAB.
DATA: GR_ALVGRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: GT_ROWS TYPE LVC_T_ROW,
GT_ROID TYPE LVC_T_ROID,
WA_ROWS TYPE LVC_S_ROW,
WA_ROID TYPE LVC_S_ROID.
DATA: GS_VARIANT TYPE DISVARIANT.
DATA: GW_ISTABLE TYPE LVC_S_STBL.
DATA: LT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
* messages of call transaction
DATA: LT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME. "物料导入摸版
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(36) TEXT-H01.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLK1.
SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P01. "基本视图
PARAMETERS: C_01 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P02. "分类
PARAMETERS: C_02 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P03. "销售视图
PARAMETERS: C_03 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P04. "采购视图
PARAMETERS: C_04 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P05. "MRP视图
PARAMETERS: C_05 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P06. "工厂视图
PARAMETERS: C_06 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
*
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN POSITION 1.
*SELECTION-SCREEN COMMENT 01(15) TEXT-P07. "仓库视图
*PARAMETERS: C_07 AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN POSITION 1.
*SELECTION-SCREEN COMMENT 01(15) TEXT-P08. "质量视图
*PARAMETERS: C_08 AS CHECKBOX.
*SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P09. "财务视图
PARAMETERS: C_09 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P10. "会计视图
PARAMETERS: C_10 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P11. "附加数据
PARAMETERS: C_11 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
SELECTION-SCREEN COMMENT 01(15) TEXT-P12. "增强视图
PARAMETERS: C_12 AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLK2.
SELECTION-SCREEN FUNCTION KEY 1.
*&---------------------------------------------------------------------*
*& 包含 ZMMB001_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_F4_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_F4_FILE .
DATA: L_FILENAME LIKE RLGRAP-FILENAME.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
* DEF_FILENAME = ',*.XLSX,*.XLSX;,*.XLS,*.XLS;'
* DEF_PATH = ' '
MASK = ',Excel file,*.xls;*.xlsx;' "
MODE = 'O'
* TITLE = ' '
IMPORTING
FILENAME = L_FILENAME
* RC =
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
IF SY-SUBRC = 0.
P_FILE = L_FILENAME.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_INI_SELC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_INI_SELC .
SSCRFIELDS-FUNCTXT_01 = '@49@下载导入模板'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_CHK_SELC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CHK_SELC .
IF SSCRFIELDS-UCOMM = 'FC01'.
PERFORM FRM_DOWN_TEMPLATE. "下载SWM0上传过的模版
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DOWN_TEMPLATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_DOWN_TEMPLATE .
DATA: LS_WWWDATATAB LIKE WWWDATATAB,
LT_MIME LIKE W3MIME OCCURS 10,
LV_FILENAME TYPE STRING,
LV_PATH TYPE STRING,
LV_FULLPATH TYPE STRING,
WINDOW_TITLE TYPE STRING,
DEFAULT_FILE_NAME TYPE STRING.
CLEAR: LS_WWWDATATAB,LT_MIME[],LV_FILENAME,LV_PATH,LV_FULLPATH,WINDOW_TITLE,DEFAULT_FILE_NAME.
LS_WWWDATATAB-RELID = 'MI'. "IMPORT/EXPORT 数据表中的区域
LS_WWWDATATAB-OBJID = 'ZMM004'.
LS_WWWDATATAB-TEXT = '物料主数据导入模板-前途.xlsx'."WWWDATA 对象的短文本
DEFAULT_FILE_NAME = '物料主数据导入模板-前途.xlsx'.
WINDOW_TITLE = '下载导入模板'.
CALL FUNCTION 'WWWDATA_IMPORT' "#EC *
EXPORTING
KEY = LS_WWWDATATAB
TABLES
MIME = LT_MIME
EXCEPTIONS
WRONG_OBJECT_TYPE = 1
IMPORT_ERROR = 2
OTHERS = 3.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = WINDOW_TITLE
DEFAULT_EXTENSION = 'xlsx'
DEFAULT_FILE_NAME = DEFAULT_FILE_NAME
FILE_FILTER = 'EXCEL'
CHANGING
FILENAME = LV_FILENAME
PATH = LV_PATH
FULLPATH = LV_FULLPATH
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
STOP.
ENDIF.
IF LV_FULLPATH IS NOT INITIAL.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = LV_FULLPATH
FILETYPE = 'BIN'
TABLES
DATA_TAB = LT_MIME.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_STA_SELC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_STA_SELC .
PERFORM FRM_EXCEL_LOAD.
PERFORM FRM_MATAS_SAVE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_ALV_SHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_SHOW .
PERFORM INIT_LAYOUT. "设置输出格式
PERFORM INIT_SORT. "设置排序、合计
PERFORM INIT_VARIANT. "设置变式控制
PERFORM FRM_INIT_LVC.
PERFORM FRM_EXCLUDE.
PERFORM FRM_BUILD_EVENT.
PERFORM FRM_OUTPUT TABLES GT_LVC
GT_SORT
IT_RESULT
USING 'ALV_PF_STATUS'
'ALV_USER_COMMAND'
GW_LAYOUT
GW_VARIANT
GW_GRID_SETTINGS.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form INIT_LAYOUT
*&---------------------------------------------------------------------*
* 初始化layout参数
*----------------------------------------------------------------------*
FORM INIT_LAYOUT .
GW_LAYOUT-ZEBRA = 'X'.
GW_LAYOUT-BOX_FNAME = 'BOX'.
GW_LAYOUT-CWIDTH_OPT = 'X'.
ENDFORM. " INIT_LAYOUT
*&---------------------------------------------------------------------*
*& Form INIT_SORT
*&---------------------------------------------------------------------*
* 排序
*----------------------------------------------------------------------*
FORM INIT_SORT .
ENDFORM. " INIT_SORT
*&---------------------------------------------------------------------*
*& Form INIT_VARIANT
*&---------------------------------------------------------------------*
* 初始化变量
*----------------------------------------------------------------------*
FORM INIT_VARIANT.
ENDFORM. " INIT_VARIANT
*&---------------------------------------------------------------------*
*& Form FRM_EXCLUDE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_EXCLUDE.
REFRESH GT_EXCLUDE.
CLEAR GS_EXCLUDE.
ENDFORM. " FRM_EXCLUDE
*&---------------------------------------------------------------------*
*& Form FRM_INIT_LVC
*&---------------------------------------------------------------------*
* 列参数
*----------------------------------------------------------------------*
FORM FRM_INIT_LVC.
INIT_FIELDCAT 'ICON' '生成情况' '' '' '' '' '' '' ''.
INIT_FIELDCAT 'MSG' '消息' '' '' '' '' '' '' ''.
INIT_FIELDCAT 'MATNR' '物料凭证编号' '' '' '' '' '' 'MARA' 'MATNR'.
ENDFORM. "frm_init_lvc
*&---------------------------------------------------------------------*
*& Form FRM_BUILD_EVENT
*&---------------------------------------------------------------------*
* ALV事件
*----------------------------------------------------------------------*
FORM FRM_BUILD_EVENT .
ENDFORM. " FRM_BUILD_EVENT
*&---------------------------------------------------------------------*
*& Form FRM_OUTPUT
*&---------------------------------------------------------------------*
* 调用ALV函数
*----------------------------------------------------------------------*
FORM FRM_OUTPUT TABLES PT_LVC TYPE LVC_T_FCAT
PT_SORT TYPE LVC_T_SORT
PT_DATA
USING PU_STATUS
PU_UCOMM
PW_LAYOUT TYPE LVC_S_LAYO
PW_VARIANT TYPE DISVARIANT
PW_GRID_SETTINGS TYPE LVC_S_GLAY.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PU_STATUS
I_CALLBACK_USER_COMMAND = PU_UCOMM
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME = ''
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
I_GRID_SETTINGS = PW_GRID_SETTINGS
IS_LAYOUT_LVC = PW_LAYOUT
IT_FIELDCAT_LVC = PT_LVC[]
IT_EXCLUDING = GT_EXCLUDE
* IT_SPECIAL_GROUPS_LVC =
IT_SORT_LVC = PT_SORT[]
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = PW_VARIANT
* it_events = gt_events[]
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = PT_DATA
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDFORM. " FRM_OUTPUT
*&---------------------------------------------------------------------*
*& Form ALV_PF_STATUS
*&---------------------------------------------------------------------*
* GUI状态设置
*----------------------------------------------------------------------*
* -->RT_EXTAB GUI状态设置
*----------------------------------------------------------------------*
FORM ALV_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDARD_FULLSCREEN' EXCLUDING RT_EXTAB.
ENDFORM. "ALV_PF_STATUS
*&---------------------------------------------------------------------*
*& Form ALV_USER_COMMAND
*&---------------------------------------------------------------------*
* ALV执行查询后的事件响应
*----------------------------------------------------------------------*
* -->R_UCOMN 响应码
* -->RS_SELFIELD 当前行信息
*----------------------------------------------------------------------*
FORM ALV_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
ENDFORM. "ALV_USER_COMMAND
*&---------------------------------------------------------------------*
*& Form FRM_EXCEL_LOAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_EXCEL_LOAD .
DATA: L_FILENAME TYPE RLGRAP-FILENAME,
L_ENDROW TYPE I.
FIELD-SYMBOLS: <FS>.
DATA:ITAB TYPE TABLE OF ZALSMEX_TABLINE WITH HEADER LINE.
IF P_FILE IS INITIAL.
MESSAGE TEXT-003 TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
L_FILENAME = P_FILE.
L_ENDROW = 900000.
CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = L_FILENAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 3
I_END_COL = 128
I_END_ROW = L_ENDROW
TABLES
INTERN = ITAB
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
ENDIF.
IF ITAB[] IS NOT INITIAL.
LOOP AT ITAB.
ON CHANGE OF ITAB-ROW.
IF SY-TABIX NE 1.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDIF.
ENDON.
ASSIGN COMPONENT ITAB-COL OF STRUCTURE IT_DATA TO <FS>.
<FS> = ITAB-VALUE.
ENDLOOP.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_MATAM_SAVE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_MATAS_SAVE .
DATA: L_CURRENT TYPE I,
L_TOTAL TYPE I,
C_CURRENT(10) TYPE C,
C_TOTAL(10) TYPE C,
MESSAGEBAR(255) TYPE C,
L_MSG(255) TYPE C.
DATA: L_BUKRS TYPE TVKO-BUKRS,
L_LAND1 TYPE T001-LAND1.
* 总行数
DESCRIBE TABLE IT_DATA LINES L_TOTAL.
MOVE L_TOTAL TO C_TOTAL.
* 检验类型
SELECT *
INTO TABLE IT_TQ34
FROM TQ34.
SORT IT_TQ34 BY ART.
*&---------------------------------------------------------------------*
* 分条导入
*----------------------------------------------------------------------*
LOOP AT IT_DATA INTO WA_DATA.
* 当前行
L_CURRENT = L_CURRENT + 1.
MOVE L_CURRENT TO C_CURRENT.
CLEAR MESSAGEBAR.
CONCATENATE '正在处理第:' C_CURRENT '条/共' C_TOTAL '条' INTO MESSAGEBAR.
* 提示
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
TEXT = MESSAGEBAR.
* 清空内表
CLEAR HEADDATA.
CLEAR CLIENTDATA.
CLEAR CLIENTDATAX.
CLEAR PLANTDATA.
CLEAR PLANTDATAX.
CLEAR SALESDATA.
CLEAR SALESDATAX.
CLEAR WAREHOUSENUMBERDATA.
CLEAR WAREHOUSENUMBERDATAX.
CLEAR STORAGELOCATIONDATA.
CLEAR STORAGELOCATIONDATAX.
CLEAR VALUATIONDATA.
CLEAR VALUATIONDATAX.
CLEAR STORAGETYPEDATA.
CLEAR STORAGETYPEDATAX.
CLEAR MATERIALDESCRIPTION.
REFRESH MATERIALDESCRIPTION.
CLEAR TAXCLASSIFICATIONS.
REFRESH TAXCLASSIFICATIONS.
CLEAR MATERIALLONGTEXT.
REFRESH MATERIALLONGTEXT.
CLEAR UNITSOFMEASURE.
REFRESH UNITSOFMEASURE.
CLEAR UNITSOFMEASUREX.
REFRESH UNITSOFMEASUREX.
CLEAR: PRTDATA,PRTDATAX.
REFRESH:PRTDATA,PRTDATAX.
CLEAR: EXTENSIONINS,EXTENSIONINX.
REFRESH:EXTENSIONINS,EXTENSIONINX.
CLEAR RETURN.
IF WA_DATA-MATERIAL CO '1234567890 '.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = WA_DATA-MATERIAL
IMPORTING
OUTPUT = WA_DATA-MATERIAL
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
ENDIF.
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* INPUT = WA_DATA-ZKUNNR
* IMPORTING
* OUTPUT = WA_DATA-ZKUNNR.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-BASE_UOM.
" PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-ZMEINS.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-UNIT_OF_WT.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-UNIT_DIM.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-VOLUMEUNIT.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-STGE_PD_UN.
* PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-LEQ_UNIT_1.
* PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-LEQ_UNIT_2.
* PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-LEQ_UNIT_3.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-MEINH1.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-MEINH2.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-MEINH3.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-MEINH4.
PERFORM FRM_CONVERT_COUNT CHANGING WA_DATA-MEINH5.
************************************************************************
* HEADDATA
************************************************************************
HEADDATA-MATERIAL_LONG = WA_DATA-MATERIAL.
HEADDATA-MATERIAL = WA_DATA-MATERIAL.
HEADDATA-MATL_TYPE = WA_DATA-MATL_TYPE.
HEADDATA-IND_SECTOR = 'C'.
IF C_01 = 'X'.
HEADDATA-BASIC_VIEW = 'X'. "基本视图
ENDIF.
************************************************************************
* CLIENTDATA
************************************************************************
IF C_01 = 'X'.
IF WA_DATA-BASE_UOM <> ' '. "基本计量单位
IF WA_DATA-BASE_UOM = '#'.
CLIENTDATA-BASE_UOM = ' '.
ELSE.
CLIENTDATA-BASE_UOM = WA_DATA-BASE_UOM.
ENDIF.
ENDIF.
* IF wa_data-old_mat_no <> ' '. "旧物料编号
* IF wa_data-old_mat_no = '#'.
* clientdata-old_mat_no_long = ' '.
* ELSE.
* clientdata-old_mat_no_long = wa_data-old_mat_no.
* clientdata-inv_mat_no_long = wa_data-old_mat_no.
* ENDIF.
* ENDIF.
IF WA_DATA-MATL_GROUP <> ' '. "物料组
IF WA_DATA-BASE_UOM = '#'.
CLIENTDATA-MATL_GROUP = ' '.
ELSE.
CLIENTDATA-MATL_GROUP = WA_DATA-MATL_GROUP.
ENDIF.
ENDIF.
IF WA_DATA-DIVISION <> ' '. "产品组
IF WA_DATA-DIVISION = '#'.
CLIENTDATA-DIVISION = ' '.
ELSE.
CLIENTDATA-DIVISION = WA_DATA-DIVISION.
ENDIF.
ENDIF.
IF WA_DATA-EXTMATLGRP <> ' '. "外部物料组
IF WA_DATA-EXTMATLGRP = '#'.
CLIENTDATA-EXTMATLGRP = ' '.
ELSE.
CLIENTDATA-EXTMATLGRP = WA_DATA-EXTMATLGRP.
ENDIF.
ENDIF.
IF WA_DATA-NET_WEIGHT <> ' '. "净重
IF WA_DATA-NET_WEIGHT = '#'.
CLIENTDATA-NET_WEIGHT = ' '.
ELSE.
CLIENTDATA-NET_WEIGHT = WA_DATA-NET_WEIGHT.
ENDIF.
ENDIF.
IF WA_DATA-UNIT_OF_WT <> ' '. "重量单位
IF WA_DATA-UNIT_OF_WT = '#'.
CLIENTDATA-UNIT_OF_WT = ' '.
ELSE.
CLIENTDATA-UNIT_OF_WT = WA_DATA-UNIT_OF_WT.
ENDIF.
ENDIF.
IF WA_DATA-SIZE_DIM <> ''. "大小量纲
IF WA_DATA-SIZE_DIM = '#'.
CLIENTDATA-SIZE_DIM = ''.
ELSE.
CLIENTDATA-SIZE_DIM = WA_DATA-SIZE_DIM.
ENDIF.
ENDIF.
IF WA_DATA-STD_DESCR <> ''. "行业标准描述
IF WA_DATA-STD_DESCR = '#'.
CLIENTDATA-STD_DESCR = ''.
ELSE.
CLIENTDATA-STD_DESCR = WA_DATA-STD_DESCR.
ENDIF.
ENDIF.
*********普通项目类别组 ADD BY QT_ABAP1 20180611
IF WA_DATA-MTPOS_MARA <> ''. "普通项目类别组
IF WA_DATA-MTPOS_MARA = '#'.
CLIENTDATA-ITEM_CAT = ''.
ELSE.
CLIENTDATA-ITEM_CAT = WA_DATA-MTPOS_MARA.
ENDIF.
ENDIF.
*********可配置物料
* IF WA_DATA-KZKFG <> ''. "普通项目类别组
*
* IF WA_DATA-KZKFG = '#'.
* CLIENTDATA-CM_RELEVANCE_FLAG = ''.
* ELSE.
* CLIENTDATA-CM_RELEVANCE_FLAG = WA_DATA-KZKFG.
* ENDIF.
*
* ENDIF.
IF WA_DATA-BATCH_MGMT <> ' '. "批次管理
IF WA_DATA-BATCH_MGMT = '#'.
CLIENTDATA-BATCH_MGMT = ' '.
ELSE.
CLIENTDATA-BATCH_MGMT = WA_DATA-BATCH_MGMT.
ENDIF.
ENDIF.
* 计量单位
IF WA_DATA-BASE_UOM <> ' '.
CLEAR: UNITSOFMEASURE, UNITSOFMEASUREX.
UNITSOFMEASURE-ALT_UNIT = WA_DATA-BASE_UOM.
UNITSOFMEASURE-NUMERATOR = 1.
UNITSOFMEASURE-DENOMINATR = 1.
UNITSOFMEASUREX-ALT_UNIT = WA_DATA-BASE_UOM.
UNITSOFMEASUREX-NUMERATOR = 'X'.
UNITSOFMEASUREX-DENOMINATR = 'X'.
IF WA_DATA-GROSS_WT <> ''. "毛重
IF WA_DATA-GROSS_WT = '#'.
UNITSOFMEASURE-GROSS_WT = ''.
ELSE.
UNITSOFMEASURE-GROSS_WT = WA_DATA-GROSS_WT.
ENDIF.
UNITSOFMEASUREX-GROSS_WT = 'X'.
ENDIF.
IF WA_DATA-UNIT_OF_WT <> ' '. "重量单位
IF WA_DATA-UNIT_OF_WT = '#'.
UNITSOFMEASURE-UNIT_OF_WT = ' '.
ELSE.
UNITSOFMEASURE-UNIT_OF_WT = WA_DATA-UNIT_OF_WT.
ENDIF.
UNITSOFMEASUREX-UNIT_OF_WT = 'X'.
ENDIF.
IF WA_DATA-LENGTH <> ''. "长度
IF WA_DATA-LENGTH = '#'.
UNITSOFMEASURE-LENGTH = ''.
ELSE.
UNITSOFMEASURE-LENGTH = WA_DATA-LENGTH.
ENDIF.
UNITSOFMEASUREX-LENGTH = 'X'.
ENDIF.
IF WA_DATA-WIDTH <> ''. "宽度
IF WA_DATA-WIDTH = '#'.
UNITSOFMEASURE-WIDTH = ''.
ELSE.
UNITSOFMEASURE-WIDTH = WA_DATA-WIDTH.
ENDIF.
UNITSOFMEASUREX-WIDTH = 'X'.
ENDIF.
IF WA_DATA-HEIGHT <> ''. "高度
IF WA_DATA-HEIGHT = '#'.
UNITSOFMEASURE-HEIGHT = ''.
ELSE.
UNITSOFMEASURE-HEIGHT = WA_DATA-HEIGHT.
ENDIF.
UNITSOFMEASUREX-HEIGHT = 'X'.
ENDIF.
IF WA_DATA-UNIT_DIM <> ''. "长度单位
IF WA_DATA-UNIT_DIM = '#'.
UNITSOFMEASURE-UNIT_DIM = ''.
ELSE.
UNITSOFMEASURE-UNIT_DIM = WA_DATA-UNIT_DIM.
ENDIF.
UNITSOFMEASUREX-UNIT_DIM = 'X'.
ENDIF.
IF WA_DATA-VOLUME <> ''. "业务量
IF WA_DATA-VOLUME = '#'.
UNITSOFMEASURE-VOLUME = ''.
ELSE.
UNITSOFMEASURE-VOLUME = WA_DATA-VOLUME.
ENDIF.
UNITSOFMEASUREX-VOLUME = 'X'.
ENDIF.
IF WA_DATA-VOLUMEUNIT <> ''. "体积单位
IF WA_DATA-VOLUMEUNIT = '#'.
UNITSOFMEASURE-VOLUMEUNIT = ''.
ELSE.
UNITSOFMEASURE-VOLUMEUNIT = WA_DATA-VOLUMEUNIT.
ENDIF.
UNITSOFMEASUREX-VOLUMEUNIT = 'X'.
ENDIF.
IF WA_DATA-EAN_UPC <> ''. "EAN/UPC
IF WA_DATA-EAN_UPC = '#'.
UNITSOFMEASURE-EAN_UPC = ''.
ELSE.
UNITSOFMEASURE-EAN_UPC = WA_DATA-EAN_UPC.
ENDIF.
UNITSOFMEASUREX-EAN_UPC = 'X'.
ENDIF.
IF WA_DATA-EAN_CAT <> ''. "EAN类别
IF WA_DATA-EAN_CAT = '#'.
UNITSOFMEASURE-EAN_CAT = ''.
ELSE.
UNITSOFMEASURE-EAN_CAT = WA_DATA-EAN_CAT.
ENDIF.
UNITSOFMEASUREX-EAN_CAT = 'X'.
ENDIF.
APPEND UNITSOFMEASURE.
APPEND UNITSOFMEASUREX.
ENDIF.
ENDIF.
************************************************************************
* CLIENTDATAX
************************************************************************
IF C_01 = 'X'.
IF WA_DATA-BASE_UOM <> ' '. "基本计量单位
CLIENTDATAX-BASE_UOM = 'X'.
ENDIF.
* IF wa_data-old_mat_no <> ' '. "旧物料号
* clientdatax-old_mat_no_long = 'X'.
* clientdatax-inv_mat_no_long = 'X'.
* ENDIF.
IF WA_DATA-MATL_GROUP <> ' '. "物料组
CLIENTDATAX-MATL_GROUP = 'X'.
ENDIF.
IF WA_DATA-DIVISION <> ' '. "产品组
CLIENTDATAX-DIVISION = 'X'.
ENDIF.
IF WA_DATA-EXTMATLGRP <> ' '. "外部物料组
CLIENTDATAX-EXTMATLGRP = 'X'.
ENDIF.
IF WA_DATA-NET_WEIGHT <> ' '. "净重
CLIENTDATAX-NET_WEIGHT = 'X'.
ENDIF.
IF WA_DATA-UNIT_OF_WT <> ' '. "重量单位
CLIENTDATAX-UNIT_OF_WT = 'X'.
ENDIF.
IF WA_DATA-SIZE_DIM <> ' '. "大小量纲
CLIENTDATAX-SIZE_DIM = 'X'.
ENDIF.
IF WA_DATA-STD_DESCR <> ' '. "行业标准描述
CLIENTDATAX-STD_DESCR = 'X'.
ENDIF.
IF WA_DATA-BATCH_MGMT <> ' '. "批次管理
CLIENTDATAX-BATCH_MGMT = 'X'.
ENDIF.
IF WA_DATA-MTPOS_MARA <> ' '. "普通项目类别组
CLIENTDATAX-ITEM_CAT = 'X'.
ENDIF.
* IF WA_DATA-KZKFG <> ' '. "可配置物料
* CLIENTDATAX-CM_RELEVANCE_FLAG = 'X'.
* ENDIF.
ENDIF.
* 附件数据
IF C_11 = 'X'.
IF WA_DATA-MEINH1 <> ''.
CLEAR: UNITSOFMEASURE, UNITSOFMEASUREX.
UNITSOFMEASURE-ALT_UNIT = WA_DATA-MEINH1.
UNITSOFMEASURE-NUMERATOR = WA_DATA-UMREZ1.
UNITSOFMEASURE-DENOMINATR = WA_DATA-UMREN1.
UNITSOFMEASUREX-ALT_UNIT = WA_DATA-MEINH1.
UNITSOFMEASUREX-NUMERATOR = 'X'.
UNITSOFMEASUREX-DENOMINATR = 'X'.
APPEND UNITSOFMEASURE.
APPEND UNITSOFMEASUREX.
ENDIF.
IF WA_DATA-MEINH2 <> ''.
CLEAR: UNITSOFMEASURE, UNITSOFMEASUREX.
UNITSOFMEASURE-ALT_UNIT = WA_DATA-MEINH2.
UNITSOFMEASURE-NUMERATOR = WA_DATA-UMREZ2.
UNITSOFMEASURE-DENOMINATR = WA_DATA-UMREN2.
UNITSOFMEASUREX-ALT_UNIT = WA_DATA-MEINH2.
UNITSOFMEASUREX-NUMERATOR = 'X'.
UNITSOFMEASUREX-DENOMINATR = 'X'.
APPEND UNITSOFMEASURE.
APPEND UNITSOFMEASUREX.
ENDIF.
IF WA_DATA-MEINH3 <> ''.
CLEAR: UNITSOFMEASURE, UNITSOFMEASUREX.
UNITSOFMEASURE-ALT_UNIT = WA_DATA-MEINH3.
UNITSOFMEASURE-NUMERATOR = WA_DATA-UMREZ3.
UNITSOFMEASURE-DENOMINATR = WA_DATA-UMREN3.
UNITSOFMEASUREX-ALT_UNIT = WA_DATA-MEINH3.
UNITSOFMEASUREX-NUMERATOR = 'X'.
UNITSOFMEASUREX-DENOMINATR = 'X'.
APPEND UNITSOFMEASURE.
APPEND UNITSOFMEASUREX.
ENDIF.
IF WA_DATA-MEINH4 <> ''.
CLEAR: UNITSOFMEASURE, UNITSOFMEASUREX.
UNITSOFMEASURE-ALT_UNIT = WA_DATA-MEINH4.
UNITSOFMEASURE-NUMERATOR = WA_DATA-UMREZ4.
UNITSOFMEASURE-DENOMINATR = WA_DATA-UMREN4.
UNITSOFMEASUREX-ALT_UNIT = WA_DATA-MEINH4.
UNITSOFMEASUREX-NUMERATOR = 'X'.
UNITSOFMEASUREX-DENOMINATR = 'X'.
APPEND UNITSOFMEASURE.
APPEND UNITSOFMEASUREX.
ENDIF.
IF WA_DATA-MEINH5 <> ''.
CLEAR: UNITSOFMEASURE, UNITSOFMEASUREX.
UNITSOFMEASURE-ALT_UNIT = WA_DATA-MEINH5.
UNITSOFMEASURE-NUMERATOR = WA_DATA-UMREZ5.
UNITSOFMEASURE-DENOMINATR = WA_DATA-UMREN5.
UNITSOFMEASUREX-ALT_UNIT = WA_DATA-MEINH5.
UNITSOFMEASUREX-NUMERATOR = 'X'.
UNITSOFMEASUREX-DENOMINATR = 'X'.
APPEND UNITSOFMEASURE.
APPEND UNITSOFMEASUREX.
ENDIF.
ENDIF.
IF C_01 = C_X.
CLEAR: WA_MARA_EN, WA_MARA_ENX,
EXTENSIONINS, EXTENSIONINX.
WA_MARA_EN-MATERIAL = WA_DATA-MATERIAL.
* wa_mara_en-zmeins = wa_data-zmeins.
* wa_mara_en-zchange1 = wa_data-zchange1.
* wa_mara_en-zkunnr = wa_data-zkunnr.
* wa_mara_en-znote = wa_data-znote.
WA_MARA_ENX-MATERIAL = WA_DATA-MATERIAL.
* wa_mara_enx-zmeins = c_x.
* wa_mara_enx-zchange1 = c_x.
* wa_mara_enx-zkunnr = c_x.
* wa_mara_enx-znote = c_x.
EXTENSIONINS-STRUCTURE = 'BAPI_TE_MARA'.
EXTENSIONINS-VALUEPART1 = WA_MARA_EN.
APPEND EXTENSIONINS.
EXTENSIONINX-STRUCTURE = 'BAPI_TE_MARAX'.
EXTENSIONINX-VALUEPART1 = WA_MARA_ENX.
APPEND EXTENSIONINX.
ENDIF.
CLEAR: MATERIALDESCRIPTION[].
IF WA_DATA-MATL_DESC_ZH <> ' '. "物料描述(中文)
IF WA_DATA-MATL_DESC_ZH = '#'.
MATERIALDESCRIPTION-LANGU = '1'.
MATERIALDESCRIPTION-MATL_DESC = ' '.
APPEND MATERIALDESCRIPTION.
ELSE.
MATERIALDESCRIPTION-LANGU = '1'.
MATERIALDESCRIPTION-MATL_DESC = WA_DATA-MATL_DESC_ZH.
APPEND MATERIALDESCRIPTION.
ENDIF.
ENDIF.
IF WA_DATA-MATL_DESC_EN <> ' '. "物料描述(英文)
IF WA_DATA-MATL_DESC_EN = '#'.
MATERIALDESCRIPTION-LANGU = 'E'.
MATERIALDESCRIPTION-MATL_DESC = ' '.
APPEND MATERIALDESCRIPTION.
ELSE.
MATERIALDESCRIPTION-LANGU = 'E'.
MATERIALDESCRIPTION-MATL_DESC = WA_DATA-MATL_DESC_EN.
APPEND MATERIALDESCRIPTION.
ENDIF.
ENDIF.
* Create and Change Material Master Data
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = HEADDATA
CLIENTDATA = CLIENTDATA
CLIENTDATAX = CLIENTDATAX
PLANTDATA = PLANTDATA
PLANTDATAX = PLANTDATAX
SALESDATA = SALESDATA
SALESDATAX = SALESDATAX
WAREHOUSENUMBERDATA = WAREHOUSENUMBERDATA
WAREHOUSENUMBERDATAX = WAREHOUSENUMBERDATAX
STORAGELOCATIONDATA = STORAGELOCATIONDATA
STORAGELOCATIONDATAX = STORAGELOCATIONDATAX
VALUATIONDATA = VALUATIONDATA
VALUATIONDATAX = VALUATIONDATAX
STORAGETYPEDATA = STORAGETYPEDATA
STORAGETYPEDATAX = STORAGETYPEDATAX
IMPORTING
RETURN = RETURN
TABLES
MATERIALDESCRIPTION = MATERIALDESCRIPTION
UNITSOFMEASURE = UNITSOFMEASURE
UNITSOFMEASUREX = UNITSOFMEASUREX
MATERIALLONGTEXT = MATERIALLONGTEXT
TAXCLASSIFICATIONS = TAXCLASSIFICATIONS
PRTDATA = PRTDATA
PRTDATAX = PRTDATAX
EXTENSIONIN = EXTENSIONINS
EXTENSIONINX = EXTENSIONINX.
* 更新结果
IF RETURN-TYPE = 'S'.
* commit
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
*
ELSE.
ROLLBACK WORK .
WA_RESULT-ICON = ICON_RED_LIGHT.
CONCATENATE WA_RESULT-MSG '增强数据更新失败;' INTO WA_RESULT-MSG.
ENDIF.
ENDIF.
*********END ADD BY QT_ABAP120180611
** 质量视图
* IF C_08 = 'X'.
*
** 创建检验类型
* PERFORM FRM_CRET_QMTAB.
*
* ENDIF.
* 分类视图
IF C_02 = 'X'.
* 创建分类
PERFORM FRM_CRET_CLASS.
ENDIF.
* 如果都没错则为绿灯
IF WA_RESULT-ICON IS INITIAL.
WA_RESULT-ICON = ICON_GREEN_LIGHT.
ENDIF.
* 记录结果
APPEND WA_RESULT TO IT_RESULT.
* 如果物料保存函数出错
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CLEAR WA_RESULT.
WA_RESULT-ICON = ICON_RED_LIGHT.
WA_RESULT-MSG = RETURN-MESSAGE.
WA_RESULT-MATNR = WA_DATA-MATERIAL.
APPEND WA_RESULT TO IT_RESULT.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_FILL_QMTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CRET_QMTAB .
DATA: L_MSG(255) TYPE C.
CLEAR: IT_INSPECTIONCTRL[].
* IF WA_DATA-INSPTYPE1 <> ''.
* CLEAR: WA_INSPECTIONCTRL.
* WA_INSPECTIONCTRL-INSPTYPE = WA_DATA-INSPTYPE1.
* WA_INSPECTIONCTRL-MATERIAL = WA_DATA-MATERIAL.
* WA_INSPECTIONCTRL-PLANT = WA_DATA-PLANT.
* WA_INSPECTIONCTRL-IND_INSPTYPE_MAT_ACTIVE = 'X'.
* READ TABLE IT_TQ34 INTO WA_TQ34 WITH KEY ART = WA_DATA-INSPTYPE1 BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_INSPECTIONCTRL-IND_INSP_WITH_TSK_LIST = WA_TQ34-PPL."有任务清单的检验
* WA_INSPECTIONCTRL-IND_SPEC_MATSPEC = WA_TQ34-SPEZUEBER."使用物料说明的检验
* WA_INSPECTIONCTRL-IND_SPEC_CONFIG = WA_TQ34-CONF."来自配置的检验规范
* WA_INSPECTIONCTRL-IND_SPEC_BATCH = WA_TQ34-TLS."批次确定的检验规范
* WA_INSPECTIONCTRL-IND_AUTO_ASSIGN = WA_TQ34-APP."自动规格分配
* WA_INSPECTIONCTRL-IND_INSP_BY_CHARAC = WA_TQ34-MER."按特性检验
* WA_INSPECTIONCTRL-IND_POST_TO_INSP_STOCK = WA_TQ34-INSMK."过帐到检验库存
* WA_INSPECTIONCTRL-IND_AUTOMATIC_UD = WA_TQ34-AVE."计划的自动用途决定
* WA_INSPECTIONCTRL-SAMPLING_PROCEDURE = WA_TQ34-STICHPRVER."采样程序
* WA_INSPECTIONCTRL-DYN_MODIF_RULE = WA_TQ34-DYNREGEL."动态修改规则
* WA_INSPECTIONCTRL-INSP_PERCENTAGE = WA_TQ34-SPROZ."检验百分比
* WA_INSPECTIONCTRL-IND_100_PERCENT_INSPECTION = WA_TQ34-HPZ. "100% 检验
* WA_INSPECTIONCTRL-IND_SKIPS_ALLOWED = WA_TQ34-DYN."允许略过
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE = WA_TQ34-MPB."手工输入采样
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE_CALC = WA_TQ34-MST."手动触发采样计算
* WA_INSPECTIONCTRL-IND_SINGLE_UNITS_POSSIBLE = WA_TQ34-EIN."可能的序列号管理
* WA_INSPECTIONCTRL-AVE_INSP_DURATION = WA_TQ34-MPDAU."平均检验期
* WA_INSPECTIONCTRL-CONTR_INSP_LOT_CREATE = WA_TQ34-CHG."控制检验批创建(批次摘要)
* WA_INSPECTIONCTRL-QUAL_SCORE_PROCEDURE = WA_TQ34-QKZVERF."计算质量记分的程序
* WA_INSPECTIONCTRL-ALLOWED_SCRAP_SHARE = WA_TQ34-QPMAT."检验批中允许的废品份额(百分比)
* WA_INSPECTIONCTRL-IND_HU_INSPECTION = WA_TQ34-APA."处理单位的检验
* WA_INSPECTIONCTRL-MS_FLAG = WA_TQ34-MS_FLAG."标识:多个规范
* ENDIF.
* APPEND WA_INSPECTIONCTRL TO IT_INSPECTIONCTRL.
* ENDIF.
* IF WA_DATA-INSPTYPE2 <> ''.
* CLEAR: WA_INSPECTIONCTRL.
* WA_INSPECTIONCTRL-INSPTYPE = WA_DATA-INSPTYPE2.
* WA_INSPECTIONCTRL-MATERIAL = WA_DATA-MATERIAL.
* WA_INSPECTIONCTRL-PLANT = WA_DATA-PLANT.
* WA_INSPECTIONCTRL-IND_INSPTYPE_MAT_ACTIVE = 'X'.
* READ TABLE IT_TQ34 INTO WA_TQ34 WITH KEY ART = WA_DATA-INSPTYPE2 BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_INSPECTIONCTRL-IND_INSP_WITH_TSK_LIST = WA_TQ34-PPL."有任务清单的检验
* WA_INSPECTIONCTRL-IND_SPEC_MATSPEC = WA_TQ34-SPEZUEBER."使用物料说明的检验
* WA_INSPECTIONCTRL-IND_SPEC_CONFIG = WA_TQ34-CONF."来自配置的检验规范
* WA_INSPECTIONCTRL-IND_SPEC_BATCH = WA_TQ34-TLS."批次确定的检验规范
* WA_INSPECTIONCTRL-IND_AUTO_ASSIGN = WA_TQ34-APP."自动规格分配
* WA_INSPECTIONCTRL-IND_INSP_BY_CHARAC = WA_TQ34-MER."按特性检验
* WA_INSPECTIONCTRL-IND_POST_TO_INSP_STOCK = WA_TQ34-INSMK."过帐到检验库存
* WA_INSPECTIONCTRL-IND_AUTOMATIC_UD = WA_TQ34-AVE."计划的自动用途决定
* WA_INSPECTIONCTRL-SAMPLING_PROCEDURE = WA_TQ34-STICHPRVER."采样程序
* WA_INSPECTIONCTRL-DYN_MODIF_RULE = WA_TQ34-DYNREGEL."动态修改规则
* WA_INSPECTIONCTRL-INSP_PERCENTAGE = WA_TQ34-SPROZ."检验百分比
* WA_INSPECTIONCTRL-IND_100_PERCENT_INSPECTION = WA_TQ34-HPZ. "100% 检验
* WA_INSPECTIONCTRL-IND_SKIPS_ALLOWED = WA_TQ34-DYN."允许略过
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE = WA_TQ34-MPB."手工输入采样
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE_CALC = WA_TQ34-MST."手动触发采样计算
* WA_INSPECTIONCTRL-IND_SINGLE_UNITS_POSSIBLE = WA_TQ34-EIN."可能的序列号管理
* WA_INSPECTIONCTRL-AVE_INSP_DURATION = WA_TQ34-MPDAU."平均检验期
* WA_INSPECTIONCTRL-CONTR_INSP_LOT_CREATE = WA_TQ34-CHG."控制检验批创建(批次摘要)
* WA_INSPECTIONCTRL-QUAL_SCORE_PROCEDURE = WA_TQ34-QKZVERF."计算质量记分的程序
* WA_INSPECTIONCTRL-ALLOWED_SCRAP_SHARE = WA_TQ34-QPMAT."检验批中允许的废品份额(百分比)
* WA_INSPECTIONCTRL-IND_HU_INSPECTION = WA_TQ34-APA."处理单位的检验
* WA_INSPECTIONCTRL-MS_FLAG = WA_TQ34-MS_FLAG."标识:多个规范
* ENDIF.
* APPEND WA_INSPECTIONCTRL TO IT_INSPECTIONCTRL.
* ENDIF.
* IF WA_DATA-INSPTYPE3 <> ''.
* CLEAR: WA_INSPECTIONCTRL.
* WA_INSPECTIONCTRL-INSPTYPE = WA_DATA-INSPTYPE3.
* WA_INSPECTIONCTRL-MATERIAL = WA_DATA-MATERIAL.
* WA_INSPECTIONCTRL-PLANT = WA_DATA-PLANT.
* WA_INSPECTIONCTRL-IND_INSPTYPE_MAT_ACTIVE = 'X'.
* READ TABLE IT_TQ34 INTO WA_TQ34 WITH KEY ART = WA_DATA-INSPTYPE3 BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_INSPECTIONCTRL-IND_INSP_WITH_TSK_LIST = WA_TQ34-PPL."有任务清单的检验
* WA_INSPECTIONCTRL-IND_SPEC_MATSPEC = WA_TQ34-SPEZUEBER."使用物料说明的检验
* WA_INSPECTIONCTRL-IND_SPEC_CONFIG = WA_TQ34-CONF."来自配置的检验规范
* WA_INSPECTIONCTRL-IND_SPEC_BATCH = WA_TQ34-TLS."批次确定的检验规范
* WA_INSPECTIONCTRL-IND_AUTO_ASSIGN = WA_TQ34-APP."自动规格分配
* WA_INSPECTIONCTRL-IND_INSP_BY_CHARAC = WA_TQ34-MER."按特性检验
* WA_INSPECTIONCTRL-IND_POST_TO_INSP_STOCK = WA_TQ34-INSMK."过帐到检验库存
* WA_INSPECTIONCTRL-IND_AUTOMATIC_UD = WA_TQ34-AVE."计划的自动用途决定
* WA_INSPECTIONCTRL-SAMPLING_PROCEDURE = WA_TQ34-STICHPRVER."采样程序
* WA_INSPECTIONCTRL-DYN_MODIF_RULE = WA_TQ34-DYNREGEL."动态修改规则
* WA_INSPECTIONCTRL-INSP_PERCENTAGE = WA_TQ34-SPROZ."检验百分比
* WA_INSPECTIONCTRL-IND_100_PERCENT_INSPECTION = WA_TQ34-HPZ. "100% 检验
* WA_INSPECTIONCTRL-IND_SKIPS_ALLOWED = WA_TQ34-DYN."允许略过
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE = WA_TQ34-MPB."手工输入采样
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE_CALC = WA_TQ34-MST."手动触发采样计算
* WA_INSPECTIONCTRL-IND_SINGLE_UNITS_POSSIBLE = WA_TQ34-EIN."可能的序列号管理
* WA_INSPECTIONCTRL-AVE_INSP_DURATION = WA_TQ34-MPDAU."平均检验期
* WA_INSPECTIONCTRL-CONTR_INSP_LOT_CREATE = WA_TQ34-CHG."控制检验批创建(批次摘要)
* WA_INSPECTIONCTRL-QUAL_SCORE_PROCEDURE = WA_TQ34-QKZVERF."计算质量记分的程序
* WA_INSPECTIONCTRL-ALLOWED_SCRAP_SHARE = WA_TQ34-QPMAT."检验批中允许的废品份额(百分比)
* WA_INSPECTIONCTRL-IND_HU_INSPECTION = WA_TQ34-APA."处理单位的检验
* WA_INSPECTIONCTRL-MS_FLAG = WA_TQ34-MS_FLAG."标识:多个规范
* ENDIF.
* APPEND WA_INSPECTIONCTRL TO IT_INSPECTIONCTRL.
* ENDIF.
* IF WA_DATA-INSPTYPE4 <> ''.
* CLEAR: WA_INSPECTIONCTRL.
* WA_INSPECTIONCTRL-INSPTYPE = WA_DATA-INSPTYPE4.
* WA_INSPECTIONCTRL-MATERIAL = WA_DATA-MATERIAL.
* WA_INSPECTIONCTRL-PLANT = WA_DATA-PLANT.
* WA_INSPECTIONCTRL-IND_INSPTYPE_MAT_ACTIVE = 'X'.
* READ TABLE IT_TQ34 INTO WA_TQ34 WITH KEY ART = WA_DATA-INSPTYPE4 BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_INSPECTIONCTRL-IND_INSP_WITH_TSK_LIST = WA_TQ34-PPL."有任务清单的检验
* WA_INSPECTIONCTRL-IND_SPEC_MATSPEC = WA_TQ34-SPEZUEBER."使用物料说明的检验
* WA_INSPECTIONCTRL-IND_SPEC_CONFIG = WA_TQ34-CONF."来自配置的检验规范
* WA_INSPECTIONCTRL-IND_SPEC_BATCH = WA_TQ34-TLS."批次确定的检验规范
* WA_INSPECTIONCTRL-IND_AUTO_ASSIGN = WA_TQ34-APP."自动规格分配
* WA_INSPECTIONCTRL-IND_INSP_BY_CHARAC = WA_TQ34-MER."按特性检验
* WA_INSPECTIONCTRL-IND_POST_TO_INSP_STOCK = WA_TQ34-INSMK."过帐到检验库存
* WA_INSPECTIONCTRL-IND_AUTOMATIC_UD = WA_TQ34-AVE."计划的自动用途决定
* WA_INSPECTIONCTRL-SAMPLING_PROCEDURE = WA_TQ34-STICHPRVER."采样程序
* WA_INSPECTIONCTRL-DYN_MODIF_RULE = WA_TQ34-DYNREGEL."动态修改规则
* WA_INSPECTIONCTRL-INSP_PERCENTAGE = WA_TQ34-SPROZ."检验百分比
* WA_INSPECTIONCTRL-IND_100_PERCENT_INSPECTION = WA_TQ34-HPZ. "100% 检验
* WA_INSPECTIONCTRL-IND_SKIPS_ALLOWED = WA_TQ34-DYN."允许略过
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE = WA_TQ34-MPB."手工输入采样
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE_CALC = WA_TQ34-MST."手动触发采样计算
* WA_INSPECTIONCTRL-IND_SINGLE_UNITS_POSSIBLE = WA_TQ34-EIN."可能的序列号管理
* WA_INSPECTIONCTRL-AVE_INSP_DURATION = WA_TQ34-MPDAU."平均检验期
* WA_INSPECTIONCTRL-CONTR_INSP_LOT_CREATE = WA_TQ34-CHG."控制检验批创建(批次摘要)
* WA_INSPECTIONCTRL-QUAL_SCORE_PROCEDURE = WA_TQ34-QKZVERF."计算质量记分的程序
* WA_INSPECTIONCTRL-ALLOWED_SCRAP_SHARE = WA_TQ34-QPMAT."检验批中允许的废品份额(百分比)
* WA_INSPECTIONCTRL-IND_HU_INSPECTION = WA_TQ34-APA."处理单位的检验
* WA_INSPECTIONCTRL-MS_FLAG = WA_TQ34-MS_FLAG."标识:多个规范
* ENDIF.
* APPEND WA_INSPECTIONCTRL TO IT_INSPECTIONCTRL.
* ENDIF.
*
* IF WA_DATA-INSPTYPE5 <> ''.
* CLEAR: WA_INSPECTIONCTRL.
* WA_INSPECTIONCTRL-INSPTYPE = WA_DATA-INSPTYPE5.
* WA_INSPECTIONCTRL-MATERIAL = WA_DATA-MATERIAL.
* WA_INSPECTIONCTRL-PLANT = WA_DATA-PLANT.
* WA_INSPECTIONCTRL-IND_INSPTYPE_MAT_ACTIVE = 'X'.
* READ TABLE IT_TQ34 INTO WA_TQ34 WITH KEY ART = WA_DATA-INSPTYPE5 BINARY SEARCH.
* IF SY-SUBRC = 0.
* WA_INSPECTIONCTRL-IND_INSP_WITH_TSK_LIST = WA_TQ34-PPL."有任务清单的检验
* WA_INSPECTIONCTRL-IND_SPEC_MATSPEC = WA_TQ34-SPEZUEBER."使用物料说明的检验
* WA_INSPECTIONCTRL-IND_SPEC_CONFIG = WA_TQ34-CONF."来自配置的检验规范
* WA_INSPECTIONCTRL-IND_SPEC_BATCH = WA_TQ34-TLS."批次确定的检验规范
* WA_INSPECTIONCTRL-IND_AUTO_ASSIGN = WA_TQ34-APP."自动规格分配
* WA_INSPECTIONCTRL-IND_INSP_BY_CHARAC = WA_TQ34-MER."按特性检验
* WA_INSPECTIONCTRL-IND_POST_TO_INSP_STOCK = WA_TQ34-INSMK."过帐到检验库存
* WA_INSPECTIONCTRL-IND_AUTOMATIC_UD = WA_TQ34-AVE."计划的自动用途决定
* WA_INSPECTIONCTRL-SAMPLING_PROCEDURE = WA_TQ34-STICHPRVER."采样程序
* WA_INSPECTIONCTRL-DYN_MODIF_RULE = WA_TQ34-DYNREGEL."动态修改规则
* WA_INSPECTIONCTRL-INSP_PERCENTAGE = WA_TQ34-SPROZ."检验百分比
* WA_INSPECTIONCTRL-IND_100_PERCENT_INSPECTION = WA_TQ34-HPZ. "100% 检验
* WA_INSPECTIONCTRL-IND_SKIPS_ALLOWED = WA_TQ34-DYN."允许略过
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE = WA_TQ34-MPB."手工输入采样
* WA_INSPECTIONCTRL-IND_MANUAL_SAMPLE_CALC = WA_TQ34-MST."手动触发采样计算
* WA_INSPECTIONCTRL-IND_SINGLE_UNITS_POSSIBLE = WA_TQ34-EIN."可能的序列号管理
* WA_INSPECTIONCTRL-AVE_INSP_DURATION = WA_TQ34-MPDAU."平均检验期
* WA_INSPECTIONCTRL-CONTR_INSP_LOT_CREATE = WA_TQ34-CHG."控制检验批创建(批次摘要)
* WA_INSPECTIONCTRL-QUAL_SCORE_PROCEDURE = WA_TQ34-QKZVERF."计算质量记分的程序
* WA_INSPECTIONCTRL-ALLOWED_SCRAP_SHARE = WA_TQ34-QPMAT."检验批中允许的废品份额(百分比)
* WA_INSPECTIONCTRL-IND_HU_INSPECTION = WA_TQ34-APA."处理单位的检验
* WA_INSPECTIONCTRL-MS_FLAG = WA_TQ34-MS_FLAG."标识:多个规范
* ENDIF.
* APPEND WA_INSPECTIONCTRL TO IT_INSPECTIONCTRL.
* ENDIF.
* Replication of QM inspection setup
CLEAR: IT_RETURN[].
CALL FUNCTION 'BAPI_MATINSPCTRL_SAVEREPLICA'
TABLES
RETURN = IT_RETURN
INSPECTIONCTRL = IT_INSPECTIONCTRL.
* 执行结果
CLEAR: L_MSG.
LOOP AT IT_RETURN WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE L_MSG IT_RETURN-MESSAGE INTO L_MSG.
ENDLOOP.
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE WA_RESULT-MSG '质量管理视图出错:' L_MSG INTO WA_RESULT-MSG.
WA_RESULT-ICON = ICON_YELLOW_LIGHT.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_CRET_CLASS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CRET_CLASS .
DATA: L_MSG(255) TYPE C.
DATA: L_OBJECTKEYNEW TYPE BAPI1003_KEY-OBJECT,
L_OBJECTTABLENEW TYPE BAPI1003_KEY-OBJECTTABLE,
L_CLASSNUMNEW TYPE BAPI1003_KEY-CLASSNUM,
L_CLASSTYPENEW TYPE BAPI1003_KEY-CLASSTYPE.
DATA: LT_NUM TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM,
LT_CHAR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR,
LT_CURR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CURR.
CLEAR: L_OBJECTKEYNEW, L_OBJECTTABLENEW, L_CLASSNUMNEW, L_CLASSTYPENEW.
CLEAR: IT_VALUECHAR[].
* 分类1
IF WA_DATA-CLASS1 IS NOT INITIAL AND WA_DATA-CLASS_TYPE1 IS NOT INITIAL.
L_OBJECTKEYNEW = WA_DATA-MATERIAL.
L_OBJECTTABLENEW = 'MARA'.
L_CLASSNUMNEW = WA_DATA-CLASS1.
L_CLASSTYPENEW = WA_DATA-CLASS_TYPE1.
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_TYP'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT1.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SALESORG'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT2.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT1_BIO'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT3.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT5'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT4.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT6'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT5.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT8'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT6.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT9'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT7.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT10'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT8.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT12'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT9.
* APPEND IT_VALUECHAR.
*
* CLEAR: IT_VALUECHAR.
* IT_VALUECHAR-CHARACT = 'ANGEL_SORT13'.
* IT_VALUECHAR-VALUE_CHAR = WA_DATA-ATWRT10.
* APPEND IT_VALUECHAR.
CLEAR: IT_RETURN[].
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
OBJECTKEY = L_OBJECTKEYNEW
OBJECTTABLE = L_OBJECTTABLENEW
CLASSNUM = L_CLASSNUMNEW
CLASSTYPE = L_CLASSTYPENEW
TABLES
ALLOCVALUESNUM = LT_NUM
ALLOCVALUESCHAR = LT_CHAR
ALLOCVALUESCURR = LT_CURR
RETURN = IT_RETURN.
READ TABLE IT_RETURN WITH KEY TYPE = 'S'.
IF SY-SUBRC <> 0.
CLEAR: IT_RETURN[].
CALL FUNCTION 'BAPI_OBJCL_CREATE'
EXPORTING
OBJECTKEYNEW = L_OBJECTKEYNEW
OBJECTTABLENEW = L_OBJECTTABLENEW
CLASSNUMNEW = L_CLASSNUMNEW
CLASSTYPENEW = L_CLASSTYPENEW
STANDARDCLASS = 'X'
TABLES
ALLOCVALUESCHAR = IT_VALUECHAR
RETURN = IT_RETURN.
ELSE.
CLEAR: IT_RETURN[].
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
OBJECTKEY = L_OBJECTKEYNEW
OBJECTTABLE = L_OBJECTTABLENEW
CLASSNUM = L_CLASSNUMNEW
CLASSTYPE = L_CLASSTYPENEW
TABLES
ALLOCVALUESNUMNEW = LT_NUM
ALLOCVALUESCHARNEW = IT_VALUECHAR
ALLOCVALUESCURRNEW = LT_CURR
RETURN = IT_RETURN.
ENDIF.
CLEAR: L_MSG.
LOOP AT IT_RETURN WHERE TYPE = 'E' OR TYPE = 'A'.
CONCATENATE L_MSG IT_RETURN-MESSAGE INTO L_MSG.
ENDLOOP.
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE WA_RESULT-MSG '分类视图1出错:' L_MSG INTO WA_RESULT-MSG.
WA_RESULT-ICON = ICON_YELLOW_LIGHT.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
ENDIF.
** 分类2
* IF WA_DATA-CLASS2 IS NOT INITIAL AND WA_DATA-CLASS_TYPE2 IS NOT INITIAL.
*
* CLEAR: L_OBJECTKEYNEW, L_OBJECTTABLENEW, L_CLASSNUMNEW, L_CLASSTYPENEW.
*
* L_OBJECTKEYNEW = WA_DATA-MATERIAL.
* L_OBJECTTABLENEW = 'MARA'.
* L_CLASSNUMNEW = WA_DATA-CLASS2.
* L_CLASSTYPENEW = WA_DATA-CLASS_TYPE2.
*
* CLEAR: IT_RETURN[].
* CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
* EXPORTING
* OBJECTKEY = L_OBJECTKEYNEW
* OBJECTTABLE = L_OBJECTTABLENEW
* CLASSNUM = L_CLASSNUMNEW
* CLASSTYPE = L_CLASSTYPENEW
* TABLES
* ALLOCVALUESNUM = LT_NUM
* ALLOCVALUESCHAR = LT_CHAR
* ALLOCVALUESCURR = LT_CURR
* RETURN = IT_RETURN.
*
* READ TABLE IT_RETURN WITH KEY TYPE = 'S'.
* IF SY-SUBRC <> 0.
* CLEAR: IT_RETURN[].
* CALL FUNCTION 'BAPI_OBJCL_CREATE'
* EXPORTING
* OBJECTKEYNEW = L_OBJECTKEYNEW
* OBJECTTABLENEW = L_OBJECTTABLENEW
* CLASSNUMNEW = L_CLASSNUMNEW
* CLASSTYPENEW = L_CLASSTYPENEW
* STANDARDCLASS = 'X'
* TABLES
* RETURN = IT_RETURN.
*
* CLEAR: L_MSG.
* LOOP AT IT_RETURN WHERE TYPE = 'E' OR TYPE = 'A'.
* CONCATENATE L_MSG IT_RETURN-MESSAGE INTO L_MSG.
* ENDLOOP.
* IF SY-SUBRC = 0.
* CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
* CONCATENATE WA_RESULT-MSG '分类视图2出错:' L_MSG INTO WA_RESULT-MSG.
* WA_RESULT-ICON = ICON_YELLOW_LIGHT.
* ELSE.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = 'X'.
* ENDIF.
* ENDIF.
*
* ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_CONVERT_COUNT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_WA_DATA_BASE_UOM text
*----------------------------------------------------------------------*
FORM FRM_CONVERT_COUNT CHANGING P_MEINS.
CHECK P_MEINS IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = P_MEINS
IMPORTING
OUTPUT = P_MEINS
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_BDC
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM CALL_BDC USING P_MAT TYPE CHAR18
CHANGING LS_RESYLT TYPE TY_RESULT.
DATA: L_MSTRING(480).
DATA: L_SUBRC LIKE SY-SUBRC.
DATA: LX_AUTH_CHECK TYPE REF TO CX_ROOT.
DATA: L_AUTH_CHECK_TEXT TYPE STRING.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_FIELD USING 'RMMG1-MATNR'
P_MAT.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(02)'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MARA-KZKFG'.
PERFORM BDC_FIELD USING 'MARA-KZKFG'
''.
TRY.
CALL TRANSACTION 'MM02' WITH AUTHORITY-CHECK USING LT_BDCDATA
MODE 'N' "后台模式
UPDATE 'L'
MESSAGES INTO LT_MESSTAB.
CATCH CX_SY_AUTHORIZATION_ERROR INTO LX_AUTH_CHECK.
* Authorization missing for user when executing transaction
L_AUTH_CHECK_TEXT = LX_AUTH_CHECK->GET_TEXT( ).
SY-SUBRC = 99.
ENDTRY.
L_SUBRC = SY-SUBRC.
IF L_SUBRC NE 0.
LS_RESYLT-ICON = ICON_RED_LIGHT.
CONCATENATE '可配置物料刷新失败请检查相关物料' '' INTO LS_RESYLT-MSG.
ENDIF.
* LOOP AT LT_MESSTAB.
* MESSAGE ID LT_MESSTAB-MSGID
* TYPE LT_MESSTAB-MSGTYP
* NUMBER LT_MESSTAB-MSGNR
* INTO
* LS_RESYLT-MSG
* WITH LT_MESSTAB-MSGV1
* LT_MESSTAB-MSGV2
* LT_MESSTAB-MSGV3
* LT_MESSTAB-MSGV4.
*
* ENDLOOP.
REFRESH LT_BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR LT_BDCDATA.
LT_BDCDATA-PROGRAM = PROGRAM.
LT_BDCDATA-DYNPRO = DYNPRO.
LT_BDCDATA-DYNBEGIN = 'X'.
APPEND LT_BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
CLEAR LT_BDCDATA.
LT_BDCDATA-FNAM = FNAM.
LT_BDCDATA-FVAL = FVAL.
APPEND LT_BDCDATA.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form BDC_TRANSACTION
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> P_
*&---------------------------------------------------------------------*
FORM BDC_TRANSACTION USING TCODE.
ENDFORM.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本