开发一个简单的物料明细查询表

本文详细介绍了在SAP ABAP中创建一个名为ZMMDMR001的程序,用于根据用户选择的单据类型(9、H、J)展示不同的物料信息。程序包括选择屏幕设计,如类别种类、申请单号等筛选选项,并通过内表和选择条件获取数据。数据获取部分涉及多个表的连接和过滤,如ZWLFLH、ZMDMITEM01等,以及数据转换和显示。最后,使用ALV网格显示数据,展示物料编号、物料描述、审批状态等关键字段。
摘要由CSDN通过智能技术生成

根据开发逻辑说明文档,知道我们需要设计什么样子的选择屏幕。如下:

 其中单据类型有三种选择:分别是9、H、J三种,当选择9 物料编码禁用时显示相应的数据:

 当选择H 物料编码禁用及禁用系统时显示相应数据:

 主要过程:

  1. 新建一个程序,命名‘ZMMDMR001’,标题‘物料明细查询表’,类型选择‘可执行程序’,保存到‘本地对象’;
  2. 首先声明表,这些表是我们设计表以及定义类型时需要参考的表;
  3. 定义类型;
  4. 定义内表,用于存放数据;
  5. 定义选择屏幕;
  6. 初始化屏幕;
  7. 开始选择;
  8. 设计逻辑;
  9. 执行得出结果。

建好程序之后。

1.声明需要用的表和类型:

TABLES MARA,ZWLFLH,KLAH,MARC,MAKT,ZMDMITEM03,CDHDR,MVKE,T023,ZTDJLX,ZMMUPDAPPLYITEM.(以Z开头的是我使用的自建表,以此理解
TYPES BEGIN OF TY_OUTPUT,
          KLART        TYPE KLAH-KLART,     "类别种类
          ZORDER       TYPE ZWLFLH-ZORDER,  "申请单号
          ZDJLX        TYPE ZWLFLH-ZDJLX,   "单据类型
          ZMX1         TYPE ZWLFLH-ZMX1,    "单据类型描述
          ZWLLB        TYPE ZWLFLH-ZWLLB,   "物料类型
          ZMX2         TYPE ZWLFLH-ZMX2,    "物料类型描述
          BTYPE        TYPE ZWLFLH-BTYPE,            "业务类别
          ZAPPLYER     TYPE ZWLFLH-ZAPPLYER,         "申请人ID
          TECHDESC     TYPE USR21-TECHDESC,          "申请人姓名
          ZAPPLYDEPT   TYPE ZWLFLH-ZAPPLYDEPT,     "申请部门
          ZAPPLYDATE   TYPE ZWLFLH-ZAPPLYDATE,      "申请日期
          ZDATE        TYPE ZWLFLH-ZDATE,         "提交日期
          ZAPPLYREASON TYPE ZWLFLH-ZAPPLYREASON,  "申请原因
          ZSTATUS      TYPE ZWLFLH-ZSTATUS,       "审批状态
          ZMX3         TYPE ZWLFLH-ZMX3,          "审批状态描述
          MATNR        TYPE ZMDMITEM01-MATNR"物料
          MAKTX        TYPE MAKT-MAKTX,       "物料简称
          WERKS        TYPE ZMDMITEM01-WERKS"工厂
          NAME1        TYPE ZMDMITEM01-NAME1"工厂名称
          MMSTA        TYPE ZMDMITEM01-MMSTA"特定工厂的跨物料状态
          MSTAE        TYPE ZMDMITEM01-MSTAE"跨工厂的跨物料状态
          ZNO          TYPE ZMDMITEM01-ZNO"行项目
          ZAPPNAM      TYPE ZWLFLH-ZAPPNAM,     "审批人
          ZSPXX        TYPE ZWLFLH-ZSPXX,         "审批消息
          ZJYXT        TYPE ZWLFLH-ZJYXT,         "禁用系统
          ZJYXTXT      TYPE ZWLFLH-ZJYXTXT,     "禁用系统描述
          ZSFCRM       TYPE ZWLFLH-ZSFCRM,       "是否传输CRM
          MATKL        TYPE MARA-MATKL,       "物料组
          WGBEZ        TYPE T023T-WGBEZ,       "物料组描述
          VALUE_NEW    TYPE ZMDMITEM03-VALUE_NEW,  "新值==特定工厂店物料新状态
          VALUE_OLD    TYPE ZMDMITEM03-VALUE_OLD,  "旧值==特定工厂的物料旧状态
          VALUE_NEW2   TYPE ZMDMITEM03-VALUE_NEW2,   "跨工厂的跨物料新状态
          VALUE_OLD2   TYPE ZMDMITEM03-VALUE_OLD2,   "跨工厂的跨物料旧状态
          VMSTD_OLD    TYPE ZMDMITEM04-VMSTD_OLD,  "旧状态
          VMSTD_NEW    TYPE ZMDMITEM04-VMSTD_NEW,  "新状态
          MSTAE_NEW    TYPE ZMDMITEM03-MSTAE_NEW,
          MSTAE_OLD    TYPE ZMDMITEM03-MSTAE_OLD,
          USERNAME     TYPE CDHDR-USERNAME,   "用户名
          UDATE        TYPE CDHDR-UDATE,      "日期
          VKORG        TYPE MVKE-VKORG,       "销售组织
          VTWEG        TYPE MVKE-VTWEG,       "分销渠道
          DWERK        TYPE ZMDMITEM02-DWERK,  "交货工厂
          VMSTA        TYPE ZMDMITEM02-VMSTA,  "指定分销链的状态
          VMSTD        TYPE ZMDMITEM02-VMSTD,  "有效的日期
          ZMMCODE      TYPE ZMMUPDAPPLYITEM-ZMMCODE,    "9的物料编码
          ZMMSNAME     TYPE ZMMUPDAPPLYITEM-ZMMSNAME,  "9的物料简称
          ZWERKS       TYPE ZMMUPDAPPLYITEM-WERKS,       "9的工厂
          ZNAME1       TYPE ZMMUPDAPPLYITEM-NAME1,    "9的工厂名称
          ZZDATE       TYPE ZMMUPDAPPLYITEM-ZDATE,    "9的最近修改日期
          ZTIME        TYPE ZMMUPDAPPLYITEM-ZTIME,    "9的最近修改时间
        END OF TY_OUTPUT.
DATA GT_OUT TYPE TABLE OF TY_OUTPUT. "声明一个输出内表(存放显示数据
DATA GS_OUT TYPE TY_OUTPUT. "声明一个输出内表2

根据需求设计选择屏幕内容:

SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
              S_KLART FOR KLAH-KLART,     "类别种类
              S_ZORDER FOR ZWLFLH-ZORDER"申请单号
SELECT-OPTIONS:
              S_DJLX2 FOR ZTDJLX-ZDJLX1 NO INTERVALS NO-EXTENSION,"单选 且 没有下一步选择                  

S_MTART FOR MARA-MTART,     "物料类型
              S_MATNR FOR MARC-MATNR,     "物料
              S_MAKTX FOR MAKT-MAKTX,     "物料描述
              S_MATKL FOR MARA-MATKL,     "物料组
              S_WERKS FOR MARC-WERKS,     "工厂
              S_NEW   FOR ZMDMITEM03-VALUE_NEW,"新值==特定工厂的物料新状态1
              S_OLD   FOR ZMDMITEM03-VALUE_OLD,"旧值==特定工厂的物料旧状态1
              S_ZAPPL FOR ZWLFLH-ZAPPLYER,    "申请人ID
              S_ZAPDA FOR ZWLFLH-ZAPPLYDATE,  "创建日期
              S_ZDATE FOR ZWLFLH-ZDATE,        "提交日期
              S_UDATE FOR CDHDR-UDATE.    "日期
SELECTION-SCREEN END OF BLOCK BK1.

代码解释:首先定义一个模块BLOCK,在里面设计我们屏幕,前面的如S_KLART 是自建类别种类的变量,参考KLAH表中的KLART字段,逐次类推。其中,单据类型我们要求是从多选框里面必须选出一个,NO INTERVALS 限制只能输入一个单元(去上限),NO EXTENSION限制只能输入一行数据,PARAMEMTERS是定义一个单值,AS CHECKBOX设为单选勾选框。

开始编写程序执行入口STAR-OF-SELECTION…END-OF-SELECTION(当点击闹钟时开始执行):

因为我的单据类型是单选且必选,所以我首先需要判断用户选的的单据类型。此外,

START-OF-SELECTION.
  PERFORM SELECT_TYPE.  "选择单据类型
FORM SELECT_TYPE .
  IF S_DJLX2-LOW 'H'.
    PERFORM GETDATA_H.
    PERFORM DISPLAY_HH"表示未选checkbox 复选框的  销售组织
  ELSEIF S_DJLX2-LOW '9'.
    PERFORM GETDATA_9.
    PERFORM DISPLAY_9.
  ELSEIF S_DJLX2-LOW 'J'.
    PERFORM GETDATA_J.
    PERFORM DISPLAY_JJ"表示选择checkbox 复选框的  销售组织
  ENDIF.
ENDFORM.
END-OF-SELECTION.

代码解释:

通过PERFORM声明一个函数(SELECT_TYPE)用于设计选择单据类型,用条件选择进行判断,如果选择的类型是H则调用GETDATA_H获取数据,调用DISPLAY_H显示数据。单据类型9、H、J三种类型的读取方式显示方式都差不多,这里只说明其中一种:H。

获取数据:

FORM GETDATA_H .
    SELECT ZWLFLH~ZORDER,   "申请单号
         ZWLFLH~ZDJLX,    "单据类型
         ZWLFLH~ZMX1,     "单据类型描述
         ZWLFLH~ZWLLB,    "物料类型
         ZWLFLH~ZMX2,     "物料类型描述
         ZWLFLH~BTYPE,    "业务类别
         ZWLFLH~ZAPPLYER"申请人ID
         USR21~TECHDESC"申请人姓名
         ZWLFLH~ZAPPLYDEPT"申请部门
         ZWLFLH~ZAPPLYDATE,   "申请日期
         ZWLFLH~ZDATE,        "提交日期
         ZWLFLH~ZAPPLYREASON"申请原因
         ZWLFLH~ZSTATUS,      "审批状态
         ZWLFLH~ZMX3,        "审批状态描述
         ZWLFLH~ZAPPNAM,      "审批人
         ZWLFLH~ZSPXX,        "审批消息
         ZWLFLH~ZJYXT,        "禁用系统
         ZWLFLH~ZJYXTXT,      "禁用系统描述
         ZWLFLH~ZSFCRM,       "是否传输CRM
         ZMDMITEM01~ZNO,  "行项目
         ZMDMITEM01~MATNR,"物料编码
         ZMDMITEM01~MAKTX,"物料描述
         ZMDMITEM01~WERKS,"工厂
         ZMDMITEM01~NAME1,"工厂名称
         ZMDMITEM01~MMSTA,"特定工厂的跨物料状态
         ZMDMITEM01~MSTAE"跨工厂物料状态
    INTO CORRESPONDING FIELDS OF TABLE @GT_OUT
    FROM  ZWLFLH
    LEFT JOIN ZMDMITEM01 ON ZMDMITEM01~ZORDER ZWLFLH~ZORDER
    LEFT JOIN USR21 ON USR21~BNAME ZWLFLH~ZAPPLYER
    WHERE ZMDMITEM01~WERKS IN @S_WERKS
    AND ZWLFLH~ZDJLX 'H'
    AND ZWLFLH~ZORDER IN @S_ZORDER
    AND ZMDMITEM01~MATNR IN @S_MATNR
    AND ZWLFLH~ZWLLB IN @S_MTART
    AND ZWLFLH~ZAPPLYER IN @S_ZAPPL
    AND ZWLFLH~ZDATE IN @S_ZDATE
    AND ZWLFLH~ZAPPLYDATE IN @S_ZAPDA.
    SELECT MARA~MATNR,MARA~MATKL,T023T~WGBEZ INTO TABLE @DATA(LT_MATKL"临时表
    FROM MARA
    LEFT JOIN T023T ON MARA~MATKL T023T~MATKL AND T023T~SPRAS '1'  "中英文描述要把技术段SPARS 进行未转换赋值(‘1’代表中文)
    FOR ALL ENTRIES IN @GT_OUT WHERE MATNR @GT_OUT-MATNR.
    SORT LT_MATKL BY MATNR.
    LOOP AT GT_OUT INTO GS_OUT .
      READ TABLE LT_MATKL INTO DATA(LV_MATKLWITH KEY MATNR GS_OUT-MATNR BINARY SEARCH.    " 二分法
      IF SY-SUBRC 0.
        GS_OUT-MATKL LV_MATKL-MATKL.
        GS_OUT-WGBEZ LV_MATKL-WGBEZ.
      ENDIF.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
        EXPORTING
          INPUT  GS_OUT-MATNR
        IMPORTING
          OUTPUT GS_OUT-MATNR.
      MODIFY GT_OUT FROM GS_OUT.
      CLEAR:LV_MATKL.
    ENDLOOP.
    SORT GT_OUT BY ZORDER ZNO.     "默认按照ZODER(先)、ZNO(后)排序
  IF S_MATKL[] IS NOT INITIAL .
    DELETE GT_OUT WHERE MATKL NOT IN S_MATKL.
  ENDIF.
ENDFORM.

代码解释

我们需要获取的数据用SQL语句取出来,存放到我们先头定义的内表GT_OUT中通过INTO CORRESPONDING FIELD OF 定义表会自动显示在对应位置从主表ZWLFLH读取,关联表ZMDMITEM01、表USR21,循环条件包含响应定义选择屏幕的变量语句就背住就好,这里不做详细解释,下列代码额外说明

 

因为先头关联出来的表数据是没有物料组MATKL字段数据的所以需要通过现有的物料编号去与物料表(MARA关联,取出表MARA中的物料组(MATKL),再通过物料组(MATKL)关联表T023T,取出物料组描述字段WGBEZ存入临时表@DATA(LT_MATKL)中,这里取出的是存在在表GT_OUT中的物料号(MATNR的相关数据

SELECT MARA~MATNR,MARA~MATKL,T023T~WGBEZ INTO TABLE @DATA(LT_MATKL"临时表
    FROM MARA
    LEFT JOIN T023T ON MARA~MATKL T023T~MATKL AND T023T~SPRAS '1'  "中英文描述要把技术段SPARS 进行未转换赋值(‘1’代表中文)
    FOR ALL ENTRIES IN @GT_OUT WHERE MATNR @GT_OUT-MATNR.

再通过LOOP循环遍历LT_MATKL,把LT_MATKL中的数据通过物料号(MATNR取出存入临时表LV_MATKL中赋给表GS_OUT,最后通过MODIFY操作存入表GT_OUT

函数:CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT’是为了去除前导零如果把OUTPUT改成INPUT则是添加前导零。

显示数据:

FORM DISPLAY_H .
  DATA GT_FIELDCAT TYPE LVC_T_FCAT,
         GS_FIELDCAT TYPE LVC_S_FCAT,
         G_REPID     TYPE SY-REPID.
  DEFINE M_BUILD_FIELDCAT.     "添加显示字段信息
    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname &1.
    gs_fieldcat-scrtext_l &2.
    APPEND gs_fieldcat TO gt_fieldcat.
  END-OF-DEFINITION.
  CLEAR GT_FIELDCAT[].
  M_BUILD_FIELDCAT 'ZORDER'        '申请单号'.
  M_BUILD_FIELDCAT 'ZDJLX'         '单据类型'.
  M_BUILD_FIELDCAT 'ZMX1'          '单据类型描述'.
  M_BUILD_FIELDCAT 'ZWLLB'         '物料类型'.
  M_BUILD_FIELDCAT 'ZMX2'          '物料类型描述'.
  M_BUILD_FIELDCAT 'BTYPE'         '业务类别'.
  M_BUILD_FIELDCAT '     '              '业务类别描述'.
  M_BUILD_FIELDCAT 'ZAPPLYER'      '申请人ID'.
  M_BUILD_FIELDCAT 'TECHDESC'      '申请人姓名'.
  M_BUILD_FIELDCAT 'ZAPPLYDEPT'    '申请部门'.
  M_BUILD_FIELDCAT 'ZAPPLYDATE'    '申请日期'.
  M_BUILD_FIELDCAT 'ZDATE'         '提交日期'.
  M_BUILD_FIELDCAT 'ZAPPLYREASON'  '申请原因'.
  M_BUILD_FIELDCAT 'ZSTATUS'       '审批状态'.
  M_BUILD_FIELDCAT 'ZMX3'          '审批状态描述'.
  M_BUILD_FIELDCAT 'ZAPPNAM'       '审批人'.
  M_BUILD_FIELDCAT 'ZSPXX'         '审批消息'.
  M_BUILD_FIELDCAT 'ZJYXT'         '禁用系统'.
  M_BUILD_FIELDCAT 'ZJYXTXT'       '禁用系统描述'.
  M_BUILD_FIELDCAT 'ZSFCRM'        '是否传入CRM'.
  M_BUILD_FIELDCAT ''              '工厂状态'.
  M_BUILD_FIELDCAT 'ZNO'           '行项目'.
  M_BUILD_FIELDCAT 'MATNR'         '物料编号'.
  M_BUILD_FIELDCAT 'MAKTX'         '物料描述'.
  M_BUILD_FIELDCAT 'MATKL'         '物料组'.
  M_BUILD_FIELDCAT 'WGBEZ'         '物料组描述'.
  M_BUILD_FIELDCAT 'WERKS'         '工厂'.
  M_BUILD_FIELDCAT 'NAME1'         '工厂名称'.
  M_BUILD_FIELDCAT 'MMSTA'         '特定工厂的物料状态'.
  M_BUILD_FIELDCAT 'MSTAE'         '跨工厂物料状态'.
  G_REPID SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM G_REPID
      IT_FIELDCAT_LVC    GT_FIELDCAT
      I_DEFAULT          'X'
      I_GRID_TITLE       ''     "表格标题
    TABLES
      T_OUTTAB           GT_OUT   "输出
    EXCEPTIONS
      PROGRAM_ERROR      1
      OTHERS             2.

  IF SY-SUBRC <> 0.
  ENDIF.
ENDFORM.

代码解释:

首先要定义M_BUILD_FIELDCAT来显示添加字段信息,M_BUILD_FIELDCAT ‘ZORDER’ ‘申请单号,分别对应的是字段数据和表头信息这一部分主要注意T_OUTTAB 等于前面声明的输出内表其余的可以直接复制修改字段信息就可以,学习尚浅,目前我还解释不出来,要是有大佬能再评论区解释下的话真的非常感谢!

运行结果:

选择屏幕:

选择单据类型9  物料编码禁用:

 

 选择单据类型H 物料编码禁用及禁用系统:

 

选择单据类型J 物料编码解禁系统:

 

 

最后附上全部代码:

*&---------------------------------------------------------------------*
*& Report ZMMDMR001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZMMDMR001.

TABLES : MARA,ZWLFLH,KLAH,MARC,MAKT,ZMDMITEM03,CDHDR,MVKE,T023,ZTDJLX,ZMMUPDAPPLYITEM.

TYPES : BEGIN OF TY_OUTPUT,

          KLART        TYPE KLAH-KLART,     "类别种类
          ZORDER       TYPE ZWLFLH-ZORDER,  "申请单号
          ZDJLX        TYPE ZWLFLH-ZDJLX,   "单据类型
          ZMX1         TYPE ZWLFLH-ZMX1,    "单据类型描述
          ZWLLB        TYPE ZWLFLH-ZWLLB,   "物料类型
          ZMX2         TYPE ZWLFLH-ZMX2,    "物料类型描述
          BTYPE        TYPE ZWLFLH-BTYPE,            "业务类别
          ZAPPLYER     TYPE ZWLFLH-ZAPPLYER,         "申请人ID
          TECHDESC     TYPE USR21-TECHDESC,          "申请人姓名
          ZAPPLYDEPT   TYPE ZWLFLH-ZAPPLYDEPT,     "申请部门
          ZAPPLYDATE   TYPE ZWLFLH-ZAPPLYDATE,      "申请日期
          ZDATE        TYPE ZWLFLH-ZDATE,         "提交日期
          ZAPPLYREASON TYPE ZWLFLH-ZAPPLYREASON,  "申请原因
          ZSTATUS      TYPE ZWLFLH-ZSTATUS,       "审批状态
          ZMX3         TYPE ZWLFLH-ZMX3,          "审批状态描述
          MATNR        TYPE ZMDMITEM01-MATNR, "物料
          MAKTX        TYPE MAKT-MAKTX,       "物料简称
          WERKS        TYPE ZMDMITEM01-WERKS, "工厂
          NAME1        TYPE ZMDMITEM01-NAME1, "工厂名称
          MMSTA        TYPE ZMDMITEM01-MMSTA, "特定工厂的跨物料状态
          MSTAE        TYPE ZMDMITEM01-MSTAE, "跨工厂的跨物料状态
          ZNO          TYPE ZMDMITEM01-ZNO, "行项目
          ZAPPNAM      TYPE ZWLFLH-ZAPPNAM,     "审批人
          ZSPXX        TYPE ZWLFLH-ZSPXX,         "审批消息
          ZJYXT        TYPE ZWLFLH-ZJYXT,         "禁用系统
          ZJYXTXT      TYPE ZWLFLH-ZJYXTXT,     "禁用系统描述
          ZSFCRM       TYPE ZWLFLH-ZSFCRM,       "是否传输CRM
          MATKL        TYPE MARA-MATKL,       "物料组
          WGBEZ        TYPE T023T-WGBEZ,       "物料组描述
          VALUE_NEW    TYPE ZMDMITEM03-VALUE_NEW,  "新值==特定工厂店物料新状态
          VALUE_OLD    TYPE ZMDMITEM03-VALUE_OLD,  "旧值==特定工厂的物料旧状态
          VALUE_NEW2   TYPE ZMDMITEM03-VALUE_NEW2,   "跨工厂的跨物料新状态
          VALUE_OLD2   TYPE ZMDMITEM03-VALUE_OLD2,   "跨工厂的跨物料旧状态
          VMSTD_OLD    TYPE ZMDMITEM04-VMSTD_OLD,  "旧状态
          VMSTD_NEW    TYPE ZMDMITEM04-VMSTD_NEW,  "新状态
          MSTAE_NEW    TYPE ZMDMITEM03-MSTAE_NEW,
          MSTAE_OLD    TYPE ZMDMITEM03-MSTAE_OLD,
          USERNAME     TYPE CDHDR-USERNAME,   "用户名
          UDATE        TYPE CDHDR-UDATE,      "日期
          VKORG        TYPE MVKE-VKORG,       "销售组织
          VTWEG        TYPE MVKE-VTWEG,       "分销渠道
          DWERK        TYPE ZMDMITEM02-DWERK,  "交货工厂
          VMSTA        TYPE ZMDMITEM02-VMSTA,  "指定分销链的状态
          VMSTD        TYPE ZMDMITEM02-VMSTD,  "有效的日期
          ZMMCODE      TYPE ZMMUPDAPPLYITEM-ZMMCODE,    "9的物料编码
          ZMMSNAME     TYPE ZMMUPDAPPLYITEM-ZMMSNAME,  "9的物料简称
          ZWERKS       TYPE ZMMUPDAPPLYITEM-WERKS,       "9的工厂
          ZNAME1       TYPE ZMMUPDAPPLYITEM-NAME1,    "9的工厂名称
          ZZDATE       TYPE ZMMUPDAPPLYITEM-ZDATE,    "9的最近修改日期
          ZTIME        TYPE ZMMUPDAPPLYITEM-ZTIME,    "9的最近修改时间

        END OF TY_OUTPUT.

DATA : GT_OUT TYPE TABLE OF TY_OUTPUT.
DATA : GS_OUT TYPE TY_OUTPUT.

SELECTION-SCREEN : BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS:
              S_KLART FOR KLAH-KLART,     "类别种类
              S_ZORDER FOR ZWLFLH-ZORDER. "申请单号

SELECT-OPTIONS:

              S_DJLX2 FOR ZTDJLX-ZDJLX1 NO INTERVALS NO-EXTENSION,   "单选 且 没有下一步选择    "单据类型,ZTDJLX是新建的表
              S_MTART FOR MARA-MTART,     "物料类型
              S_MATNR FOR MARC-MATNR,     "物料
              S_MAKTX FOR MAKT-MAKTX,     "物料描述
              S_MATKL FOR MARA-MATKL,     "物料组
              S_WERKS FOR MARC-WERKS,     "工厂
              S_NEW   FOR ZMDMITEM03-VALUE_NEW,"新值==特定工厂的物料新状态1
              S_OLD   FOR ZMDMITEM03-VALUE_OLD,"旧值==特定工厂的物料旧状态1
              S_ZAPPL FOR ZWLFLH-ZAPPLYER,    "申请人ID
              S_ZAPDA FOR ZWLFLH-ZAPPLYDATE,  "创建日期
              S_ZDATE FOR ZWLFLH-ZDATE,        "提交日期
              S_UDATE FOR CDHDR-UDATE.    "日期
PARAMETERS :
              S_VKORG AS CHECKBOX.        "销售组织

SELECTION-SCREEN : END OF BLOCK BK1.

START-OF-SELECTION.

  PERFORM SELECT_TYPE.  "选择单据类型
*&---------------------------------------------------------------------*
*& Form SELECT_TYPE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM SELECT_TYPE .

  IF S_DJLX2-LOW = 'H'.
    PERFORM GETDATA_H.
    PERFORM DISPLAY_HH.
    
  ELSEIF S_DJLX2-LOW = '9'.
    PERFORM GETDATA_9.
    PERFORM DISPLAY_9.

  ELSEIF S_DJLX2-LOW = 'J'.
    PERFORM GETDATA_J.
    PERFORM DISPLAY_JJ.
  ENDIF.

ENDFORM.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form GETDATA_J
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM GETDATA_H .

    SELECT ZWLFLH~ZORDER,   "申请单号
         ZWLFLH~ZDJLX,    "单据类型
         ZWLFLH~ZMX1,     "单据类型描述
         ZWLFLH~ZWLLB,    "物料类型
         ZWLFLH~ZMX2,     "物料类型描述
         ZWLFLH~BTYPE,    "业务类别
         ZWLFLH~ZAPPLYER, "申请人ID
         USR21~TECHDESC, "申请人姓名
         ZWLFLH~ZAPPLYDEPT, "申请部门
         ZWLFLH~ZAPPLYDATE,   "申请日期
         ZWLFLH~ZDATE,        "提交日期
         ZWLFLH~ZAPPLYREASON, "申请原因
         ZWLFLH~ZSTATUS,      "审批状态
         ZWLFLH~ZMX3,        "审批状态描述
         ZWLFLH~ZAPPNAM,      "审批人
         ZWLFLH~ZSPXX,        "审批消息
         ZWLFLH~ZJYXT,        "禁用系统
         ZWLFLH~ZJYXTXT,      "禁用系统描述
         ZWLFLH~ZSFCRM,       "是否传输CRM
         ZMDMITEM01~ZNO,  "行项目
         ZMDMITEM01~MATNR,"物料编码
         ZMDMITEM01~MAKTX,"物料描述
         ZMDMITEM01~WERKS,"工厂
         ZMDMITEM01~NAME1,"工厂名称
         ZMDMITEM01~MMSTA,"特定工厂的跨物料状态
         ZMDMITEM01~MSTAE"跨工厂物料状态

    INTO CORRESPONDING FIELDS OF TABLE @GT_OUT
    FROM  ZWLFLH
    LEFT JOIN ZMDMITEM01 ON ZMDMITEM01~ZORDER = ZWLFLH~ZORDER
    LEFT JOIN USR21 ON USR21~BNAME = ZWLFLH~ZAPPLYER

    WHERE ZMDMITEM01~WERKS IN @S_WERKS
    AND ZWLFLH~ZDJLX = 'H'
    AND ZWLFLH~ZORDER IN @S_ZORDER
    AND ZMDMITEM01~MATNR IN @S_MATNR
    AND ZWLFLH~ZWLLB IN @S_MTART
    AND ZWLFLH~ZAPPLYER IN @S_ZAPPL
    AND ZWLFLH~ZDATE IN @S_ZDATE
    AND ZWLFLH~ZAPPLYDATE IN @S_ZAPDA.

    SELECT MARA~MATNR,MARA~MATKL,T023T~WGBEZ INTO TABLE @DATA(LT_MATKL) "临时表
    FROM MARA
    LEFT JOIN T023T ON MARA~MATKL = T023T~MATKL AND T023T~SPRAS = '1'  "中英文描述要把技术段SPARS 进行未转换赋值(‘1’代表中文)
    FOR ALL ENTRIES IN @GT_OUT WHERE MATNR = @GT_OUT-MATNR.
    SORT LT_MATKL BY MATNR.

    LOOP AT GT_OUT INTO GS_OUT .

      READ TABLE LT_MATKL INTO DATA(LV_MATKL) WITH KEY MATNR = GS_OUT-MATNR BINARY SEARCH.    " 二分法
      IF SY-SUBRC = 0.
        GS_OUT-MATKL = LV_MATKL-MATKL.
        GS_OUT-WGBEZ = LV_MATKL-WGBEZ.
      ENDIF.

      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
        EXPORTING
          INPUT  = GS_OUT-MATNR
        IMPORTING
          OUTPUT = GS_OUT-MATNR.
      MODIFY GT_OUT FROM GS_OUT.
      CLEAR:LV_MATKL.
    ENDLOOP.

    SORT GT_OUT BY ZORDER ZNO.     "默认按照ZODER(先)、ZNO(后)排序
  IF S_MATKL[] IS NOT INITIAL .
    DELETE GT_OUT WHERE MATKL NOT IN S_MATKL.
  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form DISPLAY_HH
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM DISPLAY_HH .

  DATA : GT_FIELDCAT TYPE LVC_T_FCAT,
         GS_FIELDCAT TYPE LVC_S_FCAT,
         G_REPID     TYPE SY-REPID.

  DEFINE M_BUILD_FIELDCAT.     "添加显示字段信息
    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname = &1.
    gs_fieldcat-scrtext_l = &2.
    APPEND gs_fieldcat TO gt_fieldcat.

  END-OF-DEFINITION.

  CLEAR : GT_FIELDCAT[].

  M_BUILD_FIELDCAT 'ZORDER'        '申请单号'.
  M_BUILD_FIELDCAT 'ZDJLX'         '单据类型'.
  M_BUILD_FIELDCAT 'ZMX1'          '单据类型描述'.
  M_BUILD_FIELDCAT 'ZWLLB'         '物料类型'.
  M_BUILD_FIELDCAT 'ZMX2'          '物料类型描述'.
  M_BUILD_FIELDCAT 'BTYPE'         '业务类别'.
  M_BUILD_FIELDCAT '    '              '业务类别描述'.
  M_BUILD_FIELDCAT 'ZAPPLYER'      '申请人ID'.
  M_BUILD_FIELDCAT 'TECHDESC'      '申请人姓名'.
  M_BUILD_FIELDCAT 'ZAPPLYDEPT'    '申请部门'.
  M_BUILD_FIELDCAT 'ZAPPLYDATE'    '申请日期'.
  M_BUILD_FIELDCAT 'ZDATE'         '提交日期'.
  M_BUILD_FIELDCAT 'ZAPPLYREASON'  '申请原因'.
  M_BUILD_FIELDCAT 'ZSTATUS'       '审批状态'.
  M_BUILD_FIELDCAT 'ZMX3'          '审批状态描述'.
  M_BUILD_FIELDCAT 'ZAPPNAM'       '审批人'.
  M_BUILD_FIELDCAT 'ZSPXX'         '审批消息'.
  M_BUILD_FIELDCAT 'ZJYXT'         '禁用系统'.
  M_BUILD_FIELDCAT 'ZJYXTXT'       '禁用系统描述'.
  M_BUILD_FIELDCAT 'ZSFCRM'        '是否传入CRM'.
  M_BUILD_FIELDCAT ''              '销售状态'.
  M_BUILD_FIELDCAT 'ZNO'           '行项目'.
  M_BUILD_FIELDCAT 'MATNR'         '物料编号'.
  M_BUILD_FIELDCAT 'MAKTX'         '物料描述'.
  M_BUILD_FIELDCAT 'MATKL'         '物料组'.
  M_BUILD_FIELDCAT 'WGBEZ'         '物料组描述'.
  M_BUILD_FIELDCAT 'VKORG'         '销售组织'.
  M_BUILD_FIELDCAT 'VTWEG'         '分销渠道'.
  M_BUILD_FIELDCAT 'DWERK'         '交货工厂'.
  M_BUILD_FIELDCAT 'VMSTA'         '指定分销的物料状态'.
  M_BUILD_FIELDCAT 'VMSTD'         '有效的日期'.

  G_REPID = SY-REPID.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM = G_REPID
      IT_FIELDCAT_LVC    = GT_FIELDCAT
      I_DEFAULT          = 'X'
      I_GRID_TITLE       = ''     "表格标题
    TABLES
      T_OUTTAB           = GT_OUT
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.
  IF SY-SUBRC <> 0.
  ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form GETDATA_9
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM GETDATA_9 .
  SELECT
       ZWLFLH~ZORDER,   "申请单号
       ZWLFLH~ZDJLX,    "单据类型
       ZWLFLH~ZMX1,     "单据类型描述
       ZWLFLH~ZWLLB,    "物料类型
       ZWLFLH~ZMX2,     "物料类型描述
       ZWLFLH~BTYPE,    "业务类别
       ZWLFLH~ZAPPLYER, "申请人ID
       USR21~TECHDESC, "申请人姓名
       ZWLFLH~ZAPPLYDATE,   "申请日期
       ZWLFLH~ZDATE,        "提交日期
       ZWLFLH~ZAPPLYREASON, "申请原因
       ZWLFLH~ZSTATUS,      "审批状态
       ZWLFLH~ZMX3,        "审批状态描述
       ZMMUPDAPPLYITEM~ZMMCODE,"物料编码
       ZMMUPDAPPLYITEM~ZMMSNAME,"物料简称
       ZMMUPDAPPLYITEM~WERKS AS ZWERKS,"工厂
       ZMMUPDAPPLYITEM~NAME1 AS ZNAME1,"工厂名称
       ZMDMITEM01~MMSTA,"特定工厂的跨物料状态
       ZMDMITEM01~MSTAE,"跨工厂物料状态
       ZMMUPDAPPLYITEM~ZDATE AS ZZDATE,"最近修改日期 PS:同样字段名在不同的表中显示时,
                                        "   要区别赋值,通过AS 来实现
       ZMMUPDAPPLYITEM~ZTIME"最近修改时间

  INTO CORRESPONDING FIELDS OF TABLE @GT_OUT
  FROM  ZWLFLH
  LEFT JOIN ZMDMITEM01 ON ZMDMITEM01~ZORDER = ZWLFLH~ZORDER
  LEFT JOIN  ZMMUPDAPPLYITEM ON ZMMUPDAPPLYITEM~ZORDER = ZWLFLH~ZORDER
  LEFT JOIN USR21 ON USR21~BNAME = ZWLFLH~ZAPPLYER
  WHERE ZMMUPDAPPLYITEM~WERKS IN @S_WERKS
  AND ZWLFLH~ZORDER IN @S_ZORDER
  AND ZWLFLH~ZDJLX = '9'
  AND ZWLFLH~ZWLLB IN @S_MTART
  AND ZMMUPDAPPLYITEM~ZMMCODE IN @S_MATNR
  AND ZWLFLH~ZAPPLYER IN @S_ZAPPL
  AND ZWLFLH~ZDATE IN @S_ZDATE
  AND ZWLFLH~ZAPPLYDATE IN @S_ZAPDA.
    SELECT MARA~MATNR,MARA~MATKL,T023T~WGBEZ INTO TABLE @DATA(LT_MATKL) "临时表
    FROM MARA
    LEFT JOIN T023T ON MARA~MATKL = T023T~MATKL AND T023T~SPRAS = '1'  "中英文描述要把技术段SPARS 进行未转换赋值(‘1’代表中文)
    FOR ALL ENTRIES IN @GT_OUT WHERE MATNR = @GT_OUT-MATNR.
    SORT LT_MATKL BY MATNR.
    LOOP AT GT_OUT INTO GS_OUT .
      READ TABLE LT_MATKL INTO DATA(LV_MATKL) WITH KEY MATNR = GS_OUT-ZMMCODE BINARY SEARCH.    " 二分法
      IF SY-SUBRC = 0.
        GS_OUT-MATKL = LV_MATKL-MATKL.
        GS_OUT-WGBEZ = LV_MATKL-WGBEZ.
      ENDIF.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        INPUT  = GS_OUT-ZMMCODE
      IMPORTING
        OUTPUT = GS_OUT-ZMMCODE.

    MODIFY GT_OUT FROM GS_OUT.

    CLEAR:LV_MATKL.
  ENDLOOP.

  IF S_MATKL[] IS NOT INITIAL .
    DELETE GT_OUT WHERE MATKL NOT IN S_MATKL.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_9
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM DISPLAY_9 .
  DATA : GT_FIELDCAT TYPE LVC_T_FCAT,
         GS_FIELDCAT TYPE LVC_S_FCAT,
         G_REPID     TYPE SY-REPID.

  DEFINE M_BUILD_FIELDCAT.     "添加显示字段信息
    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname = &1.
    gs_fieldcat-scrtext_l = &2.
    APPEND gs_fieldcat TO gt_fieldcat.

  END-OF-DEFINITION.

  CLEAR : GT_FIELDCAT[].
  M_BUILD_FIELDCAT 'ZORDER'        '申请单号'.
  M_BUILD_FIELDCAT 'ZDJLX'         '单据类型'.
  M_BUILD_FIELDCAT 'ZMX1'          '单据类型描述'.
  M_BUILD_FIELDCAT 'ZWLLB'         '物料类型'.
  M_BUILD_FIELDCAT 'ZMX2'          '物料类型描述'.
  M_BUILD_FIELDCAT 'BTYPE'         '业务类别'.
  M_BUILD_FIELDCAT '     '              '业务类别描述'.
  M_BUILD_FIELDCAT 'ZAPPLYER'      '申请人ID'.
  M_BUILD_FIELDCAT 'TECHDESC'      '申请人姓名'.
  M_BUILD_FIELDCAT 'ZAPPLYDEPT'    '申请部门'.
  M_BUILD_FIELDCAT 'ZAPPLYDATE'    '申请日期'.
  M_BUILD_FIELDCAT 'ZDATE'         '提交日期'.
  M_BUILD_FIELDCAT 'ZAPPLYREASON'  '申请原因'.
  M_BUILD_FIELDCAT 'ZSTATUS'       '审批状态'.
  M_BUILD_FIELDCAT 'ZMX3'          '审批状态描述'.
  M_BUILD_FIELDCAT 'ZMMCODE'       '物料编码'.
  M_BUILD_FIELDCAT 'ZMMSNAME'      '物料简称'.
  M_BUILD_FIELDCAT 'MATKL'         '物料组'.
  M_BUILD_FIELDCAT 'WGBEZ'         '物料组描述'.
  M_BUILD_FIELDCAT 'ZWERKS'        '工厂'.
  M_BUILD_FIELDCAT 'ZNAME1'        '工厂名称'.
  M_BUILD_FIELDCAT 'MMSTA'         '特定工厂的物料状态'.
  M_BUILD_FIELDCAT 'MSTAE'         '跨工厂物料状态'.
  M_BUILD_FIELDCAT 'ZZDATE'        '最近修改日期'.
  M_BUILD_FIELDCAT 'ZTIME'         '最近修改时间'.

  G_REPID = SY-REPID.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM = G_REPID
      IT_FIELDCAT_LVC    = GT_FIELDCAT
      I_DEFAULT          = 'X'
      I_GRID_TITLE       = ''     "表格标题
    TABLES
      T_OUTTAB           = GT_OUT
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.

  IF SY-SUBRC <> 0.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GETDATA_J
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM GETDATA_J .

    SELECT ZWLFLH~ZORDER,   "申请单号
         ZWLFLH~ZDJLX,      "单据类型
         ZWLFLH~ZMX1,       "单据类型描述
         ZWLFLH~ZWLLB,      "物料类型
         ZWLFLH~ZMX2,       "物料类型描述
         ZWLFLH~BTYPE,      "业务类别
         ZWLFLH~ZAPPLYER,   "申请人ID
         USR21~TECHDESC,   "申请人姓名
         ZWLFLH~ZAPPLYDEPT,   "申请部门
         ZWLFLH~ZAPPLYDATE,   "申请日期
         ZWLFLH~ZDATE,        "提交日期
         ZWLFLH~ZAPPLYREASON, "申请原因
         ZWLFLH~ZSTATUS,      "审批状态
         ZWLFLH~ZMX3,         "审批状态描述
         ZWLFLH~ZAPPNAM,      "审批人
         ZMDMITEM03~ZNO,      "行项目
         ZMDMITEM03~MATNR,    "物料编码
         ZMDMITEM03~MAKTX,    "物料描述
         ZMDMITEM03~WERKS,    "工厂
         ZMDMITEM03~NAME1,    "工厂名称
         ZMDMITEM03~VALUE_OLD,    "特定工厂的物料旧状态
         ZMDMITEM03~VALUE_NEW,     "特定工厂物料新状态
         ZMDMITEM03~VALUE_OLD2,     "跨工厂物料旧状态
         ZMDMITEM03~VALUE_NEW2     "跨工厂物料新状态

    INTO CORRESPONDING FIELDS OF TABLE @GT_OUT
    FROM  ZWLFLH
    LEFT JOIN ZMDMITEM03 ON ZMDMITEM03~ZORDER = ZWLFLH~ZORDER
    LEFT JOIN USR21 ON USR21~BNAME = ZWLFLH~ZAPPLYER
    WHERE ZMDMITEM03~WERKS IN @S_WERKS   "工厂
    AND ZWLFLH~ZDJLX = 'J'               "单据类型
    AND ZWLFLH~ZORDER IN @S_ZORDER   "申请单号
    AND ZMDMITEM03~MATNR IN @S_MATNR
    AND ZWLFLH~ZWLLB IN @S_MTART         "物料号
    AND ZMDMITEM03~VALUE_NEW IN @S_NEW   "新值
    AND ZMDMITEM03~VALUE_OLD IN @S_OLD   "旧值
    AND ZWLFLH~ZAPPLYER IN @S_ZAPPL
    AND ZWLFLH~ZDATE IN @S_ZDATE
    AND ZWLFLH~ZAPPLYDATE IN @S_ZAPDA.   "日期
     SELECT MARA~MATNR,MARA~MATKL,T023T~WGBEZ INTO TABLE @DATA(LT_MATKL) "临时表
    FROM MARA
    LEFT JOIN T023T ON MARA~MATKL = T023T~MATKL AND T023T~SPRAS = '1'  "中英文描述要把技术段SPARS 进行未转换赋值(‘1’代表中文)
    FOR ALL ENTRIES IN @GT_OUT WHERE MATNR = @GT_OUT-MATNR.
    SORT LT_MATKL BY MATNR.
    LOOP AT GT_OUT INTO GS_OUT .
      READ TABLE LT_MATKL INTO DATA(LV_MATKL) WITH KEY MATNR = GS_OUT-MATNR BINARY SEARCH.    " 二分法
      IF SY-SUBRC = 0.
        GS_OUT-MATKL = LV_MATKL-MATKL.
        GS_OUT-WGBEZ = LV_MATKL-WGBEZ.
      ENDIF.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
        EXPORTING
          INPUT  = GS_OUT-MATNR
        IMPORTING
          OUTPUT = GS_OUT-MATNR.
      MODIFY GT_OUT FROM GS_OUT.
      CLEAR:LV_MATKL.
    ENDLOOP.
    SORT GT_OUT BY ZORDER ZNO.     "默认按照ZODER(先)、ZNO(后)排序
  IF S_MATKL[] IS NOT INITIAL .
    DELETE GT_OUT WHERE MATKL NOT IN S_MATKL.
  ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*& Form DISPLAY_JJ
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM DISPLAY_JJ .

  DATA : GT_FIELDCAT TYPE LVC_T_FCAT,
         GS_FIELDCAT TYPE LVC_S_FCAT,
         G_REPID     TYPE SY-REPID.

  DEFINE M_BUILD_FIELDCAT.     "添加显示字段信息
    CLEAR gs_fieldcat.
    gs_fieldcat-fieldname = &1.  "对应第一项
    gs_fieldcat-scrtext_l = &2.  "对应第二项
    APPEND gs_fieldcat TO gt_fieldcat.

  END-OF-DEFINITION.

  CLEAR : GT_FIELDCAT[].

  M_BUILD_FIELDCAT 'ZORDER'        '申请单号'.
  M_BUILD_FIELDCAT 'ZDJLX'         '单据类型'.
  M_BUILD_FIELDCAT 'ZMX1'          '单据类型描述'.
  M_BUILD_FIELDCAT 'ZWLLB'         '物料类型'.
  M_BUILD_FIELDCAT 'ZMX2'          '物料类型描述'.
  M_BUILD_FIELDCAT 'BTYPE'         '业务类别'.
  M_BUILD_FIELDCAT '     '              '业务类别描述'.
  M_BUILD_FIELDCAT 'ZAPPLYER'      '申请人ID'.
  M_BUILD_FIELDCAT 'TECHDESC'      '申请人姓名'.
  M_BUILD_FIELDCAT 'ZAPPLYDEPT'    '申请部门'.
  M_BUILD_FIELDCAT 'ZAPPLYDATE'    '申请日期'.
  M_BUILD_FIELDCAT 'ZDATE'         '提交日期'.
  M_BUILD_FIELDCAT 'ZAPPLYREASON'  '申请原因'.
  M_BUILD_FIELDCAT 'ZSTATUS'       '审批状态'.
  M_BUILD_FIELDCAT 'ZMX3'          '审批状态描述'.
  M_BUILD_FIELDCAT 'ZAPPNAM'       '审批人'.
  M_BUILD_FIELDCAT ''              '销售状态'.
  M_BUILD_FIELDCAT 'ZNO'           '行项目'.
  M_BUILD_FIELDCAT 'MATNR'         '物料编号'.
  M_BUILD_FIELDCAT 'MAKTX'         '物料描述'.
  M_BUILD_FIELDCAT 'MATKL'         '物料组'.
  M_BUILD_FIELDCAT 'WGBEZ'         '物料组描述'.
  M_BUILD_FIELDCAT 'VKORG'         '销售组织'.
  M_BUILD_FIELDCAT 'VTWEG'         '分销渠道'.
  M_BUILD_FIELDCAT 'DWERK'         '交货工厂'.
  M_BUILD_FIELDCAT 'VALUE_OLD'     '旧状态'.
  M_BUILD_FIELDCAT 'VMSTD_OLD'     '旧值禁用生效日期'.
  M_BUILD_FIELDCAT 'VALUE_NEW'     '新状态'.
  M_BUILD_FIELDCAT 'VMSTD_NEW'     '新值禁用生效时间'.

  G_REPID = SY-REPID.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM = G_REPID
      IT_FIELDCAT_LVC    = GT_FIELDCAT
      I_DEFAULT          = 'X'
      I_GRID_TITLE       = ''     "表格标题
    TABLES
      T_OUTTAB           = GT_OUT
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.

  IF SY-SUBRC <> 0.
  ENDIF.

ENDFORM.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值