zoukankan      html  css  js  c++  java
  • SAP QM UD检验批回转为REL待检验状态

    首先创建1000屏幕,后面附屏幕相关代码和效果图示

    *&---------------------------------------------------------------------*
    *& Report  ZQEVAC40 UD檢驗批迴轉REL狀態
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT  zqevac40.

    *----------------------------------------------------------------------*
    *  Datendefinitionen
    *----------------------------------------------------------------------*
    * Tabellen
    *----------------------------------------------------------------------*
    TABLES sscrfields.
    TABLES qals.
    TABLES qave.

    CONSTANTS:
      c_rc_0  LIKE sy-subrc           VALUE 0,
      c_rc_4  LIKE sy-subrc           VALUE 4,
      c_rc_20 LIKE sy-subrc           VALUE 20,
    *
      c_kreuz LIKE qm00-qkz           VALUE 'X'.
    *

    *----------------------------------------------------------------------*
    * Eingabebildschirm
    SELECTION-SCREEN SKIP 2.
    PARAMETERS prueflos  LIKE qals-prueflos MATCHCODE OBJECT qals
                                            MEMORY ID qls .
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK search WITH FRAME.
    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN PUSHBUTTON 3(20text-s01 USER-COMMAND sear.
    SELECTION-SCREEN PUSHBUTTON 40(20text-s02 USER-COMMAND show.
    *--- text-s01 “Find insp .lot” text-s02 “Show insp .lot” prueflos “Inspection Lot “

    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK search.


    *----------------------------------------------------------------------*
    AT SELECTION-SCREEN.

      IF sscrfields-ucomm EQ 'SEAR'
        OR prueflos IS INITIAL.
        CALL FUNCTION 'QELA_START_SELECTION_OF_LOTS'
          EXPORTING
            i_selid          ' '
            i_stat_aenderung 'X'
            i_stat_ero       'X'
            i_stat_frei      'X'
            i_stat_ve        ' '
          IMPORTING
            e_prueflos       = prueflos
          EXCEPTIONS
            no_entry         1
            no_selected      2
            OTHERS           3.
      ENDIF.


      IF sscrfields-ucomm EQ 'SHOW'.
        CALL FUNCTION 'QSS1_LOT_SHOW'
          EXPORTING
            i_prueflos = prueflos.
      ENDIF.

      CHECK sscrfields-ucomm EQ 'ONLI'.

    * ab hier mu# Pr#losnummer gef#lt sein.
      IF prueflos IS INITIAL.
        MESSAGE e164(qa).
      ENDIF.

    * Lesen Los
      CALL FUNCTION 'ENQUEUE_EQQALS1'
        EXPORTING
          prueflos = prueflos.

      CALL FUNCTION 'QPSE_LOT_READ'
        EXPORTING
          i_prueflos = prueflos
        IMPORTING
          e_qals     = qals
        EXCEPTIONS
          no_lot     1.
      IF NOT sy-subrc IS INITIAL.
        MESSAGE e102(qa).
      ENDIF.
    *-----------------
    * Pr#en Status
      CALL FUNCTION 'QAST_STATUS_CHECK'
        EXPORTING
          i_objnr          = qals-objnr
          i_status         'I0218' "Status VE getroffen
        EXCEPTIONS
          status_not_activ 1.
      IF NOT sy-subrc IS INITIAL.
        MESSAGE e102(qvWITH qals-prueflos.
      ENDIF.
    *
      CALL FUNCTION 'QEVA_UD_READ'
        EXPORTING
          i_prueflos = qals-prueflos
        IMPORTING
          e_qave     = qave.


    *---------------------------------------------------------------------*
    START-OF-SELECTION.
    * Vorgaben sind ok.   1. Material Umlagern und Los 輋dern

      PERFORM qals_aendern.
    *  PERFORM zqmt010_zqmt002_updated. "2015/10/27 add
    ************************************************************************
    *----------------------------------------------------------------------*
    *       FORM QALS_aendern
    *----------------------------------------------------------------------*
    FORM qals_aendern.
    *
      PERFORM status_fix_setzen USING 'I0002' c_kreuz.
      PERFORM status_fix_setzen USING 'I0216' space.
      PERFORM status_fix_setzen USING 'I0217' space.
      PERFORM status_fix_setzen USING 'I0218' space.
      CLEAR: qals-stat14.
      CLEAR: qals-stat35.
      CLEAR: qave-vauswahlmg,
           qave-vwerks,
           qave-versionam,
           qave-vcodegrp,
           qave-vcode,
           qave-vbewertung,
           qave-versioncd,
           qave-vfolgeakti,
           qave-qkennzahl.
    *--... verbuchen
      CALL FUNCTION 'QEVA_UD_UPDATE' IN UPDATE TASK
        EXPORTING
          qals_new = qals
          qave_new = qave.
      COMMIT WORK.
      MESSAGE s101(qaWITH qals-prueflos.
    ENDFORM.
    *----------------------------------------------------------------------*
    *       Form  STATUS_FIX_SETZEN
    *----------------------------------------------------------------------*
    *   Setzen eines Status aufgrund von Voreinstellungen wie QMAT etc.    *
    *----------------------------------------------------------------------*
    *  -->  STATUS    Status der gesetzt werden soll
    *  -->  AKTIV     Status wird aktiviert sonst deaktiviert
    *----------------------------------------------------------------------*
    FORM status_fix_setzen USING
                VALUE(statusLIKE tj02-istat
                VALUE(aktivLIKE c_kreuz.
    * lokale Tabelle fuer Statusfortschreibung
      DATABEGIN OF l_stattab OCCURS 0.
              INCLUDE STRUCTURE jstat.
      DATA  END OF l_stattab.
    *
    * Falls Objektnr. nicht gef#lt. --> Fehlermeldung !!!
      IF qals-objnr EQ space.
        MESSAGE e013(qv).
    *   Fehlende Objektnr.: Problem f#
      ENDIF.
      MOVE status TO l_stattab-stat.
      IF aktiv EQ space.
        MOVE c_kreuz TO l_stattab-inact.
      ENDIF.
    *
      APPEND l_stattab.
    *
      CALL FUNCTION 'STATUS_CHANGE_INTERN'
        EXPORTING
          check_only = space
          objnr      = qals-objnr
        TABLES
          status     = l_stattab.

    ENDFORM.                               " STATUS_FIX_SETZEN

    创建1000屏幕,代码如下:----BEGIN 

    PROCESS BEFORE OUTPUT.

    MODULE %_INIT_PBO.

    MODULE %_PBO_REPORT.

    MODULE %_PF_STATUS.

    MODULE %_END_OF_PBO.

    PROCESS AFTER INPUT.

      MODULE %_BACK AT EXIT-COMMAND.

      MODULE %_INIT_PAI.

    FIELD !PRUEFLOS MODULE %_PRUEFLOS .


    CHAIN.
      FIELD PRUEFLOS .
      MODULE %_END_OF_SCREEN.
      MODULE %_OK_CODE_1000.
    ENDCHAIN.

    ---END

     

    屏幕效果图:

  • 相关阅读:
    波段是金牢记六大诀窍
    zk kafka mariadb scala flink integration
    Oracle 体系结构详解
    图解 Database Buffer Cache 内部原理(二)
    SQL Server 字符集介绍及修改方法演示
    SQL Server 2012 备份与还原详解
    SQL Server 2012 查询数据库中所有表的名称和行数
    SQL Server 2012 查询数据库中表格主键信息
    SQL Server 2012 查询数据库中所有表的索引信息
    图解 Database Buffer Cache 内部原理(一)
  • 原文地址:https://www.cnblogs.com/coderfarmer/p/13408065.html
Copyright © 2011-2022 走看看