‎2008 Apr 29 1:00 PM
In thecode shown below AT NEW and AT END OF events are not fiering if the internal table have the more than one lot either in previous and past for the same material so please tell any way by which the same logic will work if no. of lots will be more than one
LOOP AT LT_MEASUREDVAL3 INTO WA_MEASUREDVAL4.
LV_LINECNT = LV_LINECNT + 1.
WA_MEASUREDVAL5 = WA_MEASUREDVAL4.
CLEAR: WA_PREQALS,WA_PRVQALS.
AT NEW MATNR. " comment AS field 1
CLEAR: WA_INCINSPECTION_3,LV_SAVEFLAG.
SELECT SINGLE MAKTX FROM MAKT INTO WA_INCINSPECTION_3-MAKT
WHERE MATNR EQ WA_MEASUREDVAL5-MATNR
AND SPRAS EQ 'E'.
WA_INCINSPECTION_3-MATNR = WA_MEASUREDVAL5-MATNR.
READ TABLE LT_MATNR_01 INTO WA_MATNR_01 WITH KEY MATNR = WA_MEASUREDVAL5-MATNR.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-MATKL = WA_MATNR_01-MATKL.
ENDIF.
READ TABLE LT_PREQALS INTO WA_PREQALS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-PLNNR = WA_PREQALS-PLNNR.
WA_INCINSPECTION_3-PLNAL = WA_PREQALS-PLNAL.
WA_INCINSPECTION_3-VERID = WA_PREQALS-VERID.
ENDIF.
READ TABLE LT_PRVQALS INTO WA_PRVQALS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-PLNNR = WA_PRVQALS-PLNNR.
WA_INCINSPECTION_3-PLNAL = WA_PRVQALS-PLNAL.
WA_INCINSPECTION_3-VERID = WA_PRVQALS-VERID.
ENDIF.
ENDAT.
AT NEW VORGLFNR. "operation " comment AS field 2
CLEAR LV_SAVEFLAG.
READ TABLE LT_PREQALS INTO WA_PREQALS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
SELECT PLNKN
FROM PLAS
INTO TABLE LT_PLNKN
WHERE PLNTY EQ WA_PREQALS-PLNTY
AND PLNNR EQ WA_PREQALS-PLNNR
AND PLNAL EQ WA_PREQALS-PLNAL
AND LOEKZ NE 'X'.
IF SY-SUBRC EQ 0.
SELECT PLNKN VORNR LTXA1 FROM PLPO
INTO TABLE LT_VORNR
FOR ALL ENTRIES IN LT_PLNKN
WHERE PLNTY EQ WA_PREQALS-PLNTY
AND PLNNR EQ WA_PREQALS-PLNNR
AND PLNKN EQ LT_PLNKN-PLNKN.
IF SY-SUBRC EQ 0.
READ TABLE LT_VORNR INTO WA_VORNR WITH KEY PLNKN = WA_MEASUREDVAL5-VORGLFNR.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-VORNR = WA_VORNR-VORNR.
WA_INCINSPECTION_3-LTXA1 = WA_VORNR-LTXA1.
ELSE.
READ TABLE LT_VORNR INTO WA_VORNR WITH KEY PLNKN = WA_MEASUREDVAL5-DETAILERG.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-VORNR = WA_VORNR-VORNR.
WA_INCINSPECTION_3-LTXA1 = WA_VORNR-LTXA1.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
READ TABLE LT_PRVQALS INTO WA_PRVQALS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
SELECT PLNKN
FROM PLAS
INTO TABLE LT_PLNKN
WHERE PLNTY EQ WA_PRVQALS-PLNTY
AND PLNNR EQ WA_PRVQALS-PLNNR
AND PLNAL EQ WA_PRVQALS-PLNAL
AND LOEKZ NE 'X'.
IF SY-SUBRC EQ 0.
SELECT PLNKN VORNR LTXA1 FROM PLPO
INTO TABLE LT_VORNR
FOR ALL ENTRIES IN LT_PLNKN
WHERE PLNTY EQ WA_PRVQALS-PLNTY
AND PLNNR EQ WA_PRVQALS-PLNNR
AND PLNKN EQ LT_PLNKN-PLNKN.
IF SY-SUBRC EQ 0.
READ TABLE LT_VORNR INTO WA_VORNR WITH KEY PLNKN = WA_MEASUREDVAL5-VORGLFNR.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-VORNR = WA_VORNR-VORNR.
WA_INCINSPECTION_3-LTXA1 = WA_VORNR-LTXA1.
ELSE.
READ TABLE LT_VORNR INTO WA_VORNR WITH KEY PLNKN = WA_MEASUREDVAL5-DETAILERG.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-VORNR = WA_VORNR-VORNR.
WA_INCINSPECTION_3-LTXA1 = WA_VORNR-LTXA1.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDAT.
AT NEW VERWMERKM. " comment AS field 3
CLEAR LV_SAVEFLAG.
MEASURED_CNT = 1.
READ TABLE LT_QAMV INTO WA_QAMV WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS
VORGLFNR = WA_MEASUREDVAL5-VORGLFNR
MERKNR = WA_MEASUREDVAL5-MERKNR.
IF SY-SUBRC EQ 0.
WA_INCINSPECTION_3-KURZTEXT = WA_QAMV-KURZTEXT.
WA_INCINSPECTION_3-MERKNR = WA_QAMV-MERKNR.
ENDIF.
CLEAR MULVALUES.
ENDAT.
AT NEW INDICATOR. " comment AS field 4
CLEAR: PR_MULVALUES,PV_MULVALUES,PR_CNT,PV_CNT,LV_SAVEFLAG.
ENDAT.
IF MEASURED_CNT EQ 1.
CLEAR: WA_CAL_INC13. "kundan
READ TABLE LT_CAL_INC13 INTO WA_CAL_INC13 WITH KEY MATNR = WA_MEASUREDVAL5-MATNR
VORGLFNR = WA_MEASUREDVAL5-VORGLFNR
VERWMERKM = WA_MEASUREDVAL5-VERWMERKM.
CONDENSE WA_MEASUREDVAL5-ORIGINAL_INPUT.
IF WA_MEASUREDVAL5-INDICATOR EQ 'A'. " 'A' stands for Present
PR_MULVALUES = PR_MULVALUES + ( ( WA_CAL_INC13-PR_AVERAGE - WA_MEASUREDVAL5-ORIGINAL_INPUT(8) ) * ( WA_CAL_INC13-PR_AVERAGE - WA_MEASUREDVAL5-ORIGINAL_INPUT(8) ) ).
PR_CNT = PR_CNT + 1.
ELSEIF WA_MEASUREDVAL5-INDICATOR EQ 'B'. " 'B' Stands for Previous
PV_MULVALUES = PV_MULVALUES + ( ( WA_CAL_INC13-PV_AVERAGE - WA_MEASUREDVAL5-ORIGINAL_INPUT(8) ) * ( WA_CAL_INC13-PV_AVERAGE - WA_MEASUREDVAL5-ORIGINAL_INPUT(8) ) ).
PV_CNT = PV_CNT + 1.
ENDIF.
ENDIF.
AT END OF VERWMERKM.
MEASURED_CNT = 0.
LV_NEXTCNT = LV_LINECNT + 1.
READ TABLE LT_MEASUREDVAL3 INTO WA_MEASUREDVAL6 INDEX LV_NEXTCNT.
IF SY-SUBRC EQ 0.
IF WA_MEASUREDVAL5-MATNR EQ WA_MEASUREDVAL6-MATNR AND
WA_MEASUREDVAL5-VORGLFNR EQ WA_MEASUREDVAL6-VORGLFNR AND
WA_MEASUREDVAL5-MERKNR NE WA_MEASUREDVAL6-MERKNR.
*ADDED by ABHISHEK
MEASURED_CNT = 0.
LV_NEXTCNT = LV_LINECNT + 1.
READ TABLE LT_MEASUREDVAL3 INTO WA_MEASUREDVAL6 WITH KEY PRUEFLOS = '130000000358'.
IF SY-SUBRC EQ 0.
IF WA_MEASUREDVAL5-MATNR EQ WA_MEASUREDVAL6-MATNR AND
WA_MEASUREDVAL5-VORGLFNR EQ WA_MEASUREDVAL6-VORGLFNR AND
WA_MEASUREDVAL5-MERKNR EQ WA_MEASUREDVAL6-MERKNR.
*ADDED by ABHISHEK
CLEAR: PV_DEV1. "KUNDAN
LV_SNO = LV_SNO + 1.
WA_INCINSPECTION_3-SNO = LV_SNO. "wa_incinspection_2-sno + 1.
READ TABLE LT_QAMV1 INTO WA_QAMV2 WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS
VORNR = WA_MEASUREDVAL5-VORGLFNR
VERWMERKM = WA_MEASUREDVAL5-VERWMERKM.
READ TABLE LT_PRVQALS TRANSPORTING NO FIELDS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
CLEAR: CPU, CPL.
PV_DEVF = PV_MULVALUES / ( PV_CNT - 1 ).
MOVE PV_DEVF TO LV_INPUT.
PERFORM CONVERSION_EXP_CHAR USING LV_INPUT CHANGING LV_EXPNUMC .
PV_DEV1 = SQRT( LV_EXPNUMC ).
CONDENSE: WA_QAMV2-TOLERANZOB, WA_QAMV2-TOLERANZUN.
IF WA_QAMV2-TOLERANZUN NE SPACE AND WA_QAMV2-TOLERANZOB NE SPACE.
IF PV_DEV1 IS NOT INITIAL. "KUNDAN
CLEAR WA_INCINSPECTION_3-PV_CP.
WA_INCINSPECTION_3-PV_CP = ( WA_QAMV2-TOLERANZOB(8) - WA_QAMV2-TOLERANZUN(8) ) / ( 6 * PV_DEV1 ).
WA_INCINSPECTION_3-PV_CP_C = WA_INCINSPECTION_3-PV_CP.
ENDIF.
ELSE.
IF WA_INCINSPECTION_3-PV_CP IS INITIAL.
WA_INCINSPECTION_3-PV_CP_C = '*'.
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF PV_DEV1 IS NOT INITIAL.
CPU = ( ( WA_QAMV2-TOLERANZOB(8) - WA_CAL_INC13-PV_AVERAGE ) ) / ( 3 * PV_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL.
IF PV_DEV1 IS NOT INITIAL.
CPL = ( WA_CAL_INC13-PV_AVERAGE - WA_QAMV2-TOLERANZUN(8) ) / ( 3 * PV_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL AND WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF NOT CPU IS INITIAL AND
NOT CPL IS INITIAL.
IF CPU < CPL.
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
ELSEIF CPU IS INITIAL.
WA_INCINSPECTION_3-PV_CPK = CPL.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPU.
ENDIF.
ELSE.
IF WA_QAMV2-TOLERANZUN IS INITIAL. " Lower Spec
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSEIF WA_QAMV2-TOLERANZOB IS INITIAL. " Upper Spec
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
ENDIF.
IF CPU < CPL.
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
IF WA_INCINSPECTION_3-PV_CPK IS INITIAL.
IF WA_QAMV2-TOLERANZUN IS INITIAL AND WA_QAMV2-TOLERANZOB IS INITIAL.
WA_INCINSPECTION_3-PV_CPK_C = '*'.
ELSE.
WA_INCINSPECTION_3-PV_CPK_C = WA_INCINSPECTION_3-PV_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PV_CPK_C = WA_INCINSPECTION_3-PV_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PV_CP_C = '**'.
WA_INCINSPECTION_3-PV_CPK_C = '**'.
ENDIF.
READ TABLE LT_PREQALS TRANSPORTING NO FIELDS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
CLEAR: CPU, CPL.
PR_DEVF = PR_MULVALUES / ( PR_CNT - 1 ).
MOVE PR_DEVF TO LV_INPUT.
PERFORM CONVERSION_EXP_CHAR USING LV_INPUT CHANGING LV_EXPNUMC .
PR_DEV1 = SQRT( LV_EXPNUMC ).
CONDENSE: WA_QAMV2-TOLERANZOB, WA_QAMV2-TOLERANZUN.
IF WA_QAMV2-TOLERANZUN NE SPACE AND WA_QAMV2-TOLERANZOB NE SPACE.
IF PR_DEV1 IS NOT INITIAL.
CLEAR WA_INCINSPECTION_3-PR_CP.
WA_INCINSPECTION_3-PR_CP = ( WA_QAMV2-TOLERANZOB(8) - WA_QAMV2-TOLERANZUN(8) ) / ( 6 * PR_DEV1 ).
WA_INCINSPECTION_3-PR_CP_C = WA_INCINSPECTION_3-PR_CP.
ELSE.
WA_INCINSPECTION_3-PR_CP_C = '*'.
ENDIF.
ELSE.
IF WA_INCINSPECTION_3-PR_CP IS INITIAL.
WA_INCINSPECTION_3-PR_CP_C = '*'.
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF PR_DEV1 IS NOT INITIAL.
CPU = ( ( WA_QAMV2-TOLERANZOB(8) - WA_CAL_INC13-PR_AVERAGE ) ) / ( 3 * PR_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL.
IF PR_DEV1 IS NOT INITIAL.
CPL = ( WA_CAL_INC13-PR_AVERAGE - WA_QAMV2-TOLERANZUN(8) ) / ( 3 * PR_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL AND WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF NOT CPU IS INITIAL AND
NOT CPL IS INITIAL.
IF CPU < CPL.
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ELSEIF CPU IS INITIAL.
WA_INCINSPECTION_3-PR_CPK = CPL.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPU.
ENDIF.
ELSE.
IF WA_QAMV2-TOLERANZUN IS INITIAL. " Lower Spec
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSEIF WA_QAMV2-TOLERANZOB IS INITIAL. " Upper Spec
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ENDIF.
IF WA_INCINSPECTION_3-PR_CPK IS INITIAL.
IF WA_QAMV2-TOLERANZUN IS INITIAL AND WA_QAMV2-TOLERANZOB IS INITIAL.
WA_INCINSPECTION_3-PR_CPK_C = '*'.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = WA_INCINSPECTION_3-PR_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = WA_INCINSPECTION_3-PR_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = '**'.
WA_INCINSPECTION_3-PR_CP_C = '**'.
ENDIF.
CLEAR: SUM1,CNT1,MULVALUES,WA_QAMV2,CPU, CPL. "kundan
APPEND WA_INCINSPECTION_3 TO LT_INCINSPECTION_3.
CLEAR: MEASURED_CNT,CNT1,SUM1,AVG,WA_INCINSPECTION_3-PR_CP,WA_INCINSPECTION_3-PV_CP,
WA_INCINSPECTION_3-PR_CPK,WA_INCINSPECTION_3-PV_CPK,WA_INCINSPECTION_3-PR_CP_C,
WA_INCINSPECTION_3-PV_CP_C,WA_INCINSPECTION_3-PR_CPK_C,WA_INCINSPECTION_3-PV_CPK_C.
LV_SAVEFLAG = 1.
ELSE.
LV_SAVEFLAG = 0.
ENDIF.
ENDIF.
ENDAT.
AT END OF VORGLFNR. "1
IF LV_SAVEFLAG EQ 0.
MEASURED_CNT = 0.
LV_NEXTCNT = LV_LINECNT + 1.
READ TABLE LT_MEASUREDVAL3 INTO WA_MEASUREDVAL6 INDEX LV_NEXTCNT.
IF SY-SUBRC EQ 0.
IF WA_MEASUREDVAL5-MATNR EQ WA_MEASUREDVAL6-MATNR AND
WA_MEASUREDVAL5-VORGLFNR NE WA_MEASUREDVAL6-VORGLFNR.
CLEAR: PV_DEV1. "KUNDAN
LV_SNO = LV_SNO + 1.
WA_INCINSPECTION_3-SNO = LV_SNO. "wa_incinspection_2-sno + 1.
READ TABLE LT_QAMV1 INTO WA_QAMV2 WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS
VORNR = WA_MEASUREDVAL5-VORGLFNR
VERWMERKM = WA_MEASUREDVAL5-VERWMERKM.
READ TABLE LT_PRVQALS TRANSPORTING NO FIELDS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
CLEAR: CPU, CPL.
PV_DEVF = PV_MULVALUES / ( PV_CNT - 1 ).
MOVE PV_DEVF TO LV_INPUT.
PERFORM CONVERSION_EXP_CHAR USING LV_INPUT CHANGING LV_EXPNUMC .
PV_DEV1 = SQRT( LV_EXPNUMC ).
CONDENSE: WA_QAMV2-TOLERANZOB, WA_QAMV2-TOLERANZUN.
IF WA_QAMV2-TOLERANZUN NE SPACE AND WA_QAMV2-TOLERANZOB NE SPACE.
IF PV_DEV1 IS NOT INITIAL.
CLEAR WA_INCINSPECTION_3-PV_CP.
WA_INCINSPECTION_3-PV_CP = ( WA_QAMV2-TOLERANZOB(8) - WA_QAMV2-TOLERANZUN(8) ) / ( 6 * PV_DEV1 ).
WA_INCINSPECTION_3-PV_CP_C = WA_INCINSPECTION_3-PV_CP.
ENDIF.
ELSE.
IF WA_INCINSPECTION_3-PV_CP IS INITIAL.
WA_INCINSPECTION_3-PV_CP_C = '*'.
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF PV_DEV1 IS NOT INITIAL.
CPU = ( ( WA_QAMV2-TOLERANZOB(8) - WA_CAL_INC13-PV_AVERAGE ) ) / ( 3 * PV_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL.
IF PV_DEV1 IS NOT INITIAL.
CPL = ( WA_CAL_INC13-PV_AVERAGE - WA_QAMV2-TOLERANZUN(8) ) / ( 3 * PV_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL AND WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF NOT CPU IS INITIAL AND
NOT CPL IS INITIAL.
IF CPU < CPL.
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
ELSEIF CPU IS INITIAL.
WA_INCINSPECTION_3-PV_CPK = CPL.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPU.
ENDIF.
ELSE.
IF WA_QAMV2-TOLERANZUN IS INITIAL. " Lower Spec
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSEIF WA_QAMV2-TOLERANZOB IS INITIAL. " Upper Spec
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
ENDIF.
IF WA_INCINSPECTION_3-PV_CPK IS INITIAL.
IF WA_QAMV2-TOLERANZUN IS INITIAL AND WA_QAMV2-TOLERANZOB IS INITIAL.
WA_INCINSPECTION_3-PV_CPK_C = '*'.
ELSE.
WA_INCINSPECTION_3-PV_CPK_C = WA_INCINSPECTION_3-PV_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PV_CPK_C = WA_INCINSPECTION_3-PV_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PV_CP_C = '**'.
WA_INCINSPECTION_3-PV_CPK_C = '**'.
ENDIF.
READ TABLE LT_PREQALS TRANSPORTING NO FIELDS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
IF SY-SUBRC EQ 0.
BREAK SISL.
CLEAR: CPU, CPL.
added by abhishek
IF PR_CNT EQ 1.
PR_DEVF = PR_MULVALUES / PR_CNT .
ELSE.
PR_DEVF = PR_MULVALUES / ( PR_CNT - 1 ).
ENDIF.
added by abhishek
PR_DEVF = PR_MULVALUES / ( PR_CNT - 1 ).
MOVE PR_DEVF TO LV_INPUT.
PERFORM CONVERSION_EXP_CHAR USING LV_INPUT CHANGING LV_EXPNUMC .
PR_DEV1 = SQRT( LV_EXPNUMC ).
CONDENSE: WA_QAMV2-TOLERANZOB, WA_QAMV2-TOLERANZUN.
IF WA_QAMV2-TOLERANZUN NE SPACE AND WA_QAMV2-TOLERANZOB NE SPACE.
IF PR_DEV1 IS NOT INITIAL.
CLEAR WA_INCINSPECTION_3-PR_CP.
WA_INCINSPECTION_3-PR_CP = ( WA_QAMV2-TOLERANZOB(8) - WA_QAMV2-TOLERANZUN(8) ) / ( 6 * PR_DEV1 ).
WA_INCINSPECTION_3-PR_CP_C = WA_INCINSPECTION_3-PR_CP.
ELSE.
WA_INCINSPECTION_3-PR_CP_C = '*'.
ENDIF.
ELSE.
IF WA_INCINSPECTION_3-PR_CP IS INITIAL.
WA_INCINSPECTION_3-PR_CP_C = '*'.
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF PR_DEV1 IS NOT INITIAL.
CPU = ( ( WA_QAMV2-TOLERANZOB(8) - WA_CAL_INC13-PR_AVERAGE ) ) / ( 3 * PR_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL.
IF PR_DEV1 IS NOT INITIAL.
CPL = ( WA_CAL_INC13-PR_AVERAGE - WA_QAMV2-TOLERANZUN(8) ) / ( 3 * PR_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL AND WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF NOT CPU IS INITIAL AND
NOT CPL IS INITIAL.
IF CPU < CPL.
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ELSEIF CPU IS INITIAL.
WA_INCINSPECTION_3-PR_CPK = CPL.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPU.
ENDIF.
ELSE.
IF WA_QAMV2-TOLERANZUN IS INITIAL. " Lower Spec
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSEIF WA_QAMV2-TOLERANZOB IS INITIAL. " Upper Spec
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ENDIF.
IF WA_INCINSPECTION_3-PR_CPK IS INITIAL.
IF WA_QAMV2-TOLERANZUN IS INITIAL AND WA_QAMV2-TOLERANZOB IS INITIAL.
WA_INCINSPECTION_3-PR_CPK_C = '*'.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = WA_INCINSPECTION_3-PR_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = WA_INCINSPECTION_3-PR_CPK.
ENDIF.
IF CPU < CPL.
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = '**'.
WA_INCINSPECTION_3-PR_CP_C = '**'.
ENDIF.
CLEAR: SUM1,CNT1,MULVALUES, WA_QAMV2,CPU,CPL. "kundan
APPEND WA_INCINSPECTION_3 TO LT_INCINSPECTION_3. "kundan
CLEAR: MEASURED_CNT,CNT1,SUM1,AVG,WA_INCINSPECTION_3-PR_CP,WA_INCINSPECTION_3-PV_CP,
WA_INCINSPECTION_3-PR_CPK,WA_INCINSPECTION_3-PV_CPK,WA_INCINSPECTION_3-PR_CP_C,
WA_INCINSPECTION_3-PV_CP_C,WA_INCINSPECTION_3-PR_CPK_C,WA_INCINSPECTION_3-PV_CPK_C.
LV_SAVEFLAG = 1.
ELSE.
LV_SAVEFLAG = 0.
ENDIF.
ENDIF.
ENDIF.
ENDAT.
AT END OF MATNR.
IF LV_SAVEFLAG = 0.
CLEAR: PV_DEV1. "KUNDAN
LV_SNO = LV_SNO + 1.
WA_INCINSPECTION_3-SNO = LV_SNO. "wa_incinspection_3-sno + 1.
READ TABLE LT_QAMV1 INTO WA_QAMV2 WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS
VORNR = WA_MEASUREDVAL5-VORGLFNR
VERWMERKM = WA_MEASUREDVAL5-VERWMERKM.
READ TABLE LT_PRVQALS TRANSPORTING NO FIELDS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
READ TABLE LT_PRVQALS TRANSPORTING NO FIELDS WITH KEY MATNR = WA_MEASUREDVAL5-MATNR.
IF SY-SUBRC EQ 0.
CLEAR: CPU, CPL.
PV_DEVF = PV_MULVALUES / ( PV_CNT - 1 ).
MOVE PV_DEVF TO LV_INPUT.
PERFORM CONVERSION_EXP_CHAR USING LV_INPUT CHANGING LV_EXPNUMC .
PV_DEV1 = SQRT( LV_EXPNUMC ).
CONDENSE: WA_QAMV2-TOLERANZOB, WA_QAMV2-TOLERANZUN.
IF WA_QAMV2-TOLERANZUN NE SPACE AND WA_QAMV2-TOLERANZOB NE SPACE.
IF PV_DEV1 IS NOT INITIAL.
CLEAR WA_INCINSPECTION_3-PV_CP.
WA_INCINSPECTION_3-PV_CP = ( WA_QAMV2-TOLERANZOB(8) - WA_QAMV2-TOLERANZUN(8) ) / ( 6 * PV_DEV1 ).
WA_INCINSPECTION_3-PV_CP_C = WA_INCINSPECTION_3-PV_CP.
ENDIF.
ELSE.
IF WA_INCINSPECTION_3-PV_CP IS INITIAL.
WA_INCINSPECTION_3-PV_CP_C = '*'.
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF PV_DEV1 IS NOT INITIAL.
CPU = ( ( WA_QAMV2-TOLERANZOB(8) - WA_CAL_INC13-PV_AVERAGE ) ) / ( 3 * PV_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL.
IF PV_DEV1 IS NOT INITIAL.
CPL = ( WA_CAL_INC13-PV_AVERAGE - WA_QAMV2-TOLERANZUN(8) ) / ( 3 * PV_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL AND WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF NOT CPU IS INITIAL AND
NOT CPL IS INITIAL.
IF CPU < CPL.
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
ELSEIF CPU IS INITIAL.
WA_INCINSPECTION_3-PV_CPK = CPL.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPU.
ENDIF.
ELSE.
IF WA_QAMV2-TOLERANZUN IS INITIAL. " Lower Spec
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSEIF WA_QAMV2-TOLERANZOB IS INITIAL. " Upper Spec
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
ENDIF.
IF CPU < CPL.
WA_INCINSPECTION_3-PV_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PV_CPK = CPL.
ENDIF.
IF WA_INCINSPECTION_3-PV_CPK IS INITIAL.
IF WA_QAMV2-TOLERANZUN IS INITIAL AND WA_QAMV2-TOLERANZOB IS INITIAL.
WA_INCINSPECTION_3-PV_CPK_C = '*'.
ELSE.
WA_INCINSPECTION_3-PV_CPK_C = WA_INCINSPECTION_3-PV_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PV_CPK_C = WA_INCINSPECTION_3-PV_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PV_CP_C = '**'.
WA_INCINSPECTION_3-PV_CPK_C = '**'.
ENDIF.
READ TABLE LT_PREQALS TRANSPORTING NO FIELDS WITH KEY PRUEFLOS = WA_MEASUREDVAL5-PRUEFLOS.
READ TABLE LT_PREQALS TRANSPORTING NO FIELDS WITH KEY MATNR = WA_MEASUREDVAL5-MATNR.
IF SY-SUBRC EQ 0.
BREAK SISL.
CLEAR: CPU, CPL.
PR_DEVF = PR_MULVALUES / ( PR_CNT - 1 ).
MOVE PR_DEVF TO LV_INPUT.
PERFORM CONVERSION_EXP_CHAR USING LV_INPUT CHANGING LV_EXPNUMC .
PR_DEV1 = SQRT( LV_EXPNUMC ).
CONDENSE: WA_QAMV2-TOLERANZOB, WA_QAMV2-TOLERANZUN.
IF WA_QAMV2-TOLERANZUN NE SPACE AND WA_QAMV2-TOLERANZOB NE SPACE.
IF PR_DEV1 IS NOT INITIAL.
CLEAR WA_INCINSPECTION_3-PR_CP.
WA_INCINSPECTION_3-PR_CP = ( WA_QAMV2-TOLERANZOB(8) - WA_QAMV2-TOLERANZUN(8) ) / ( 6 * PR_DEV1 ).
WA_INCINSPECTION_3-PR_CP_C = WA_INCINSPECTION_3-PR_CP.
ELSE.
WA_INCINSPECTION_3-PR_CP_C = '*'.
ENDIF.
ELSE.
IF WA_INCINSPECTION_3-PR_CP IS INITIAL.
WA_INCINSPECTION_3-PR_CP_C = '*'.
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF PR_DEV1 IS NOT INITIAL.
CPU = ( ( WA_QAMV2-TOLERANZOB(8) - WA_CAL_INC13-PR_AVERAGE ) ) / ( 3 * PR_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL.
IF PR_DEV1 IS NOT INITIAL.
CPL = ( WA_CAL_INC13-PR_AVERAGE - WA_QAMV2-TOLERANZUN(8) ) / ( 3 * PR_DEV1 ).
ENDIF.
ENDIF.
IF WA_QAMV2-TOLERANZUN IS NOT INITIAL AND WA_QAMV2-TOLERANZOB IS NOT INITIAL.
IF NOT CPU IS INITIAL AND NOT CPL IS INITIAL.
IF CPU < CPL.
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ELSEIF CPU IS INITIAL.
WA_INCINSPECTION_3-PR_CPK = CPL.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPU.
ENDIF.
ELSE.
IF WA_QAMV2-TOLERANZUN IS INITIAL. " Lower Spec
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSEIF WA_QAMV2-TOLERANZOB IS INITIAL. " Upper Spec
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ENDIF.
IF WA_INCINSPECTION_3-PR_CPK IS INITIAL.
IF WA_QAMV2-TOLERANZUN IS INITIAL AND WA_QAMV2-TOLERANZOB IS INITIAL.
WA_INCINSPECTION_3-PR_CPK_C = '*'.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = WA_INCINSPECTION_3-PR_CPK.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = WA_INCINSPECTION_3-PR_CPK.
ENDIF.
IF CPU < CPL.
WA_INCINSPECTION_3-PR_CPK = CPU.
ELSE.
WA_INCINSPECTION_3-PR_CPK = CPL.
ENDIF.
ELSE.
WA_INCINSPECTION_3-PR_CPK_C = '**'.
WA_INCINSPECTION_3-PR_CP_C = '**'.
ENDIF.
CLEAR: SUM1,CNT1,MULVALUES, WA_QAMV2,CPU,CPL. "kundan
APPEND WA_INCINSPECTION_3 TO LT_INCINSPECTION_3. "kundan
CLEAR: MEASURED_CNT,CNT1,SUM1,AVG,WA_INCINSPECTION_3-PR_CP,WA_INCINSPECTION_3-PV_CP,
WA_INCINSPECTION_3-PR_CPK,WA_INCINSPECTION_3-PV_CPK,WA_INCINSPECTION_3-PR_CP_C,WA_INCINSPECTION_3-PV_CP_C
, WA_INCINSPECTION_3-PR_CPK_C,WA_INCINSPECTION_3-PV_CPK_C.
ENDIF.
ENDAT.
CLEAR: WA_MEASUREDVAL4. " added by abhishek
clear WA_INCINSPECTION_3.
ENDLOOP.
‎2008 Apr 29 1:04 PM
Just after each At.. statement, add the foll chk :
if sy-tabix <>1.
.
.
.
.endif.
this will avoid going into the event for the first time and solve your query.
Let me know if this helped.
Thanks,
Pranjal.
‎2008 Apr 29 1:07 PM
hi,
it is not clear if you have used SORT statment before the loop( ie before using control break statement).
sort by the key which u are using for control break statement.
regards,
madhumitha