采购订单项目表中的更改日期妙用——EKPO-AEDAT.
1.记录删除的日期
一开始用户要此信息,我都使用跟踪查找到CDPOS更改凭证项目表,使用此表勉强可以得到正确的信息,但是如果CLIENT COPY做得不好,此类信息会丢失,所以在开发的CLIENT却很难测试正确。方法如下:
LOOP AT ITAB_100 WHERE LOEKZ = 'L'.
    CONCATENATE  ‘%' ITAB_100-EBELN ITAB_100-EBELP INTO ITAB_100-EBENP.
    SELECT SINGLE CHANGENR INTO ITAB_100-CHANGENR FROM CDPOS
    WHERE TABNAME = 'EKPO' AND FNAME = 'LOEKZ' AND VALUE_NEW = 'L' AND TABKEY LIKE ITAB_100-EBENP.
    IF SY-SUBRC = 0.
      SELECT SINGLE VALUE_NEW INTO ITAB_100-MAEDAT FROM CDPOS
      WHERE TABNAME = 'EKPO' AND FNAME = 'AEDAT' AND CHANGENR = ITAB_100-CHANGENR .
    ENDIF.
    MODIFY ITAB_100.
    CLEAR ITAB_100.
  ENDLOOP.
***注意MAEDAT必须LIKE CDPOS-VALUE_NEW
但是事后才发觉,这些代码都是多此一举,仅仅EKPO-AEDAT这个字段就记录了删除日期,只要抓取它就可以了。方法如下:
IF ITAB_100-LOEKZ = 'L'.
      ITAB_100-STATE = '删除'.
      ITAB_100-MAEDAT = ITAB_100-AEDATP.
    ELSE.
      IF ITAB_100-AEDATP IS INITIAL.
        ITAB_100-STATE = '错误'.
      ELSE.
        ITAB_100-STATE = '正常'.
      ENDIF.
    ENDIF.
2.记录采购订单暂存状态
当采购订单的项目前有个红色的圆点状,表示此订单为暂存状态,也可以用这个EKPO-AEDAT来识别。
当EKPO-AEDAT为空的情况,表示此采购订单的此项为暂存状态,有部分信息需要填充,否则不能正常使用。
方法如下:
IF ITAB_100-AEDATP IS INITIAL.
        ITAB_100-STATE = '错误'.
      ELSE.
        ITAB_100-STATE = '正常'.
      ENDIF.
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
整个报表范例:
REPORT  ×××××× no standard page heading MESSAGE-ID zjxydmessage.
*--------------------------------------------------------------*
*Defind include for ALV output.
*--------------------------------------------------------------*
TYPE-POOLS: SLIS.
INCLUDE .
INCLUDE .
*--------------------------------------------------------------*
*Data definition
*--------------------------------------------------------------*
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      GS_LAYOUT   TYPE SLIS_LAYOUT_ALV,
      GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
      GT_EVENTS   TYPE SLIS_T_EVENT.
DATA: G_SAVE(1) TYPE C,
      G_DEFAULT(1) TYPE C,
      G_EXIT(1) TYPE C,
      GX_VARIANT LIKE DISVARIANT,
      G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
      G_VARIANT LIKE DISVARIANT,
      G_REPID LIKE SY-REPID,
      V_ANSWER,
      v_program(40),
      v_printdate(60),
      v_tcode(20),
      V_ERRORFLAG TYPE N.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
*----------------------------------------------------------------------*
*定义TABLE
*---------------------------------------------------------------------*
tables: EKKO,                                            "采购凭证抬头
        EKPO,                                            "采购凭证项目
        MEPO_TOPLINE,
        T007S.                                           "税收代码
data: begin of itab_100 occurs 1,
      WERKS          LIKE          EKPO-WERKS,          "工厂
      LIFNR          LIKE          EKKO-LIFNR,          "供应商帐号
      NAME1          LIKE          LFA1-NAME1,          "供应商帐号
      EBELN          LIKE          EKKO-EBELN,          "采购凭证号
      EBELP          LIKE          EKPO-EBELP,          "项目编号
      EBENP(14)      TYPE          C,                   "订单号+项目号
      EBELN1         LIKE          EKKO-EBELN,          "采购凭证号
      BSART          LIKE          EKKO-BSART,          "采购凭证类型
      BATXT          LIKE          T161T-BATXT,         "采购凭证类型
      KNUMV          LIKE          EKKO-KNUMV,          "采购凭证类型
      KWERT          LIKE          KONV-KWERT,          "采购凭证类型
      AEDAT          LIKE          EKKO-AEDAT,          "记录创建日期
      AEDAT1         LIKE          EKKO-AEDAT,          "记录创建日期
      GDATU          LIKE          TCURR-GDATU,         "记录创建日期
      TXZ01          LIKE          EKPO-TXZ01,          "短文本
      NETWR          LIKE          EKPO-NETWR,          "采购金额(不含税)
      WAERS          LIKE          EKKO-WAERS,          "货币代码
      UKURS          LIKE          TCURR-UKURS,         "汇率
      MWSKZ          LIKE          EKPO-MWSKZ,          "税代码
      TEXT1          LIKE          T007S-TEXT1,         "比例
      EFFWR          LIKE          EKPO-EFFWR,          "项目的有效值
      LOEKZ          LIKE          EKPO-LOEKZ,          "采购凭证删除标识
      NETWR1         LIKE          EKPO-NETWR,          "采购金额(含税)
      NETWR2         LIKE          EKPO-NETWR,          "运费金额(不含税)
      NETWR3         LIKE          EKPO-NETWR,          "运费金额(含税)
      NETWR4         LIKE          EKPO-NETWR,          "金额合计(含税)
      CHANGENR       LIKE          CDPOS-CHANGENR,      "文档更改编号
      SHOU(2)        TYPE          C,                   "是否收货
      STATE(4)       TYPE          C,                   "订单状态
      MAEDAT         LIKE          EKKO-AEDAT,          "删除日期
      BI(2)          TYPE          C,                   "税比例
      OTHER(20)      TYPE          C,                   "订单状态
      end of itab_100.
*-----检查权限控制
data: begin of itab_tvko occurs 0,
       vkorg like tvko-vkorg,       "销售组织
      end of itab_tvko.
data: v_auth.                        "检查权限
data:  VTEXT(30)       TYPE          C,                "部门名称
       v_bukrs         LIKE          TVKO-bukrs,       "部门名称
       t_bukrs         like          t001-butxt,       "公司名称
       VKUNNR          LIKE          VBAK-KUNNR,       "售达方
       OUT_NO(20)      TYPE         C,                "HEAD文本用来填定出厂编号
       V_NETWR          LIKE          EKPO-NETWR,          "采购金额(含税)
       VNAME(60)       TYPE          C.                "客户名称
DATA:xname like thead-tdname,        "文本名称
    xvbadr like vbadr,              "vbadr短文本地址工作区结构
    xtline like tline occurs 10 with header line,
    xflag(1),
    xtemp like sy-tabix.
*--------------------------------------------------------------*
selection-screen begin of block b1 with frame title text-001.
parameters: P_BUKRS like EKKO-BUKRS obligatory .              "公司代码
select-options: S_WERKS for EKPO-WERKS obligatory .           "工厂
select-options: S_BSART for MEPO_TOPLINE-BSART .                      "订单类型
select-options: S_EBELN for EKKO-EBELN .                      "订单类型
select-options: S_AEDAT for  EKKO-AEDAT  obligatory .          "订单创建日期
selection-screen end of block b1.
*--------------------------------------------------------------*
*Initiallize for ALV output
*--------------------------------------------------------------*
INITIALIZATION.
  G_REPID = SY-REPID.
  G_SAVE = 'A'.
  CLEAR G_VARIANT.
  G_VARIANT-REPORT = G_REPID.
at selection-screen on S_WERKS.
  select single bukrs into v_bukrs from TVKO
              where VKORG IN S_WERKS.
  if v_bukrs ne P_bukrs.
    message e021  with '请选择正确的工厂'.
  endif.
*--------------------------------------------------------------*
start-of-selection.
  perform author_check.
  if v_auth ne 'X'.
    perform get_data.
    perform sort_data.
    perform prepare_alv.
    perform list_data.
  endif.
*&-------------------------------------------------------------*
*&      Form  get_data
*&-------------------------------------------------------------*
*       text
*--------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*--------------------------------------------------------------*
FORM get_data.
  SELECT EKPO~WERKS EKKO~LIFNR EKKO~EBELN EKKO~BSART EKKO~KNUMV EKKO~AEDAT EKKO~WAERS
         EKPO~TXZ01 EKPO~NETWR EKPO~MWSKZ EKPO~EFFWR EKPO~LOEKZ EKPO~EBELP
     into corresponding fields of itab_100
     FROM EKKO INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
     WHERE EKKO~EBELN IN S_EBELN AND
           EKKO~BUKRS = P_BUKRS AND
           EKPO~WERKS IN S_WERKS AND
           EKKO~BSART IN S_BSART AND
           EKKO~AEDAT IN S_AEDAT .
**取供应商名称
    SELECT SINGLE NAME1  INTO ITAB_100-NAME1 FROM LFA1 WHERE LIFNR = ITAB_100-LIFNR.
**取税描述
    SELECT SINGLE TEXT1  INTO ITAB_100-TEXT1 FROM T007S
    WHERE SPRAS = '1' AND KALSM = 'TAXCN' AND MWSKZ = ITAB_100-MWSKZ.
**取税比例
    SPLIT ITAB_100-TEXT1 AT '%' INTO ITAB_100-BI ITAB_100-OTHER.
**取采购金额(含税)
    ITAB_100-NETWR1 = ITAB_100-NETWR + ITAB_100-NETWR * ITAB_100-BI.
**取订单类型描述
    SELECT SINGLE BATXT  INTO ITAB_100-BATXT FROM T161T WHERE BSART = ITAB_100-BSART.
**取汇率(月初的汇率)
    CONCATENATE  ITAB_100-AEDAT(6) '01' INTO ITAB_100-AEDAT1.
    CONVERT DATE ITAB_100-AEDAT1 INTO INVERTED-DATE ITAB_100-GDATU.
    ITAB_100-UKURS = 1.
    SELECT  SINGLE UKURS INTO ITAB_100-UKURS  FROM TCURR
       WHERE KURST = 'M' AND FCURR = ITAB_100-WAERS AND  TCURR = 'CNY' AND GDATU =  ITAB_100-GDATU.
**取金额合计(含税)
    ITAB_100-NETWR4 = ( ITAB_100-NETWR1 + ITAB_100-NETWR3 ) * ITAB_100-UKURS.
**判断是否有收货
    SELECT SINGLE EBELN INTO ITAB_100-EBELN1 FROM EKBE WHERE EBELN = ITAB_100-EBELN AND BEWTP = 'E'.
    IF SY-SUBRC = 0.
      ITAB_100-SHOU = '是'.
    ELSE.
      ITAB_100-SHOU = '否'.
    ENDIF.
**判断是删除
    IF ITAB_100-LOEKZ = 'L'.
      ITAB_100-STATE = '删除'.
    ELSE.
      ITAB_100-STATE = '正常'.
    ENDIF.
    APPEND ITAB_100.
    CLEAR ITAB_100.
  ENDSELECT.
**取运费
  LOOP AT ITAB_100 .
    IF ITAB_100-EFFWR NE ITAB_100-NETWR.
      SELECT  KWERT  INTO V_NETWR  FROM KONV
         WHERE KNUMV = ITAB_100-KNUMV AND ( KSCHL = 'FRC1' OR KSCHL = 'FRC2').
        ITAB_100-NETWR2 = ITAB_100-NETWR2 + V_NETWR .
        V_NETWR = 0.
      ENDSELECT.
**取运费金额(含税)
      ITAB_100-NETWR3 = ITAB_100-NETWR2 * 100 / 93 .
**取金额合计(含税)
      ITAB_100-NETWR4 = ( ITAB_100-NETWR1 + ITAB_100-NETWR3 ) * ITAB_100-UKURS.
      MODIFY ITAB_100.
      CLEAR ITAB_100.
    ENDIF.
  ENDLOOP.
**取删除日期
  LOOP AT ITAB_100 WHERE LOEKZ = 'L'.
    CONCATENATE  ITAB_100-EBELN ITAB_100-EBELP INTO ITAB_100-EBENP.
    SELECT SINGLE CHANGENR INTO ITAB_100-CHANGENR FROM CDPOS
    WHERE TABNAME = 'EKPO' AND FNAME = 'LOEKZ' AND VALUE_NEW = 'L' AND TABKEY = ITAB_100-EBENP.
    IF SY-SUBRC = 0.
      SELECT SINGLE VALUE_NEW INTO ITAB_100-MAEDAT FROM CDPOS
      WHERE TABNAME = 'EKPO' AND FNAME = 'AEDAT' AND CHANGENR = ITAB_100-CHANGENR .
    ENDIF.
    MODIFY ITAB_100.
    CLEAR ITAB_100.
  ENDLOOP.
ENDFORM.                    " get_data
*&---------------------------------------------------------------------*
*&      Form  sort_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM sort_data .
  sort itab_100 by AEDAT EBELN.
ENDFORM.                    " sort_data
*&-------------------------------------------------------------*
*&      Form  list_data
*&-------------------------------------------------------------*
*       text
*--------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*--------------------------------------------------------------*
FORM list_data.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'             "output via ALV
         EXPORTING
              I_CALLBACK_PROGRAM      = G_REPID
              IT_FIELDCAT             = GT_FIELDCAT[]
              IT_EVENTS               = GT_EVENTS[]
              I_SAVE = 'A'
         TABLES
              T_OUTTAB                = ITAB_100.
ENDFORM.                    " list_data
*---------------------------------------------------------------------*
*       FORM TOP_OF_PAGE                                              *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
*---prepare ALV header output
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      i_logo             = 'ENJOYSAP_LOGO'
      IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.                    "list_data
*&---------------------------------------------------------------------*
*&      Form  prepare_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM prepare_alv .
  PERFORM E01_FIELDCAT_INIT  USING GT_FIELDCAT[].
  PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].
  PERFORM E04_COMMENT_BUILD  USING GT_LIST_TOP_OF_PAGE[].
ENDFORM.                    " prepare_alv
*&---------------------------------------------------------------------*
*&      Form  E01_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GT_FIELDCAT[]  text
*----------------------------------------------------------------------*
FORM E01_FIELDCAT_INIT USING E01_LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*---Populate ALV field structure
  CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'WERKS'.
  LS_FIELDCAT-COL_POS       = '1'.
  LS_FIELDCAT-SELTEXT_L     = '工厂'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '4'.
  LS_FIELDCAT-just          = 'C'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'EBELN'.
  LS_FIELDCAT-COL_POS       = '2'.
  LS_FIELDCAT-SELTEXT_L     = '订单号码'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '10'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'LIFNR'.
  LS_FIELDCAT-COL_POS       = '3'.
  LS_FIELDCAT-SELTEXT_L     = '供应商代码'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '10'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'NAME1'.
  LS_FIELDCAT-COL_POS       = '4'.
  LS_FIELDCAT-SELTEXT_L     = '供应商名称'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '35'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'AEDAT'.
  LS_FIELDCAT-COL_POS       = '5'.
  LS_FIELDCAT-SELTEXT_L     = '订单创建日期'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '10'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'TXZ01'.
  LS_FIELDCAT-COL_POS       = '6'.
  LS_FIELDCAT-SELTEXT_L     = '物料(工程)名称'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '40'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'NETWR'.
  LS_FIELDCAT-COL_POS       = '7'.
  LS_FIELDCAT-SELTEXT_L     = '采购(工程)金额(不含税)'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '24'.
  LS_FIELDCAT-just          = 'R'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'MWSKZ'.
  LS_FIELDCAT-COL_POS       = '8'.
  LS_FIELDCAT-SELTEXT_L     = '税码'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '4'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'NETWR1'.
  LS_FIELDCAT-COL_POS       = '9'.
  LS_FIELDCAT-SELTEXT_L     = '采购(工程)金额(含税)'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '22'.
  LS_FIELDCAT-just          = 'R'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'NETWR2'.
  LS_FIELDCAT-COL_POS       = '10'.
  LS_FIELDCAT-SELTEXT_L     = '运费金额(不含税)'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '16'.
  LS_FIELDCAT-just          = 'R'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'NETWR3'.
  LS_FIELDCAT-COL_POS       = '11'.
  LS_FIELDCAT-SELTEXT_L     = '运费金额(含税)'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '14'.
  LS_FIELDCAT-just          = 'R'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'WAERS'.
  LS_FIELDCAT-COL_POS       = '12'.
  LS_FIELDCAT-SELTEXT_L     = '币别'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '4'.
  LS_FIELDCAT-just          = 'C'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'UKURS'.
  LS_FIELDCAT-COL_POS       = '12'.
  LS_FIELDCAT-SELTEXT_L     = '汇率'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '10'.
  LS_FIELDCAT-just          = 'R'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'NETWR4'.
  LS_FIELDCAT-COL_POS       = '13'.
  LS_FIELDCAT-SELTEXT_L     = '金额(含税)合计'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '14'.
  LS_FIELDCAT-just          = 'R'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'SHOU'.
  LS_FIELDCAT-COL_POS       = '14'.
  LS_FIELDCAT-SELTEXT_L     = '是否收货'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '8'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'STATE'.
  LS_FIELDCAT-COL_POS       = '15'.
  LS_FIELDCAT-SELTEXT_L     = '订单状态'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '8'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.

  CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'MAEDAT'.
  LS_FIELDCAT-COL_POS       = '16'.
  LS_FIELDCAT-SELTEXT_L     = '删除日期'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '8'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
CLEAR LS_FIELDCAT.
  LS_FIELDCAT-TABNAME       = 'ITAB_100'.
  LS_FIELDCAT-FIELDNAME     = 'BATXT'.
  LS_FIELDCAT-COL_POS       = '17'.
  LS_FIELDCAT-SELTEXT_L     = '订单类型'.
  LS_FIELDCAT-DDICTXT       = 'L'.
  LS_FIELDCAT-outputlen     = '20'.
  LS_FIELDCAT-just          = 'L'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
ENDFORM.                    " E01_FIELDCAT_INIT
*&---------------------------------------------------------------------*
*&      Form  E03_EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GT_EVENTS[]  text
*----------------------------------------------------------------------*
FORM E03_EVENTTAB_BUILD USING E03_LT_EVENTS TYPE SLIS_T_EVENT.
  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      I_LIST_TYPE = 0
    IMPORTING
      ET_EVENTS   = E03_LT_EVENTS.
  READ TABLE E03_LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                             INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO E03_LT_EVENTS.
  ENDIF.
ENDFORM.                    " E03_EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*&      Form  E04_COMMENT_BUILD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GT_LIST_TOP_OF_PAGE[]  text
*----------------------------------------------------------------------*
FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
  DATA: LS_LINE TYPE SLIS_LISTHEADER.
  CLEAR LS_LINE.
  LS_LINE-TYP  = 'H'.
  select single butxt into t_bukrs from t001 where bukrs eq P_bukrs.
  LS_LINE-INFO = t_bukrs.
  APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
*
  CLEAR LS_LINE.
  LS_LINE-TYP  = 'S'.
  LS_LINE-KEY  = '采购及工程订单明细表'.
  APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
CLEAR LS_LINE.
   CONCATENATE '工厂:'  S_WERKS-LOW  '-' S_WERKS-HIGH    INTO v_program.
   CONCATENATE '程式编号:××××××' '     ' '印表时间:' SY-DATUM(4) '/' SY-DATUM+4(2)
              '/' SY-DATUM+6(2) '/'  SY-UZEIT(2) ':' SY-UZEIT+2(2) ':' SY-UZEIT+4(2)  INTO V_PRINTDATE.
  LS_LINE-TYP  = 'S'.
  LS_LINE-KEY  = v_program.
  LS_LINE-INFO = V_PRINTDATE.
  APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
ENDFORM.                    " E04_COMMENT_BUILD
*&---------------------------------------------------------------------*
*       检查权限
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM author_check .
  select * into corresponding fields of table itab_tvko
          from tvko
        where vkorg = S_WERKS.
loop at itab_tvko.
AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
       ID 'WERKS' FIELD itab_tvko-vkorg
       ID 'ACTVT' DUMMY.
    IF SY-SUBRC NE 0.
      v_auth = 'X'.
      message s015 with '工厂' itab_tvko-vkorg.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " author_check             

采购订单更改日期的妙用相关推荐

  1. oracle 修改po税api_[zz]Oracle EBS API: 采购订单承诺日期更改示例

    Oracle EBS API: 采购订单承诺日期更改示例(PO promise date updated with API ) 本示例中, 采用PO模块的API, 实现订单行的送货承诺日期更改.  对 ...

  2. 根据MRP建议对采购订单需求日期的建议修改采购订单需求日期 (续)

    根据MRP建议对采购订单需求日期进行系统更改,但是出现了一个问题:更改需求日期的时候发现采购单价被改了. 出现单价被自动更改有以下前提条件: 1.此采购单价是由来源单据带出的,比方说报价单: 2.当采 ...

  3. sap采购订单更改记录_SAP标准采购流程

    在SAP中,一个完整的采购流程包含采购申请.订单处理.货物接收.发票校验.付款清账五大环节.也有企业不通过SAP管理采购申请,采购流程从采购订单开始.本文介绍SAP标准的材料采购流程,以便大家理解采购 ...

  4. sap采购订单更改记录_SAP系统如何实现减税:增值税16%

    对于税率.税码和税科目的变更,总体方案是尽可能让每一个功能默认,即使是QAD软件功能相对较少的情况下,我们也是如此,更何况SAP强大的定制功能呢. 个人觉得要变更税,必须理解SAP系统税的配置原理.流 ...

  5. sap开发-采购订单更改历史table

    两个table分别是CDHDR(抬头更改)与CDPOS(项目更改).

  6. sap 采购订单 bapi (创建外协采购订单-组件为手工输入)

    其实则不然,只要把U改成 'E' 即可 另外:采购价格问题. 如果采购订单凭证日期决定的信息记录有效就会取信息记录,不会取EXCEL . 处理方法:1 保证取不到信息记录. 2 或者 修改后台配置(取 ...

  7. 加工费采购订单批准后禁止更改订单数量

    应用 Oracle   Purchasing 层 Level Function 函数名 Funcgtion Name PO_POXPOEPO 表单名 Form Name POXPOEPO 说明 Des ...

  8. 不允许更改采购订单币种

    应用 Oracle   Purchasing 层 Level Function 函数名 Funcgtion Name CUXPOXPOEPO 表单名 Form Name POXPOEPO 说明 Des ...

  9. 【转】对服务采购订单的条目确认

    一.说明 在SAP创建服务采购订单,后续不是用MIGO之类进行收货,而是要用T-CODE:ML81N创建服务单,对服务条目进行确认.服务采购订单可以维护服务条目,也可以部分或不维护,在此维护的是计划的 ...

最新文章

  1. 虚拟化管理的两大棘手之处
  2. Yacc 与 Lex 快速入门(词法分析和语法分析)
  3. 返回值类型有哪些_关于类型的思考
  4. 机器学习实战教程(四):朴素贝叶斯基础篇之言论过滤器
  5. Jeecg-Boot导入附件异常解决
  6. 大数据之-Hadoop完全分布式_Crondtab定时任务调度---大数据之hadoop工作笔记0042
  7. Scalaz(38)- Free :Coproduct-Monadic语句组合
  8. 排序算法Java实现(快速排序)
  9. 江苏实时分析评价系统项目总结报告
  10. java执行Sql脚本
  11. SAP JCo BAPI的使用(刘欣) 2009-2-6
  12. Win10卸载edge浏览器与后悔重装
  13. 感冒、咳嗽、发烧、腹泻、扁桃体炎是儿童常见病
  14. JavaScript基础教程之flag的用法
  15. 74HC573芯片介绍
  16. 2022年Google开发者大会纪录
  17. 【CityHunter】游戏进度总控,及需求设计
  18. AppleTalk:Apple 公司协议组--网络大典
  19. Java体系知识之ElementUI
  20. leeCode350_两个数组的交集

热门文章

  1. 我司那产品经理丨第四期
  2. 产品策划三:App启动页的策划方案
  3. 【用研】细读7张图片,教你玩转用户调研
  4. 团购硝烟慢慢散去之时:从团购身上我们可以学到什么?
  5. Spring Cloud和Dubbo
  6. oracle之 RA-00054: resource busy and acquire with NOWAIT specified or timeout expired
  7. RxJava 参考文档
  8. Maven 发布到本地仓库
  9. 磨刀不误砍柴工——数据准备的过程与实践
  10. 用友BIP平台ISV伙伴快速壮大,32款融合产品与联合解决方案隆重发布