获取WBS状态函数

FUNCTION ZIF_GET_WBS_STATE.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  TABLES
*"      INPUT STRUCTURE  ZIF_GET_WBS_STATE_INPUT OPTIONAL
*"      OUTPUT STRUCTURE  ZIF_GET_WBS_STATE_OUTPUT OPTIONAL
*"----------------------------------------------------------------------


*状态表
TYPES:BEGIN OF stat_itab,
      objnr TYPE jest-objnr,            "PROJ-OBJNR
      istat TYPE tj02t-istat,
      estat TYPE tj30t-estat,
      txt30 TYPE tj02t-txt30,
END OF stat_itab.
DATA:sstat_tab TYPE TABLE OF stat_itab WITH HEADER LINE.
DATA:ustat_tab TYPE TABLE OF stat_itab WITH HEADER LINE.


DATA:m_OBJNR TYPE PRPS-OBJNR.
DATA:m_PSPEL TYPE AUFK-PSPEL.
DATA:m_COUNT TYPE I.


LOOP AT INPUT.
      MOVE-CORRESPONDING INPUT TO OUTPUT.


      REFRESH sstat_tab.
      CLEAR sstat_tab.


      REFRESH ustat_tab.
      CLEAR ustat_tab.


      CLEAR m_COUNT.
      SELECT SINGLE
             COUNT(*)
             INTO m_COUNT
             FROM PRPS
             WHERE POSID = INPUT-POSID.
      IF m_COUNT > 0.
*         删除前面的0
          SHIFT INPUT-POSID LEFT DELETING LEADING '0'.
          CLEAR m_PSPEL.
          CALL FUNCTION 'CONVERSION_EXIT_KONPR_INPUT'
             EXPORTING
               INPUT                        = INPUT-POSID
             IMPORTING
               OUTPUT                       = m_PSPEL.
      ENDIF.


      CLEAR m_OBJNR.
      SELECT SINGLE
             OBJNR
             INTO m_OBJNR
             FROM PRPS
             WHERE PSPNR = m_PSPEL.


      SELECT b~objnr
             a~istat
             a~txt04 as txt30
             FROM tj02t AS a INNER JOIN  jest AS b ON a~istat = b~stat
             INTO CORRESPONDING FIELDS OF TABLE sstat_tab
             WHERE b~objnr = m_OBJNR
                   AND a~spras = sy-langu
                   AND b~inact <> 'X'.
      DELETE ADJACENT DUPLICATES FROM sstat_tab.




      SELECT b~objnr
             a~estat
             a~txt04 as txt30
             FROM tj30t AS a INNER JOIN  jest AS b ON a~estat = b~stat
             INTO CORRESPONDING FIELDS OF TABLE ustat_tab
             WHERE b~objnr = m_OBJNR
                   AND a~spras = sy-langu AND
                   a~stsma = 'ZPS001'
                   AND b~inact <> 'X'.
      DELETE ADJACENT DUPLICATES FROM ustat_tab.




      LOOP AT sstat_tab WHERE objnr = m_OBJNR.
            IF sstat_tab-istat CS 'I'.
                CONCATENATE OUTPUT-SYSSTA sstat_tab-txt30 INTO OUTPUT-SYSSTA SEPARATED BY SPACE.
*                OUTPUT-SYSSTA = sstat_tab-txt30.
            ENDIF.
      ENDLOOP.


      LOOP AT ustat_tab WHERE objnr = m_OBJNR.
            IF ustat_tab-estat CS 'E'.
                CONCATENATE OUTPUT-USRSTA ustat_tab-txt30 INTO OUTPUT-USRSTA SEPARATED BY SPACE.
*                OUTPUT-USRSTA = ustat_tab-txt30.
            ENDIF.
      ENDLOOP.


      APPEND OUTPUT.
      CLEAR OUTPUT.
ENDLOOP.


ENDFUNCTION.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChampaignWolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值