10
TABLES : qals , MARA , QPCT , QAVE . TYPE-POOLS : slis . DATA GV_PRUEFLOS TYPE qals - prueflos . TYPES : BEGIN OF GTY_QALS , PRUEFLOS TYPE QPLOS , WERK TYPE WERKS_D , HERKUNFT TYPE QHERK , ENSTEHDAT TYPE QENTST , ERSTELDAT TYPE QDATUMERST , MATNR TYPE MATNR , KTEXTMAT TYPE QKTEXTOBJ , MJAHR TYPE MJAHR , MBLNR TYPE MBLNR , ZEILE TYPE MBLPO , BUDAT TYPE BUDAT , LAGORTVORG TYPE QLGORTVORG , "KTEXTMAT TYPE QKTEXTOBJ, LOSMENGE TYPE QLOSMENGE , MENGENEINH TYPE QLOSMENGEH , END OF GTY_QALS . DATA : GT_QALS TYPE STANDARD TABLE OF GTY_QALS , GS_QALS TYPE GTY_QALS . TYPES : BEGIN OF GTY_QAVE , PRUEFLOS TYPE QPLOS , VCODE TYPE QVCODE , VDATUM TYPE QVEDATUM , END OF GTY_QAVE . DATA : GT_QAVE TYPE STANDARD TABLE OF GTY_QAVE , GS_QAVE TYPE GTY_QAVE . TYPES : BEGIN OF GTY_QPCT , CODE TYPE QCODE , KURZTEXT TYPE QTXT_CODE , END OF GTY_QPCT . DATA : GT_QPCT TYPE STANDARD TABLE OF GTY_QPCT , GS_QPCT TYPE GTY_QPCT . types : begin of gty_qamr , PRUEFLOS type QPLOS ,

qm report

Embed Size (px)

DESCRIPTION

qm

Citation preview

Page 1: qm report

TABLES : qals,         MARA , QPCT , QAVE .TYPE-POOLS:slis.DATA GV_PRUEFLOS TYPE qals-prueflos.TYPES : BEGIN OF GTY_QALS,        PRUEFLOS TYPE QPLOS,        WERK TYPE WERKS_D,        HERKUNFT TYPE QHERK,        ENSTEHDAT TYPE QENTST,        ERSTELDAT TYPE QDATUMERST,        MATNR TYPE MATNR,        KTEXTMAT TYPE QKTEXTOBJ ,        MJAHR TYPE MJAHR,        MBLNR TYPE MBLNR,        ZEILE TYPE MBLPO,        BUDAT TYPE BUDAT,        LAGORTVORG TYPE QLGORTVORG,        "KTEXTMAT TYPE QKTEXTOBJ,        LOSMENGE TYPE QLOSMENGE,        MENGENEINH TYPE QLOSMENGEH,        END OF GTY_QALS. DATA :GT_QALS TYPE STANDARD TABLE OF GTY_QALS,       GS_QALS TYPE GTY_QALS.

 TYPES : BEGIN OF GTY_QAVE,          PRUEFLOS TYPE QPLOS,          VCODE TYPE QVCODE,          VDATUM TYPE QVEDATUM,        END OF GTY_QAVE. DATA : GT_QAVE TYPE STANDARD TABLE OF GTY_QAVE,        GS_QAVE TYPE GTY_QAVE.

 TYPES : BEGIN OF GTY_QPCT,         CODE TYPE QCODE,          KURZTEXT TYPE QTXT_CODE,        END OF GTY_QPCT. DATA : GT_QPCT TYPE STANDARD TABLE OF GTY_QPCT,       GS_QPCT TYPE GTY_QPCT.

types : begin of gty_qamr,        PRUEFLOS type QPLOS,        VORGLFNR  type QLFNKN,        MERKNR type QMERKNRP,        MITTELWERT type QMITTELWRT,        CODE1 type QCODE,        end of gty_qamr.data : gt_qamr type STANDARD TABLE OF gty_qamr,       gs_qamr type gty_qamr.

Page 2: qm report

types : begin of gty_qamv,        PRUEFLOS type QPLOS,        VORGLFNR type QLFNKN,        MERKNR type QMERKNRP,        VERWMERKM type QMERKNR,        KURZTEXT type QMKKURZTXT,      end of gty_qamv.data :gt_qamv type STANDARD TABLE OF gty_qamv,      gs_qamv type gty_qamv.

types : begin of gty_mara,        matnr type MATNR,        MATKL type MATKL,        end of gty_mara.data :gt_mara type STANDARD TABLE OF gty_mara,      gs_mara type gty_mara.

TYPES : BEGIN OF GTY_MICVAL,        PRUEFLOS TYPE QPLOS,        VORGLFNR TYPE QLFNKN,        MERKNR type QMERKNRP,        MITTELWERT type QMITTELWRT,        CODE1 type QCODE,        KURZTEXT type QMKKURZTXT,        end of gty_micval. data :gt_micval type STANDARD TABLE OF gty_micval,       gs_micval type gty_micval,        GS_MICVAL1 TYPE GTY_MICVAL.

TYPES : BEGIN OF GTY_MICPARAM,        PRUEFLOS type QPLOS,        VORGLFNR type QLFNKN,        MERKNR type QMERKNRP,        PHY_APP TYPE QMITTELWRT,        PH TYPE QMITTELWRT,        SO_CONT TYPE QMITTELWRT,        VISCOCITY TYPE QMITTELWRT,       Density TYPE QMITTELWRT,       Ash_Contain TYPE QMITTELWRT,       Purity TYPE QMITTELWRT,       Depth TYPE QMITTELWRT,        Tone TYPE QMITTELWRT,        END OF GTY_MICPARAM.DATA : GT_MICPARAM TYPE TABLE OF GTY_MICPARAM,       GS_MICPARAM TYPE GTY_MICPARAM.

Page 3: qm report

TYPES  : BEGIN OF GTY_FINAL,         ERSTELDAT TYPE QDATUMERST,         MATNR TYPE MATNR,        KTEXTMAT TYPE QKTEXTOBJ,        MBLNR TYPE MBLNR,        PRUEFLOS TYPE QPLOS,        "LOSMENGE TYPE QLOSMENGE,        ENSTEHDAT TYPE QENTST,        LAGORTVORG TYPE QLGORTVORG,        MJAHR TYPE MJAHR,        ZEILE TYPE MBLPO,        BUDAT TYPE BUDAT,        LOSMENGE TYPE QLOSMENGE,        MENGENEINH TYPE QLOSMENGEH,        VCODE TYPE QVCODE,        KURZTEXT  TYPE QTXT_CODE,        VDATUM TYPE QVEDATUM,        PHY_APP TYPE QMITTELWRT,        PH TYPE QMITTELWRT,        SO_CONT TYPE QMITTELWRT,        VISCOCITY TYPE QMITTELWRT,       Density TYPE QMITTELWRT,       Ash_Contain TYPE QMITTELWRT,       Purity TYPE QMITTELWRT,       Depth TYPE QMITTELWRT,        Tone TYPE QMITTELWRT,        END OF GTY_FINAL.   DATA : GT_FINAL TYPE STANDARD TABLE OF GTY_FINAL,          GS_FINAL TYPE GTY_FINAL.

*----------------------------------------------------------------------**// SELECTION-SCREEN DEVELOPMENT                                       **----------------------------------------------------------------------*

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

parameters p_werks type qals-werk OBLIGATORY.  " PlantSELECT-OPTIONS s_isltdt FOR qals-ENSTEHDAT OBLIGATORY NO-EXTENSION.                                                        " Lot Cre .dateSELECT-OPTIONS s_matnr FOR qals-matnr NO-EXTENSION. " MaterialSELECT-OPTIONS s_isltnm FOR qals-prueflos NO-EXTENSION. "Ins Lot noSELECT-OPTIONS S_MATKL FOR MARA-MATKL NO-EXTENSION. " Mat GroupPARAMETERS p_ISLTOG TYPE qals-herkunft OBLIGATORY .      "Lot OriginSELECTION-SCREEN END OF BLOCK b1.

Page 4: qm report

AT SELECTION-SCREEN ON s_isltnm.  PERFORM VAL_INSPECTION_LOT.AT SELECTION-SCREEN ON S_MATNR.  PERFORM VAL_MATERIAL.

start-of-selection.  perform get_data.

*&---------------------------------------------------------------------**&      Form  VAL_INSPECTION_LOT*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*form val_inspection_lot .

SELECT SINGLE prueflos INTO GV_PRUEFLOS          FROM QALS          WHERE prueflos IN S_isltnm.

IF SY-SUBRC NE 0.

MESSAGE 'Please enter the existing Inspection Lot Number' type 'E'.

ENDIF.endform.                    " VAL_INSPECTION_LOT*&---------------------------------------------------------------------**&      Form  VAL_MATERIAL*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*form val_material .

DATA GV_MATNR TYPE MARA-MATNR.

SELECT SINGLE MATNR FROM MARA INTO GV_MATNR WHERE MATNR IN S_MATNR.

  IF SY-SUBRC NE 0.

Page 5: qm report

MESSAGE 'Please enter the existing Material' type 'E'.  ENDIF.

endform.                    " VAL_MATERIAL*&---------------------------------------------------------------------**&      Form  GET_DATA*&---------------------------------------------------------------------**       text*----------------------------------------------------------------------**  -->  p1        text*  <--  p2        text*----------------------------------------------------------------------*form get_data .

select PRUEFLOS WERK HERKUNFT  ENSTEHDAT ERSTELDAT MATNR        mjahr  ZEILE BUDAT MBLNR  LAGORTVORG  KTEXTMAT        LOSMENGE MENGENEINH INTO CORRESPONDING FIELDS OF TABLE                                                       GT_QALS        FROM QALS       WHERE PRUEFLOS IN s_isltnm AND            werk EQ P_WERKS AND            HERKUNFT EQ p_ISLTOG AND            ENSTEHDAT IN s_isltdt AND          MATNR IN s_matnr .

  IF SY-SUBRC = 0.

    select MATNR MATKL from MARA into table gt_mara        where matnr in s_matnr        and MATKL in S_MATKl.

IF S_MATKL  IS NOT INITIAL.

 LOOP AT GT_QALS INTO GS_QALS.   READ TABLE GT_MARA INTO GS_MARA WITH KEY MATNR = GS_QALS-MATNR.   IF SY-SUBRC NE 0.     DELETE GT_MICPARAM FROM GS_MICPARAM .   ENDIF. ENDLOOP.

endif.

  SELECT PRUEFLOS VCODE VDATUM INTO TABLE GT_QAVE          FROM QAVE FOR ALL ENTRIES IN GT_QALS

Page 6: qm report

            WHERE  PRUEFLOS EQ GT_QALS-PRUEFLOS.

   IF SY-SUBRC = 0.

   SELECT CODE KURZTEXT FROM QPCT INTO TABLE GT_QPCT              FOR ALL ENTRIES IN GT_QAVE              WHERE CODE EQ  GT_QAVE-VCODE.   ENDIF.

select PRUEFLOS VORGLFNR MERKNR MITTELWERT CODE1          from qamr into table gt_qamr            for all ENTRIES IN GT_QALS            where PRUEFLOS eq gt_qals-PRUEFLOS.

if sy-subrc = 0.select PRUEFLOS VORGLFNR MERKNR VERWMERKM KURZTEXT        from qamv          into table gt_qamv for all entries in gt_qamr          where PRUEFLOS eq gt_qamr-PRUEFLOS              and VORGLFNR eq gt_qamr-VORGLFNR              and MERKNR eq gt_qamr-MERKNR.

endif.

LOOP AT gt_qamr INTO GS_QAMR.

READ TABLE GT_qamv INTO GS_QAMV WITH KEY PRUEFLOS = GS_QAMR-PRUEFLOS                                         VORGLFNR = GS_QAMR-VORGLFNR                                         MERKNR = GS_QAMR-MERKNR.IF SY-SUBRC = 0.GS_MICVAL-PRUEFLOS =  GS_QAMR-PRUEFLOS.GS_MICVAL-VORGLFNR =  GS_QAMR-VORGLFNR.GS_MICVAL-MERKNR = GS_QAMR-MERKNR.GS_MICVAL-MITTELWERT = GS_QAMR-MITTELWERT.GS_MICVAL-CODE1 = GS_QAMR-CODE1.GS_MICVAL-KURZTEXT = GS_QAMV-KURZTEXT.append gs_micval to gt_micval.clear gs_micval.

ENDIF.ENDLOOP.

delete ADJACENT DUPLICATES FROM gt_micval COMPARING ALL FIELDS.

BREAK HP_PRANGARAO.

Page 7: qm report

  IF gt_micval is not initial.    LOOP AT gt_micval INTO GS_micval.

      CASE gs_micval-KURZTEXT.

        when 'Physical Appearance' OR 'PHYSICAL APPEARANCE'.

           gs_micparam-PHY_APP = gs_micval-MITTELWERT.

          when 'Ph Value' or 'PH VALUE'.            GS_MICPARAM-PH =  gs_micval-MITTELWERT.          WHEN 'Solid Content' OR 'SOLID CONTENT'.            GS_MICPARAM-SO_CONT = GS_MICVAL-MITTELWERT.

          WHEN 'Viscocity' OR 'VISCOCITY'.            GS_MICPARAM-VISCOCITY = GS_MICVAL-MITTELWERT.

         WHEN 'Density' OR 'DENSITY' .             GS_MICPARAM-Density = GS_MICVAL-MITTELWERT.

         WHEN 'Ash Contain' OR 'ASH CONTAIN'.           GS_MICPARAM-Ash_Contain = GS_MICVAL-MITTELWERT.

         WHEN 'Purity'  OR 'PURITY'.            GS_MICPARAM-Purity = GS_MICVAL-MITTELWERT.         WHEN 'Depth' OR 'DEPTH'.            GS_MICPARAM-Depth = GS_MICVAL-MITTELWERT.

          WHEN 'Tone' OR 'TONE'.            GS_MICPARAM-TONE = GS_MICVAL-MITTELWERT.

           ENDCASE.

   AT END OF PRUEFLOS.

     READ TABLE gt_micval INTO GS_MICVAL1 INDEX SY-TABIX.          IF SY-SUBRC = 0.              GS_MICPARAM-PRUEFLOS = GS_MICVAL1-PRUEFLOS.               GS_MICPARAM-VORGLFNR = GS_MICVAL1-VORGLFNR.               GS_MICPARAM-MERKNR = GS_MICVAL1-MERKNR.               APPEND GS_MICPARAM TO GT_MICPARAM.               CLEAR GS_MICPARAM.           ENDIF.    ENDAT.

  ENDLOOP.

   ENDIF.

Page 8: qm report

ENDIF.

""" GET FINAL DATA

LOOP AT GT_MICPARAM  INTO GS_MICPARAM.

READ TABLE GT_QALS INTO GS_QALS WITH KEY                            PRUEFLOS = GS_MICPARAM-PRUEFLOS.IF SY-SUBRC = 0.

  READ TABLE GT_QAVE INTO GS_QAVE WITH KEY                        PRUEFLOS = GS_MICPARAM-PRUEFLOS.  IF SY-SUBRC = 0.

  READ TABLE GT_QPCT INTO GS_QPCT WITH KEY                        CODE = GS_QAVE-VCODE.  ENDIF.

  GS_FINAL-ERSTELDAT = GS_QALS-ERSTELDAT.  GS_FINAL-MATNR = GS_QALS-MATNR.  GS_FINAL-KTEXTMAT = GS_QALS-KTEXTMAT.  GS_FINAL-MBLNR = GS_QALS-MBLNR.  GS_FINAL-PRUEFLOS = GS_QALS-PRUEFLOS.  GS_FINAL-LOSMENGE  = GS_QALS-LOSMENGE .  GS_FINAL-ENSTEHDAT = GS_QALS-ENSTEHDAT.  GS_FINAL-LAGORTVORG = GS_QALS-LAGORTVORG.  GS_FINAL-MJAHR = GS_QALS-MJAHR.  GS_FINAL-ZEILE = GS_QALS-ZEILE.  GS_FINAL-BUDAT = GS_QALS-BUDAT.  GS_FINAL-LOSMENGE = GS_QALS-LOSMENGE.  GS_FINAL-MENGENEINH = GS_QALS-MENGENEINH.  GS_FINAL-VCODE = GS_QAVE-VCODE.  GS_FINAL-VDATUM = GS_QAVE-VDATUM.  GS_FINAL-KURZTEXT = GS_QPCT-KURZTEXT.  GS_FINAL-PHY_APP = GS_MICPARAM-PHY_APP.  GS_FINAL-PH = GS_MICPARAM-PH.  GS_FINAL-SO_CONT = GS_MICPARAM-SO_CONT.  GS_FINAL-VISCOCITY = GS_MICPARAM-VISCOCITY.  GS_FINAL-Density = GS_MICPARAM-Density.  GS_FINAL-Ash_Contain = GS_MICPARAM-Ash_Contain.  GS_FINAL-Purity = GS_MICPARAM-Purity.

Page 9: qm report

  GS_FINAL-Depth = GS_MICPARAM-Depth.  GS_FINAL-Tone = GS_MICPARAM-TONE.append gs_final to gt_final.clear gs_final.

ENDIF.

ENDLOOP.

BREAK HP_PRANGARAO.endform.                    " GET_DATA