*&---------------------------------------------------------------------*
*& Report ZMMR004
*&
*&---------------------------------------------------------------------*
* 模块名称 MM
*程序ID ZMMR004
*程序名称 物料主数据报表
*事务代码 ZMMR004
*&
*&---------------------------------------------------------------------*
*<处理概要>
* 。
*&---------------------------------------------------------------------*
* <更新记录>
*更新日期 变更管理No. 更新人 更新内容
*&---------------------------------------------------------------------*
* 2016/05/04 0000 xiaoaman CREATE
*&
*&---------------------------------------------------------------------*
REPORT ZMMR004.
*----------------------------------------------------------------------*
* DECLARATIVE ELEMENTS *
*----------------------------------------------------------------------*
TABLES:
MARA,MAKT,MARC,MVKE,MBEW,KLAH.
TYPES:
BEGIN OF TAB_TYPE,
PARA TYPE STRING,
DOBJ TYPE STRING,
END OF TAB_TYPE.
*常量定义
CONSTANTS:CNS_TEMPNAME LIKE WWWDATA-OBJID VALUE 'ZMMI003', "服务器模板名称
CNS_PATH LIKE RLGRAP-FILENAME VALUE 'C:\SAPTMP\'. "本地处理临时文件夹
DATA: BEGIN OF GT_ITAB OCCURS 0,
MATNR LIKE MARA-MATNR, "物料号
MAKTX LIKE MAKT-MAKTX, "物料描述
MAKTX_L TYPE CHAR200, "物料描述长描述-20170427 add
WERKS LIKE MARC-WERKS, "工厂
MATKL LIKE MARA-MATKL, "物料组
WGBEZ LIKE T023T-WGBEZ, "物料组描述
MTART LIKE MARA-MTART, "物料类型
BISMT LIKE MARA-BISMT, "旧物料号
MEINS LIKE MARA-MEINS, "基本单位
EXTWG LIKE MARA-EXTWG, "外部物料组
PSTAT LIKE MARA-PSTAT, "维护状态
BRGEW LIKE MARA-BRGEW, "毛重
GEWEI LIKE MARA-GEWEI, "重量单位
NTGEW LIKE MARA-NTGEW, "净重
VOLUM LIKE MARA-VOLUM, "体积
VOLEH LIKE MARA-VOLEH, "体积单位
CL_VARIANT LIKE KLAH-CLASS, "变式分类
CL_BATCH LIKE KLAH-CLASS, "批次分类
CL_MATNR LIKE KLAH-CLASS, "物料分类
LGORT LIKE RMMG1-LGORT, "库存地点
VKORG LIKE MVKE-VKORG, "销售组织
VTWEG LIKE MVKE-VTWEG, "分销渠道
*视图选择
XEIK1 TYPE C, "基本数据视图
XEIE1 TYPE C, "采购视图
XEID1 TYPE C, "物料需求计划(MRP)视图
XEIL1 TYPE C, "存储视图
XEIA1 TYPE C, "工作计划视图
XEIV1 TYPE C, "销售视图
XEIQ1 TYPE C, "质量管理视图
XEIB1 TYPE C, "会计视图
XEIG1 TYPE C, "成本视图
XEIC1 TYPE C, "仓库视图 -20170427 add
*仓库视图
LGNUM TYPE MLGN-LGNUM, "仓库号
LTKZA TYPE MLGN-LTKZA, "库存出库
LTKZE TYPE MLGN-LTKZE, "库存入库
LGBKZ TYPE MLGN-LGBKZ, " 仓库区标识
*采购视图
EKGRP LIKE MARC-EKGRP, "采购组
EKNAM LIKE T024-EKNAM, "采购组描述
BSTME LIKE MARA-BSTME, "采购单位
MAABC LIKE MARC-MAABC, "ABC标识
KAUTB LIKE MARC-KAUTB, "标识: "允许自动采购订单"
XCHPF LIKE MARA-XCHPF, "批次管理
KORDB LIKE MARC-KORDB, "源清单
USEQU LIKE MARC-USEQU, "配额安排
PO_TEXT TYPE CHAR100, "采购文本
*质量视图
QMATV LIKE MARC-QMATV, "检验设置
SSQSS LIKE MARC-SSQSS, "QM控制码
ART LIKE RMQAM-ART, "检验类型
APA LIKE RMQAM-APA, "首选类型
AKTIV LIKE RMQAM-AKTIV, "检验激活
QMPUR LIKE MARA-QMPUR, "采购激活
*MRP视图
DISMM LIKE MARC-DISMM, "MRP 类型
MINBE LIKE MARC-MINBE, "重订货点
BSTRF LIKE MARC-BSTRF, "舍入值
DISPO LIKE MARC-DISPO, "MRP控制者
DISLS LIKE MARC-DISLS, "批量
BSTMI LIKE MARC-BSTMI, "最小批量
BSTFE LIKE MARC-BSTFE, "固定批量大小
MABST LIKE MARC-MABST, "最大库存水平
BESKZ LIKE MARC-BESKZ, "采购类型
SOBSL LIKE MARC-SOBSL, "特殊采购类
KZECH LIKE MARC-KZECH, "在生产/处理订单中批量输入的确定
RGEKZ LIKE MARC-RGEKZ, "反冲
DISGR LIKE MARC-DISGR, "MRP组
LGPRO LIKE MARC-LGPRO, "生产库存地点
LGFSB LIKE MARC-LGFSB, "外部采购仓储地点
KZKUP LIKE MARC-KZKUP, "物料是联产品
DZEIT LIKE MARC-DZEIT, "自制生产
PLIFZ LIKE MARC-PLIFZ, "计划交货时间
WEBAZ LIKE MARC-WEBAZ, "收货处理时间
FHORI LIKE MARC-FHORI, "计划边际码
FXHOR LIKE MARC-FXHOR, "计划时界
EISBE LIKE MARC-EISBE, "安全库存
STRGR LIKE MARC-STRGR, "策略组
MTVFP LIKE MARC-MTVFP, "可用性检查
EPRIO LIKE MARC-EPRIO, "库存确定组
ALTSL LIKE MARC-ALTSL, "选择方法
SBDKZ LIKE MARC-SBDKZ, "独立/集中
SAUFT LIKE MARC-SAUFT, "重复制造
SFEPR LIKE MARC-SFEPR, "重复制造参数
FEVOR LIKE MARC-FEVOR, "生产调度员
SFCPF LIKE MARC-SFCPF, "生产计划参数
KZAUS LIKE MARC-KZAUS, "非连续标识
KAUSF LIKE MARC-KAUSF, "部件废品率%
AUSDT LIKE MARC-AUSDT, "有效期
NFMAT LIKE MARC-NFMAT, "后续物料
UEETK LIKE MARC-UEETK, "无限制过量交货
UEETO LIKE MARC-UEETO, "过度交货允差
MHDRZ LIKE MARA-MHDRZ, "最小剩余货架寿命
MHDHB LIKE MARA-MHDHB, "总货架寿命
LZEIH LIKE MARC-LZEIH, "时间单位
IPRKZ LIKE MARA-IPRKZ, "SLED的期间标识
VRMOD LIKE MARC-VRMOD, "消耗模式
VINT1 LIKE MARC-VINT1, "逆向消耗期间
VINT2 LIKE MARC-VINT2, "向前消耗期间
MISKZ LIKE MARC-MISKZ, "综合MRP
MATGR TYPE MARC-MATGR, "物料分组
*销售视图
MAGRV LIKE MARA-MAGRV, "包装组
DWERK LIKE MVKE-DWERK, "交货工厂
TRAGR LIKE MARA-TRAGR, "运输组
LADGR LIKE MARC-LADGR, "装载组
VERSG LIKE MVKE-VERSG, "物料统计组 20170427 add
KONDM LIKE MVKE-KONDM, "物料定价组
SPART LIKE MARA-SPART, "部门(生产线) 产品组
TATYP LIKE BAPI_MLAN-TAX_TYPE_1, "税种类 'MWST'
TAXKM LIKE BAPI_MLAN-TAXCLASS_1, "物料的税分类
VRKME LIKE MVKE-VRKME, "销售单位
KTGRM LIKE MVKE-KTGRM, "科目设置组
MTPOS LIKE MVKE-MTPOS, "项目类别组
* VERSG LIKE MVKE-VERSG, "物料统计组
*会计和成本视图
BWTTY LIKE MBEW-BWTTY, "评估类别
BKLAS LIKE MBEW-BKLAS, "评估分类
VPRSV LIKE MBEW-VPRSV, "价格控制
VERPR LIKE MBEW-VERPR, "移动平均价
STPRS LIKE MBEW-STPRS, "标准价
PEINH LIKE MBEW-PEINH, "价格单位
LOSGR LIKE MARC-LOSGR, "成本核算批量
HRKFT LIKE MBEW-HRKFT, "原始组
KOSGR LIKE MBEW-KOSGR, "间接费分组
AWSLS LIKE MARC-AWSLS, "差异码
PRCTR LIKE MARC-PRCTR, "利润中心
NCOST LIKE MARC-NCOST, "无成本核算
EKALR LIKE MBEW-EKALR, "用QS的成本估算
HKMAT LIKE MBEW-HKMAT, "物料来源
MMSTA LIKE MARC-MMSTA, "特定工厂的物料状态
ZPLP1 LIKE MBEW-ZPLP1, "计划价格1
ZPLD1 LIKE MBEW-ZPLD1, "计划价格日期1
ZPLP2 LIKE MBEW-ZPLP2, "计划价格2
ZPLD2 LIKE MBEW-ZPLD2, "计划价格日期2
MLAST LIKE CKMLHD-MLAST, "价格确定 20170427 add
END OF GT_ITAB.
DATA: GS_ITAB LIKE TABLE OF GT_ITAB WITH HEADER LINE.
DATA: GB_ITAB LIKE TABLE OF GT_ITAB WITH HEADER LINE.
DATA: GV_FILENAME TYPE STRING.
DATA: BEGIN OF IT_FIELD OCCURS 0 ,
FIELD(100),
END OF IT_FIELD.
DATA: GT_MBEW TYPE TABLE OF MBEW WITH HEADER LINE. "物料主数据会计和成本
DATA: GT_MVKE TYPE TABLE OF MVKE WITH HEADER LINE. "销售视图
DATA: GV_EDIT TYPE STRING. "是否可以编辑 02 表示可以编辑,03表示显示。
DATA: GV_ID TYPE C LENGTH 10 VALUE 'TEXTS'.
DATA: GV_DOBJ TYPE STANDARD TABLE OF TAB_TYPE WITH HEADER LINE. "程序间数据传递
DATA: GV_PROG TYPE STRING,
GV_BLDAT TYPE STRING,
GV_BUDAT TYPE STRING,
GV_WERKS TYPE MSEG-WERKS,
GV_MATNR TYPE MSEG-MATNR.
DATA: GV_POS TYPE I.
DATA: CL_DESCR TYPE REF TO CL_ABAP_STRUCTDESCR.
FIELD-SYMBOLS:<FS_COMP> TYPE ABAP_COMPDESCR.
FIELD-SYMBOLS:<FS_NAME> TYPE ANY.
*定义ALV输出所需要的保存列名的内表和结构
TYPE-POOLS: SLIS.
DATA: LT_FIELDCAT TYPE LVC_S_FCAT OCCURS 0.
DATA: LS_FIELDCAT TYPE LVC_S_FCAT.
DATA: LB_FIELDCAT TYPE TABLE OF LVC_S_FCAT WITH HEADER LINE.
DATA: LS_LAYOUT TYPE LVC_S_LAYO.
DATA: GT_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE,
GT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT WITH HEADER LINE.
DATA: LT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA: LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_EDIT TYPE LVC_S_STYL,
LT_EDIT TYPE LVC_T_STYL.
DATA: REF_GRID TYPE REF TO CL_GUI_ALV_GRID.
*----------------------------------------------------------------------*
* SELECTION-SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_PFILE TYPE LOCALFILE. " MEMORY ID M07004ID. "001
SELECT-OPTIONS:
S_WERKS FOR MARC-WERKS DEFAULT '1000' NO INTERVALS MEMORY ID WRK,
S_MATNR FOR MARA-MATNR MEMORY ID MAT,
S_MATKL FOR MARA-MATKL,
S_MTART FOR MARA-MTART,
S_EKGRP FOR MARC-EKGRP,
S_DISMM FOR MARC-DISMM,
S_BESKZ FOR MARC-BESKZ,
S_VKORG FOR MVKE-VKORG.
SELECTION-SCREEN : END OF BLOCK BLK1.
SELECTION-SCREEN: BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
PARAMETERS: P_SALES AS CHECKBOX, "按销售视图查询
P_CKST AS CHECKBOX, "仓库视图
P_DOWN AS CHECKBOX. "下载到TXT文本文件
SELECTION-SCREEN : END OF BLOCK BLK2.
*----------------------------------------------------------------------*
* INITIALIZATION *
*----------------------------------------------------------------------*
INITIALIZATION.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
* LOOP AT SCREEN.
* IF SCREEN-NAME = 'S_CRTP'.
* SCREEN-ACTIVE = '0'.
* ENDIF.
* MODIFY SCREEN.
* ENDLOOP.
*----------------------------------------------------------------------*
* AT LINE-SELECTION *
*----------------------------------------------------------------------*
AT LINE-SELECTION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PFILE.
PERFORM FRM_INPUT_HELP CHANGING P_PFILE.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM FRM_CHECK_AUTHORITY.
IF P_DOWN = 'X'.
PERFORM FRM_GET_DATA.
PERFORM FRM_EXPORT_DATA. "导出数据
ELSE.
PERFORM FRM_GET_DATA.
PERFORM SUB_SHOW_ALV.
ENDIF.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
METHODS HANDLE_MODIFY
FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID
IMPORTING E_MODIFIED ET_GOOD_CELLS.
ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
METHOD HANDLE_MODIFY.
* DATA STBL TYPE LVC_S_STBL.
* "回车事件添加程序
* STBL-ROW = 'X'." 基于行的稳定刷新
* STBL-COL = 'X'." 基于列稳定刷新
* CALL METHOD REF_GRID->REFRESH_TABLE_DISPLAY
* EXPORTING
* IS_STABLE = STBL.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
DATA GT_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER .
*&---------------------------------------------------------------------*
*& Form FRM_INPUT_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_P_FILE text
*----------------------------------------------------------------------*
FORM FRM_INPUT_HELP CHANGING P_O_FILE.
DATA:
LTD_FILETABLE TYPE FILETABLE,
LTH_FILETABLE TYPE LINE OF FILETABLE,
LW_RC TYPE I.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
CHANGING
FILE_TABLE = LTD_FILETABLE
RC = LW_RC
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_FILETABLE INTO LTH_FILETABLE INDEX 1.
P_O_FILE = LTH_FILETABLE-FILENAME.
ELSE.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
DISPLAY LIKE 'E'
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_EXPORT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_EXPORT_DATA.
DATA: W_FLAG TYPE C.
DATA: LENGTH TYPE I.
GV_FILENAME = P_PFILE.
PERFORM FRM_BUILD_FDCAT.
CL_DESCR ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA( GT_ITAB ).
LOOP AT CL_DESCR->COMPONENTS ASSIGNING <FS_COMP>.
W_FLAG = ''.
LOOP AT LB_FIELDCAT WHERE FIELDNAME = <FS_COMP>-NAME.
IT_FIELD-FIELD = LB_FIELDCAT-SCRTEXT_M.
APPEND IT_FIELD.
W_FLAG = 'X'.
ENDLOOP.
IF W_FLAG = ''.
IT_FIELD-FIELD = <FS_COMP>-NAME.
APPEND IT_FIELD.
ENDIF.
ENDLOOP.
IF GV_FILENAME IS NOT INITIAL.
*--将内表数据导出到 TXT
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
CONFIRM_OVERWRITE = 'X' "如果文件存在 弹出是否覆盖文件的对话框
WRITE_FIELD_SEPARATOR = 'X' "加入字段分隔符 TAB
FILENAME = GV_FILENAME "文件名 必须为 STRING 类型
FILETYPE = 'DAT'
IMPORTING
FILELENGTH = LENGTH
TABLES
DATA_TAB = GT_ITAB "内表
FIELDNAMES = IT_FIELD
EXCEPTIONS
FILE_WRITE_ERROR = 1
FILE_NOT_FOUND = 2.
ELSE.
MESSAGE S021(ZMM_MSG) WITH GV_WERKS DISPLAY LIKE 'E'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA.
DATA:LT_MLGN TYPE STANDARD TABLE OF MLGN,
LS_MLGN TYPE MLGN.
DATA: W_IDX TYPE I.
DATA: W_MAKTX LIKE MAKT-MAKTX,
W_MATNR LIKE MARC-MATNR,
W_LSORT LIKE LFA1-SORTL,
W_EKNAM LIKE T024-EKNAM,
W_WGBEZ LIKE T023T-WGBEZ.
DATA: W_OBJECT LIKE BAPI1003_KEY-OBJECT,
W_CLASS LIKE BAPI1003_KEY-CLASSNUM,
W_KLART LIKE BAPI1003_KEY-CLASSTYPE,
W_CLASS_STATUS LIKE BAPI1003_KEY-STATUS,
W_TABLE TYPE TABELLE.
DATA: LF_INT TYPE INT4,
TL_INT TYPE I.
DATA: T0 TYPE P DECIMALS 3,
TM TYPE I,
TM1 TYPE I,
L_TIME_TOTAL TYPE P DECIMALS 3,
L_TIME_OFF TYPE P DECIMALS 3.
*订单长文本
DATA:NAME LIKE THEAD-TDNAME.
DATA:IT_LINES LIKE TABLE OF TLINE WITH HEADER LINE.
DATA:HEADER LIKE THEAD.
CLEAR: GT_ITAB[],GS_ITAB,GB_ITAB[].
SELECT A~MATNR B~MTART B~BISMT B~MEINS B~MATKL B~EXTWG B~BRGEW B~GEWEI B~NTGEW
B~VOLUM B~VOLEH A~WERKS A~EKGRP B~BSTME A~XCHPF A~MAABC A~KORDB A~USEQU A~QMATV
A~SSQSS B~QMPUR A~DISMM A~MINBE A~BSTRF A~DISPO A~DISLS A~BSTMI A~BSTFE A~MABST
A~BESKZ A~SOBSL A~KZECH A~RGEKZ A~DISGR A~LGPRO A~LGFSB A~KZKUP A~DZEIT A~PLIFZ
A~WEBAZ A~FHORI A~FXHOR A~EISBE A~STRGR A~MTVFP A~EPRIO A~ALTSL A~SBDKZ A~SAUFT
A~SFEPR A~FEVOR A~SFCPF A~KZAUS A~KAUSF A~AUSDT A~NFMAT A~UEETK A~UEETO B~MHDRZ
B~MHDHB A~LZEIH B~IPRKZ A~VRMOD A~VINT1 A~VINT2 A~MISKZ A~MATGR B~MAGRV B~TRAGR
A~LADGR B~SPART A~LOSGR A~AWSLS A~PRCTR A~NCOST A~MMSTA B~PSTAT A~KAUTB
INTO CORRESPONDING FIELDS OF TABLE GB_ITAB FROM MARC AS A
INNER JOIN MARA AS B ON A~MATNR = B~MATNR
WHERE A~MATNR IN S_MATNR AND A~WERKS IN S_WERKS AND A~EKGRP IN S_EKGRP
AND A~DISMM IN S_DISMM AND A~BESKZ IN S_BESKZ AND B~MATKL IN S_MATKL AND
B~MTART IN S_MTART.
DESCRIBE TABLE GB_ITAB LINES TL_INT.
IF GB_ITAB[] IS NOT INITIAL.
REFRESH LT_MLGN.
SELECT MATNR LGNUM LTKZA LTKZE LGBKZ FROM MLGN
INTO CORRESPONDING FIELDS OF TABLE LT_MLGN
FOR ALL ENTRIES IN GB_ITAB
WHERE MATNR = GB_ITAB-MATNR.
ENDIF.
LOOP AT GB_ITAB INTO GS_ITAB.
GET RUN TIME FIELD DATA(T1).
CLEAR: W_EKNAM,W_LSORT,W_MAKTX,W_WGBEZ,W_MATNR.
W_MATNR = GS_ITAB-MATNR.
SELECT SINGLE MAKTX INTO GS_ITAB-MAKTX FROM MAKT
WHERE MATNR = W_MATNR AND SPRAS = '1'.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
INPUT = GS_ITAB-MATNR "物料号
IMPORTING
OUTPUT = GS_ITAB-MATNR
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
SELECT SINGLE WGBEZ INTO GS_ITAB-WGBEZ FROM T023T "物料组描述
WHERE MATKL = GS_ITAB-MATKL.
SELECT SINGLE EKNAM INTO GS_ITAB-EKNAM FROM T024 "采购组描述
WHERE EKGRP = GS_ITAB-EKGRP.
"变式分类 300
SELECT SINGLE C~CLASS INTO GS_ITAB-CL_VARIANT FROM INOB AS A
INNER JOIN KSSK AS B ON A~CUOBJ = B~OBJEK AND A~KLART = B~KLART
INNER JOIN KLAH AS C ON C~CLINT = B~CLINT
WHERE A~OBJEK = W_MATNR AND A~KLART = '300' AND A~OBTAB = 'MARA'.
"批次分类 022
SELECT SINGLE C~CLASS INTO GS_ITAB-CL_BATCH FROM INOB AS A
INNER JOIN KSSK AS B ON A~CUOBJ = B~OBJEK AND A~KLART = B~KLART
INNER JOIN KLAH AS C ON C~CLINT = B~CLINT
WHERE A~OBJEK = W_MATNR AND A~KLART = '022' AND A~OBTAB = 'MARA'.
"物料分类 001
SELECT SINGLE A~CLASS INTO GS_ITAB-CL_MATNR FROM KLAH AS A
INNER JOIN KSSK AS B ON A~CLINT = B~CLINT AND A~KLART = B~KLART
WHERE B~OBJEK = W_MATNR AND B~KLART = '001'.
"维护状态
IF GS_ITAB-PSTAT CP '*K*'.
GS_ITAB-XEIK1 = 'X'. "基本数据视图
ENDIF.
IF GS_ITAB-PSTAT CP '*E*'.
GS_ITAB-XEIE1 = 'X'. "采购视图
ENDIF.
IF GS_ITAB-PSTAT CP '*D*'.
GS_ITAB-XEID1 = 'X'. "物料需求计划(MRP)视图
ENDIF.
IF GS_ITAB-PSTAT CP '*L*'.
GS_ITAB-XEIL1 = 'X'. "存储视图
ENDIF.
IF GS_ITAB-PSTAT CP '*A*'.
GS_ITAB-XEIA1 = 'X'. "工作计划视图
ENDIF.
IF GS_ITAB-PSTAT CP '*V*'.
GS_ITAB-XEIV1 = 'X'. "销售视图
ENDIF.
IF GS_ITAB-PSTAT CP '*Q*'.
GS_ITAB-XEIQ1 = 'X'. "质量管理视图
ENDIF.
IF GS_ITAB-PSTAT CP '*B*'.
GS_ITAB-XEIB1 = 'X'. "会计视图
ENDIF.
IF GS_ITAB-PSTAT CP '*G*'.
GS_ITAB-XEIG1 = 'X'. "成本视图
ENDIF.
IF GS_ITAB-PSTAT CP '*S*'.
GS_ITAB-XEIC1 = 'X'. "仓库视图
ENDIF.
*物料长文本获取
FREE IT_LINES.
NAME = W_MATNR.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'GRUN'
LANGUAGE = SY-LANGU
NAME = NAME
OBJECT = 'MATERIAL'
IMPORTING
HEADER = HEADER
TABLES
LINES = IT_LINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
LOOP AT IT_LINES.
CONCATENATE GS_ITAB-MAKTX_L IT_LINES-TDLINE INTO GS_ITAB-MAKTX_L.
* EXIT.
ENDLOOP.
CONDENSE GS_ITAB-MAKTX_L NO-GAPS.
*价格确定
SELECT SINGLE MLAST FROM CKMLHD INTO GS_ITAB-MLAST WHERE MATNR = W_MATNR AND BWKEY = GS_ITAB-WERKS.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF GT_MBEW FROM MBEW
WHERE MATNR = W_MATNR AND BWKEY = S_WERKS+3(4).
GS_ITAB-BWTTY = GT_MBEW-BWTTY. "评估类别
GS_ITAB-BKLAS = GT_MBEW-BKLAS. "评估分类
GS_ITAB-VPRSV = GT_MBEW-VPRSV. "价格控制
GS_ITAB-VERPR = GT_MBEW-VERPR. "移动平均价
GS_ITAB-STPRS = GT_MBEW-STPRS. "标准价
GS_ITAB-PEINH = GT_MBEW-PEINH. "价格单位
GS_ITAB-HRKFT = GT_MBEW-HRKFT. "原始组
GS_ITAB-KOSGR = GT_MBEW-KOSGR. "间接费分组
GS_ITAB-EKALR = GT_MBEW-EKALR. "用QS的成本估算
GS_ITAB-HKMAT = GT_MBEW-HKMAT. "物料来源
GS_ITAB-ZPLP1 = GT_MBEW-ZPLP1. "计划价格1
GS_ITAB-ZPLD1 = GT_MBEW-ZPLD1. "计划价格日期1
GS_ITAB-ZPLP2 = GT_MBEW-ZPLP2. "计划价格2
GS_ITAB-ZPLD2 = GT_MBEW-ZPLD2. "计划价格日期2
"显示销售视图数据
IF P_SALES = 'X'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_MVKE FROM MVKE
WHERE VKORG IN S_VKORG AND MATNR = W_MATNR.
LOOP AT GT_MVKE.
GS_ITAB-DWERK = GT_MVKE-DWERK. "交货工厂
GS_ITAB-VRKME = GT_MVKE-VRKME. "销售单位
GS_ITAB-KTGRM = GT_MVKE-KTGRM. "科目设置组
GS_ITAB-MTPOS = GT_MVKE-MTPOS. "项目类别组
GS_ITAB-VKORG = GT_MVKE-VKORG. "销售组织
GS_ITAB-VTWEG = GT_MVKE-VTWEG. "分销渠道
GS_ITAB-VERSG = GT_MVKE-VERSG. "物料统计组
* *************** 20170427
****税分类 税收类别
DATA:LV_LAND1 TYPE T001W-LAND1.
CLEAR LV_LAND1.
SELECT SINGLE LAND1 FROM T001W INTO LV_LAND1 WHERE WERKS = GS_ITAB-DWERK.
SELECT SINGLE TAXM1 FROM MLAN INTO GS_ITAB-TAXKM WHERE MATNR = W_MATNR AND ALAND = LV_LAND1.
SELECT SINGLE TATYP FROM TSTL INTO GS_ITAB-TATYP WHERE TALND = LV_LAND1.
IF P_CKST = 'X'.
CLEAR LS_MLGN.
READ TABLE LT_MLGN INTO LS_MLGN WITH KEY MATNR = W_MATNR.
IF SY-SUBRC = 0.
LOOP AT LT_MLGN INTO LS_MLGN WHERE MATNR = W_MATNR.
GS_ITAB-LGNUM = LS_MLGN-LGNUM.
GS_ITAB-LTKZA = LS_MLGN-LTKZA.
GS_ITAB-LTKZE = LS_MLGN-LTKZE.
GS_ITAB-LGBKZ = LS_MLGN-LGBKZ.
APPEND GS_ITAB TO GT_ITAB.
ENDLOOP.
ELSE.
APPEND GS_ITAB TO GT_ITAB.
ENDIF.
ELSE.
APPEND GS_ITAB TO GT_ITAB.
ENDIF.
* ************20170427
ENDLOOP.
IF GT_MVKE[] IS INITIAL.
IF P_CKST = 'X'.
CLEAR LS_MLGN.
READ TABLE LT_MLGN INTO LS_MLGN WITH KEY MATNR = W_MATNR.
IF SY-SUBRC = 0.
LOOP AT LT_MLGN INTO LS_MLGN WHERE MATNR = W_MATNR.
GS_ITAB-LGNUM = LS_MLGN-LGNUM.
GS_ITAB-LTKZA = LS_MLGN-LTKZA.
GS_ITAB-LTKZE = LS_MLGN-LTKZE.
GS_ITAB-LGBKZ = LS_MLGN-LGBKZ.
APPEND GS_ITAB TO GT_ITAB.
ENDLOOP.
ELSE.
APPEND GS_ITAB TO GT_ITAB.
ENDIF.
ELSE.
APPEND GS_ITAB TO GT_ITAB.
ENDIF.
ENDIF.
ELSE.
IF P_CKST = 'X'.
CLEAR LS_MLGN.
READ TABLE LT_MLGN INTO LS_MLGN WITH KEY MATNR = W_MATNR.
IF SY-SUBRC = 0.
LOOP AT LT_MLGN INTO LS_MLGN WHERE MATNR = W_MATNR.
GS_ITAB-LGNUM = LS_MLGN-LGNUM.
GS_ITAB-LTKZA = LS_MLGN-LTKZA.
GS_ITAB-LTKZE = LS_MLGN-LTKZE.
GS_ITAB-LGBKZ = LS_MLGN-LGBKZ.
APPEND GS_ITAB TO GT_ITAB.
ENDLOOP.
ELSE.
APPEND GS_ITAB TO GT_ITAB.
ENDIF.
ELSE.
APPEND GS_ITAB TO GT_ITAB.
ENDIF.
ENDIF.
CLEAR: GS_ITAB.
GET RUN TIME FIELD DATA(T2).
T0 = ( T2 - T1 ) / 500000 .
TM1 = ( TL_INT - LF_INT ) * T0 .
LF_INT = LF_INT + 1.
IF TM1 <> TM.
TM = TM1.
PERFORM SHOW_PROGRESSBAR USING LF_INT TL_INT TM.
ENDIF.
ENDLOOP.
SORT GT_ITAB BY MATNR VKORG VTWEG ASCENDING.
ENDFORM. "FRM_GET_DATA
*&---------------------------------------------------------------------*
*& Form FRM_PROCESS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_PROCESS_DATA.
ENDFORM. " FRM_PROCESS_DATA
*&---------------------------------------------------------------------*
*& Form FRM_BUILD_FDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_BUILD_FDCAT .
REFRESH: LT_FIELDCAT.
PERFORM FRM_ALV_FIELDCAT USING: 'WERKS' '工厂' '' '5' ,
'VKORG' '销售组织' '' '5' ,
'VTWEG' '分销渠道' '' '3' ,
"基本视图
'MATNR' '物料号' '' '8' ,
'MAKTX' '物料描述' '' '35' ,
'MAKTX_L' '物料描述(长文本)' '' '35' ,
'MATKL' '物料组' '' '5' ,
'WGBEZ' '物料组描述' '' '10' ,
'MTART' '物料类型' '' '5' ,
'BISMT' 'UL号' '' '10' ,
'EXTWG' '外部物料组' '' '5' ,
'MEINS' '基本计量单位' '' '3' ,
'BRGEW' '毛重' '' '5' ,
'GEWEI' '重量单位' '' '3' ,
'NTGEW' '净重' '' '5' ,
'VOLUM' '体积' '' '5' ,
'VOLEH' '体积单位' '' '3' ,
'CL_VARIANT' '变式分类' '' '' ,
'CL_BATCH' '批次分类' '' '' ,
'CL_MATNR' '物料分类' '' '' ,
'XEIK1' '基本数据视图' '' '2' ,
'XEIE1' '采购视图' '' '2' ,
'XEID1' '物料需求计划' '' '2' ,
'XEIL1' '存储视图' '' '2' ,
'XEIA1' '工作计划视图' '' '2' ,
'XEIV1' '销售视图' '' '2' ,
'XEIQ1' '质量管理视图' '' '2' ,
'XEIB1' '会计视图' '' '2' ,
'XEIG1' '成本视图' '' '2' ,
'XEIC1' '仓库视图' '' '2' ,
"仓库视图
'LGNUM' '仓库号' '' '4' ,
'LTKZA' '库存出库' '' '4' ,
'LTKZE' '库存入库' '' '4' ,
'LGBKZ' '仓库区标识' '' '4' ,
"采购视图
'EKGRP' '采购组' '' '4' ,
'EKNAM' '采购组的描述' '' '10' ,
'MAABC' 'ABC标识' '' '2' ,
'XCHPF' '批次管理' '' '2' ,
'KAUTB' '自动建立采购' '' '2' ,
'KORDB' '源清单' '' '2' ,
'USEQU' '配额安排' '' '2' ,
'PO_TEXT' '采购文本' '' '10' ,
"质理视图
'QMATV' '检验设置' '' '2' ,
'SSQSS' 'QM控制码' '' '4' ,
'QMPUR' '采购激活' '' '2' ,
"MRP视图
'DISMM' 'MRP 类型' '' '3' ,
'MINBE' '重订货点' '' '3' ,
'BSTRF' '舍入值' '' '5' ,
'DISPO' 'MRP控制者' '' '4' ,
'DISLS' '批量' '' '3' ,
'BSTMI' '最小批量' '' '5' ,
'BSTFE' '固定批量大小' '' '5' ,
'MABST' '最大库存水平' '' '5' ,
'BESKZ' '采购类型' '' '2' ,
'SOBSL' '特殊采购类' '' '3' ,
'KZECH' '在生产/处理订单中批量输入的确定' '' '3' ,
'RGEKZ' '反冲' '' '2' ,
'DISGR' 'MRP组' '' '3' ,
'LGPRO' '生产库存地点' '' '5' ,
'LGFSB' '外部采购仓储地点' '' '5' ,
'KZKUP' '物料是联产品' '' '2' ,
'DZEIT' '自制生产' '' '2' ,
'PLIFZ' '计划交货时间' '' '2' ,
'WEBAZ' '收货处理时间' '' '2' ,
'FHORI' '计划边际码' '' '4' ,
'FXHOR' '计划时界' '' '2' ,
'EISBE' '安全库存' '' '5' ,
'STRGR' '策略组' '' '3' ,
'MTVFP' '可用性检查' '' '3' ,
'EPRIO' '库存确定组' '' '4' ,
'ALTSL' '选择方法' '' '2' ,
'SBDKZ' '独立/集中' '' '2' ,
'SAUFT' '重复制造' '' '2' ,
'SFEPR' '重复制造参数' '' '2' ,
'FEVOR' '生产调度员' '' '4' ,
'SFCPF' '生产计划参数' '' '2' ,
'KZAUS' '非连续标识' '' '2' ,
'KAUSF' '部件废品率%' '' '3' ,
'AUSDT' '有效期' '' '8' ,
'NFMAT' '后续物料' '' '2' ,
'UEETK' '无限制过量交货' '' '2' ,
'UEETO' '过度交货允差' '' '4' ,
'MHDRZ' '最小剩余货架寿命' '' '3' ,
'MHDHB' '总货架寿命' '' '3' ,
'LZEIH' '时间单位' '' '2' ,
'IPRKZ' 'SLED的期间标识' '' '2' ,
'VRMOD' '消耗模式' '' '3' ,
'VINT1' '逆向消耗期间' '' '4' ,
'VINT2' '向前消耗期间' '' '4' ,
'MISKZ' '综合MRP' '' '2' ,
'MATGR' '旧物料号' '' '10' ,
"销售视图
'MAGRV' '包装组' '' '3' ,
'DWERK' '交货工厂' '' '5' ,
'TRAGR' '运输组' '' '4' ,
'LADGR' '装载组' '' '4' ,
'VERSG' '物料统计组' '' '4' ,
'SPART' '部门(生产线) 产品组' '' '3' ,
'TATYP' '税种类' '' '2' ,
'TAXKM' '物料的税分类' '' '2' ,
'VRKME' '销售单位' '' '3' ,
'KTGRM' '科目设置组' '' '3' ,
'MTPOS' '项目类别组' '' '4' ,
"会计和成本视图
'BWTTY' '评估类别' '' '2' ,
'BKLAS' '评估分类' '' '2' ,
'VPRSV' '价格控制' '' '2' ,
'MLAST' '价格确定' '' '2' ,
'VERPR' '移动平均价' '' '5' ,
'STPRS' '标准价' '' '5' ,
'PEINH' '价格单位' '' '5' ,
'LOSGR' '成本核算批量' '' '5' ,
'HRKFT' '原始组' '' '3' ,
'KOSGR' '间接费分组' '' '3' ,
'AWSLS' '差异码' '' '5' ,
'PRCTR' '利润中心' '' '6' ,
'NCOST' '无成本核算' '' '2' ,
'EKALR' '用QS的成本估算' '' '2' ,
'HKMAT' '物料来源' '' '2' ,
'MMSTA' '特定工厂的物料状态' '' '3' ,
'ZPLP1' '计划价格1' '' '5' ,
'ZPLD1' '计划价格日期1' '' '10' ,
'ZPLP2' '计划价格2' '' '5' ,
'ZPLD2' '计划价格日期2' '' '10' .
ENDFORM. " FRM_BUILD_FDCAT
*&---------------------------------------------------------------------*
*& Form FRM_ALV_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FRM_ALV_FIELDCAT
USING PR_FNAME
PR_SCRTEXT_M
PR_NO_ZERO
PR_OUTLEN.
CLEAR:LS_FIELDCAT.
GV_POS = GV_POS + 1.
LS_FIELDCAT-COL_POS = GV_POS.
LS_FIELDCAT-FIELDNAME = PR_FNAME. "字段名
LS_FIELDCAT-SCRTEXT_M = PR_SCRTEXT_M. "字段中描述
LS_FIELDCAT-NO_ZERO = PR_NO_ZERO. "数值为0 不显示
LS_FIELDCAT-OUTPUTLEN = PR_OUTLEN. "列的字符宽度
APPEND LS_FIELDCAT TO LT_FIELDCAT.
APPEND LS_FIELDCAT TO LB_FIELDCAT.
ENDFORM. " FRM_ALV_FIELDCAT
*&---------------------------------------------------------------------*
*& Form SUB_SHOW_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SUB_SHOW_ALV .
PERFORM FRM_BUILD_FDCAT.
GT_EVENT-NAME = 'CALLER_EXIT'. "slis_ev_caller_exit_at_start事件
GT_EVENT-FORM = 'FM_BUTTON'.
APPEND GT_EVENT .
************************************************************
*为ALV结构赋值
"LS_LAYOUT-CWIDTH_OPT = 'X'. "优化宽度
LS_LAYOUT-ZEBRA = 'X'. "斑马线输出
LS_LAYOUT-SEL_MODE = 'A'. "单元格的选择,可以多选单元格 多行,多列,任何单元格多选 用户可以使用最左边的选择按钮来选择多行
LS_LAYOUT-STYLEFNAME = 'STYLE'.
************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = LS_LAYOUT
IT_FIELDCAT_LVC = LT_FIELDCAT
I_CALLBACK_USER_COMMAND = 'MYCOMMAND' "alv 交互(双击、回车)事件
I_CALLBACK_PF_STATUS_SET = 'MYSTATUS' "alv 上加自定义按纽
I_CALLBACK_HTML_TOP_OF_PAGE = 'ALV_TOP_OF_PAGE' "自定义ALV表头
I_SAVE = 'U'
IT_EVENTS = GT_EVENT[]
I_HTML_HEIGHT_TOP = 12
TABLES
T_OUTTAB = GT_ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. " SUB_SHOW_ALV
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form MYSTATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EXTAB text
*----------------------------------------------------------------------*
FORM MYSTATUS USING
RT_EXTAB TYPE SLIS_T_EXTAB."定义GUI状态必须写
DATA: BEGIN OF TAB OCCURS 0,
FCODE LIKE RSMPE-FUNC,
END OF TAB.
* 设置隐藏工具栏按钮Function Key
SET PF-STATUS 'MYSTATUS1' EXCLUDING TAB IMMEDIATELY.
ENDFORM. "MYSTATUS
*&---------------------------------------------------------------------*
*& Form ALV_TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->CL_DD text
* -->p2 text
*----------------------------------------------------------------------*
FORM ALV_TOP_OF_PAGE USING CL_DD TYPE REF TO CL_DD_DOCUMENT.
DATA: M_P TYPE I.
DATA: W_LINE TYPE STRING.
DATA: M_BUFF TYPE STRING.
*表头其实完全可以是一个html文件,自己使用html语言进行格式控制
M_BUFF = '<html>'.
CALL METHOD CL_DD->HTML_INSERT
EXPORTING
CONTENTS = M_BUFF
CHANGING
POSITION = M_P.
M_BUFF = '<center><B>物料主数据报表</B></center>'.
CALL METHOD CL_DD->HTML_INSERT
EXPORTING
CONTENTS = M_BUFF
CHANGING
POSITION = M_P.
DESCRIBE TABLE GT_ITAB LINES DATA(WT_LINE).
W_LINE = WT_LINE.
CONCATENATE '<table width="1200"><tr><td>操作日期:' SY-DATUM
' 显示条数:' W_LINE
' </td><td><div align="right">操作用户:'
SY-UNAME'</div></td></tr></table>' INTO M_BUFF.
CALL METHOD CL_DD->HTML_INSERT
EXPORTING
CONTENTS = M_BUFF
CHANGING
POSITION = M_P.
ENDFORM. "ALV_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form MYCOMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM MYCOMMAND
USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: L_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: W_LGORT TYPE MSEG-LGORT.
DATA: W_ERR_CELLS TYPE LVC_T_MODI.
DATA: STBL TYPE LVC_S_STBL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = L_GRID.
CALL METHOD L_GRID->CHECK_CHANGED_DATA.
CASE R_UCOMM.
WHEN 'REFRESH'.
PERFORM FRM_GET_DATA. "刷新
WHEN '&IC1'.
READ TABLE GT_ITAB INTO GS_ITAB INDEX RS_SELFIELD-TABINDEX.
CASE RS_SELFIELD-FIELDNAME.
WHEN 'MATNR'.
IF GS_ITAB-MATNR IS NOT INITIAL.
SET PARAMETER ID : 'MAT' FIELD GS_ITAB-MATNR.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
"稳定刷新
STBL-ROW = 'X'." 基于行的稳定刷新
STBL-COL = 'X'." 基于列稳定刷新
CALL METHOD L_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = STBL.
ENDFORM. "MYCOMMAND
FORM SHOW_PROGRESSBAR USING UPCT TOTAL TM TYPE I.
DATA: FBAR TYPE C LENGTH 13,
FMSG TYPE C LENGTH 150.
CONSTANTS:
PERCENT1 TYPE C VALUE '▏',
PERCENT2 TYPE C VALUE '▎',
PERCENT3 TYPE C VALUE '▍',
PERCENT4 TYPE C VALUE '▌',
PERCENT5 TYPE C VALUE '▋',
PERCENT6 TYPE C VALUE '▊',
PERCENT7 TYPE C VALUE '▉',
PERCENT8 TYPE C VALUE '█'.
DATA:
FMOD TYPE N,
FTIM TYPE I,
FCNT TYPE P DECIMALS 3,
FFIELD TYPE C LENGTH 10,
FIDX TYPE C LENGTH 3,
FTOAL TYPE C LENGTH 5,
FCUR TYPE C LENGTH 5,
FTM TYPE C LENGTH 8.
FIELD-SYMBOLS: <FS> TYPE C.
FCNT = ( UPCT / TOTAL ) * 100.
FTIM = FCNT DIV 8.
FMOD = FCNT MOD 8.
CLEAR: FBAR.
DO FTIM TIMES.
CONCATENATE FBAR PERCENT8 INTO FBAR.
ENDDO.
IF FMOD NE 0.
CONCATENATE 'percent' FMOD INTO FFIELD.
ASSIGN (FFIELD) TO <FS>.
CONCATENATE FBAR <FS> INTO FBAR.
ENDIF.
FIDX = ( UPCT / TOTAL ) * 100.
FTOAL = TOTAL.
FCUR = UPCT.
FTM = TM.
CONCATENATE '总条数: ' FTOAL ' 完成条数: '
FCUR '剩余时间: ' FTM 'S 百分比进度: ' FIDX '% ' FBAR
INTO FMSG.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = TOTAL
TEXT = FMSG.
.ENDFORM. "show_progressb
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form fm_button
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->E_GRID text
*----------------------------------------------------------------------*
FORM FM_BUTTON USING E_GRID TYPE SLIS_DATA_CALLER_EXIT.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = REF_GRID.
* 设置enter事件
CALL METHOD REF_GRID->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER
EXCEPTIONS
ERROR = 1
OTHERS = 2.
CREATE OBJECT GT_EVENT_RECEIVER.
SET HANDLER GT_EVENT_RECEIVER->HANDLE_MODIFY FOR REF_GRID.
ENDFORM. "FM_BUTTON
*&---------------------------------------------------------------------*
*& Form FRM_CHECK_AUTHORITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_CHECK_AUTHORITY .
DATA: LT_WERKS TYPE STANDARD TABLE OF T_WERKS,
LS_WERKS TYPE T_WERKS.
AUTHORITY-CHECK OBJECT 'M_BEST_WRK' ID 'WERKS' FIELD GV_WERKS.
IF SY-SUBRC <> 0.
MESSAGE S001(ZMM_MSG) WITH GV_WERKS DISPLAY LIKE 'E'.
STOP.
ENDIF.
ENDFORM. " FRM_CHECK_AUTHORITY----------------------*REPORT ZMMR004.
SAP-MM物料主数据报表
最新推荐文章于 2024-07-26 13:52:53 发布