‎2008 Aug 26 7:20 AM
hi all,
in table control update, edit, delete
please give me the solution
in pai
where i can write
module
regards
‎2008 Aug 26 7:23 AM
‎2008 Aug 26 7:28 AM
&----
*& Include ZPPCONFI01
&----
&----
*& Module USER_COMMAND_9100 INPUT
&----
text
----
module USER_COMMAND_9100 input.
CASE OK_CODE.
WHEN 'FCAST'.
*&& CASTING
if sy-uname = 'PTEAM' .
CALL SCREEN 9200.
else.
message 'No Autorization' type 'I'.
endif.
CLEAR OK_CODE.
*&& INSPECTION
WHEN 'FINSP'.
if sy-uname = 'PTEAM' .
CALL SCREEN 9300.
else.
message 'No Autorization' type 'I'.
endif.
CLEAR OK_CODE.
WHEN 'FGLAZ'.
if sy-uname = 'PTEAM' .
CALL SCREEN 9400.
else.
message 'No Autorization' type 'I'.
endif.
CLEAR OK_CODE.
WHEN 'FMOUL'.
if sy-uname = 'PTEAM' .
CALL SCREEN 9500.
else.
message 'No Autorization' type 'I'.
endif.
CLEAR OK_CODE.
when 'BACK'.
CLEAR : I_TAB, I_TAB1.
REFRESH : I_TAB1.
leave program.
ENDCASE.
endmodule. " USER_COMMAND_9100 INPUT
&----
*& Module USER_COMMAND_9200 INPUT
&----
text
----
module USER_COMMAND_9200 input.
CASE OK_CODE1.
WHEN 'GO'.
*ROUTINE GETDATA
PERFORM GETDATA.
CLEAR OK_CODE1.
*&& BACK
when 'CANCEL'.
leave program.
WHEN 'BACK'.
CLEAR : I_TAB, I_TAB1,AFKO-PLNBEZ,ZMATKL,T001W-WERKS,AFKO-GSTRP,flag,count,qtyflag.
REFRESH : I_TAB1.
LEAVE TO SCREEN 9100.
*&& SAVE INSERT DATA TO ZPPT_CONFIRM
WHEN 'SAVE'.
data : co type C,
del type c.
LOOP AT I_TAB1.
IF I_TAB1-LMNGA IS NOT INITIAL OR
I_TAB1-LMNGA1 IS NOT INITIAL. "OR
I_TAB1-XMNGA IS NOT INITIAL.
if I_TAB1-EMPNO <> space and I_TAB1-EMPNO+0(1) <> 'P'.
MESSAGE I991(ZMESSAGE) with 'ENTER INSPECTOR NUMBER at Line' sy-tabix.
continue.
endif.
clear : v_charg.
SELECT single CHARG FROM MCHB into v_charg
WHERE LGORT = '1080'
AND LVORM <> 'X'
AND CHARG = I_TAB1-CHARG.
if sy-subrc <> 0.
Message 'Enter correct batch' type 'W'.
continue.
endif.
IF I_TAB1-LMNGA IS NOT INITIAL AND
I_TAB1-CHARG IS INITIAL.
MESSAGE 'Enter Batch' TYPE 'S'.
ELSE.
*&& ACTIVITY 10
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '103'. "MRP CONTROLLER
ZPPT_CONFIRM-VORNR = '0010'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR. "ORDER NO
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH23'. "ORDER TYPE
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ. "MATERIAL
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA. "MOULD FILL
ZPPT_CONFIRM-GRUND = I_TAB1-GRUND. "reason for scrap
ZPPT_CONFIRM-ZSUPNAME = SNAME. "supervioser name
ZPPT_CONFIRM-CHARG = I_TAB1-CHARG. "batch
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED. "PRODUCT SCHEDULER
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
sno = sno + 1.
ZPPT_CONFIRM-sno = sno.
INSERT ZPPT_CONFIRM.
CLEAR ZPPT_CONFIRM.
*&& ACTIVITY 20
if I_TAB1-XMNGA1 <> space.
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '103'.
ZPPT_CONFIRM-VORNR = '0020'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH23'.
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA1. "SCARP
if I_TAB1-XMNGA1 is NOT INITIAL.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
ZPPT_CONFIRM-GRUND = '0001'. "reason for scrap
CO = 'X'.
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME.
ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED.
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
sno = sno + 1.
ZPPT_CONFIRM-sno = sno.
INSERT ZPPT_CONFIRM.
CLEAR ZPPT_CONFIRM.
endif.
if I_TAB1-XMNGA2 <> space.
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '103'.
ZPPT_CONFIRM-VORNR = '0020'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH23'.
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA2. "SCARP
if I_TAB1-XMNGA2 is NOT INITIAL.
ZPPT_CONFIRM-GRUND = '0002'. "reason for scrap
if co <> 'X'.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
co = 'X'.
endif.
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME.
ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED.
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
sno = sno + 1.
ZPPT_CONFIRM-sno = sno.
INSERT ZPPT_CONFIRM.
CLEAR ZPPT_CONFIRM.
endif.
if I_TAB1-XMNGA3 <> space.
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '103'.
ZPPT_CONFIRM-VORNR = '0020'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH23'.
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA3. "SCARP
if I_TAB1-XMNGA3 is NOT INITIAL.
ZPPT_CONFIRM-GRUND = '0003'. "reason for scrap
if co <> 'X'.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
co = 'X'.
endif.
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME.
ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED.
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
sno = sno + 1.
ZPPT_CONFIRM-sno = sno.
INSERT ZPPT_CONFIRM.
CLEAR ZPPT_CONFIRM.
endif.
if I_TAB1-XMNGA4 <> space.
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '103'.
ZPPT_CONFIRM-VORNR = '0020'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR.
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH23'.
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ.
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA4. "SCARP
if I_TAB1-XMNGA4 is NOT INITIAL.
ZPPT_CONFIRM-GRUND = '0004'. "reason for scrap
if co <> 'X'.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA1. "CARRYOUT
co = 'X'.
endif.
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME.
ZPPT_CONFIRM-CHARG = I_TAB1-CHARG.
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED.
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
sno = sno + 1.
ZPPT_CONFIRM-sno = sno.
INSERT ZPPT_CONFIRM.
CLEAR ZPPT_CONFIRM.
endif.
IF SY-SUBRC = 0.
DELETE TABLE I_TAB1 FROM I_TAB1.
ENDIF.
CLEAR ZPPT_CONFIRM.
ENDIF.
ENDIF.
ENDLOOP.
CLEAR OK_CODE1.
ENDCASE.
endmodule. " USER_COMMAND_9200 INPUT
&----
*& Form GETDATA
&----
text
----
--> p1 text
<-- p2 text
----
form GETDATA .
refresh i_tab1.
V_DATE = AFKO-GSTRP.
SELECT SINGLE FEVOR ZHODNO FROM ZPP_SUP_MRP INTO (V_PRDSCHED, V_ZHODNO)
WHERE ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
if sy-subrc = 0.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = V_DATE
IMPORTING
EV_MONTH_BEGIN_DATE = sdate
EV_MONTH_END_DATE = edate.
SELECT SINGLE ENAME FROM PA0001 INTO SNAME WHERE PERNR = ZPP_SUP_MRP-ZSUPNO
AND ENDDA = '99991231'.
IF AFKO-PLNBEZ IS NOT INITIAL.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AAUFNR = BAUFNR
JOIN AUFK AS C ON
AAUFNR = CAUFNR
JOIN JEST AS D ON
COBJNR = DOBJNR
WHERE A~FEVOR = V_PRDSCHED
AND A~PLNBEZ = AFKO-PLNBEZ
AND A~DISPO = '103'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH23'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
IF SY-SUBRC = 0.
ccontrol-lines = sy-dbcnt.
LOOP AT I_TAB1.
SELECT SINGLE WGBEZ FROM T023T INTO I_TAB1-WGBEZ
WHERE MATKL = I_TAB1-PLNBEZ+0(7)
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
MODIFY I_TAB1 FROM I_TAB1.
CLEAR I_TAB1.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AAUFNR = BAUFNR
JOIN AUFK AS C ON
AAUFNR = CAUFNR
JOIN JEST AS D ON
COBJNR = DOBJNR
WHERE A~FEVOR = V_PRDSCHED
AND A~DISPO = '103'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH23'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
IF SY-SUBRC = 0.
ccontrol-lines = sy-dbcnt.
LOOP AT I_TAB1.
SELECT SINGLE WGBEZ FROM T023T INTO I_TAB1-WGBEZ
WHERE MATKL = I_TAB1-PLNBEZ+0(7)
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
MODIFY I_TAB1 FROM I_TAB1.
CLEAR I_TAB1.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
endif.
sort i_tab1 by plnbez.
endform. " GETDATA
&----
*& Module F4HELPONCHARG INPUT
&----
text
----
module F4HELPONCHARG input.
CLEAR : V_MATNR, V_STEPL, V_STLNR, V_IDNRK.
CLEAR : C_TOPLINE.
C_TOPLINE = CCONTROL-TOP_LINE - 1.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
POVSTEPL = v_stepl
EXCEPTIONS
STEPL_NOT_FOUND = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
v_stepl = v_stepl + C_TOPLINE.
READ TABLE I_TAB1 INDEX v_stepl.
*
IF SY-SUBRC = 0.
SELECT SINGLE STLNR FROM AFKO INTO V_STLNR
WHERE AUFNR = I_TAB1-AUFNR.
IF SY-SUBRC = 0.
V_MATNR = I_TAB1-PLNBEZ+0(7).
CONCATENATE V_MATNR '%' INTO V_MATNR.
SELECT SINGLE IDNRK FROM STPO INTO V_IDNRK
WHERE STLNR = V_STLNR
AND IDNRK LIKE V_MATNR.
IF SY-SUBRC = 0.
SELECT CHARG FROM MCHB INTO TABLE I_BATCH
WHERE MATNR LIKE V_IDNRK
AND LGORT = '1080'
AND WERKS = T001W-WERKS
AND LVORM <> 'X'.
ENDIF.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'I_TAB-CHARG'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'CHARG'
STEPL = 0
WINDOW_TITLE = 'BATCH'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = I_BATCH
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
endmodule. " F4HELPONCHARG INPUT
&----
*& Module F4HELPONGRUND INPUT
&----
text
----
module F4HELPONGRUND input.
SELECT GRUND GRDTX FROM TRUGT
INTO CORRESPONDING FIELDS OF TABLE I_TRUG
WHERE WERKS = T001W-WERKS
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'I_TAB-GRUND'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'GRUND'
STEPL = 1
WINDOW_TITLE = 'Variance'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = I_TRUG
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
endmodule. " F4HELPONGRUND INPUT
&----
*& Module MOVE_DATA_TO_INTERNALTAB INPUT
&----
text
----
module MOVE_DATA_TO_INTERNALTAB input.
CLEAR I_TAB1.
CLEAR ZWERKS_HR.
IF T001W-WERKS = '1102'.
ZWERKS_HR = '1200'.
ENDIF.
if I_TAB-EMPNO <> space and I_TAB-EMPNO+0(1) <> 'P'.
MESSAGE I991(ZMESSAGE) with 'ENTER POTTER NUMBER'.
***BREAK-POINT.
FLAG = 'X'.
COUNT = ( CCONTROL-CURRENT_LINE - CCONTROL-Top_line ) + 1.
continue.
endif.
IF I_TAB-EMPNO IS NOT INITIAL.
SELECT SINGLE ENAME FROM PA0001 INTO I_TAB-ENAME
WHERE PERNR = I_TAB-EMPNO.
SELECT SINGLE A~ENAME
A~PERNR
A~WERKS
B~USRID
INTO CORRESPONDING FIELDS OF TABLE I_FINAL
INTO (I_TAB-ENAME,I_TAB-pernr)
FROM PA0001 AS A
JOIN PA0105 AS B ON APERNR = BPERNR
WHERE B~USRID <> SPACE
AND B~USRID = I_TAB-EMPNO
AND A~endda = '99991231'
AND A~WERKS = ZWERKS_HR
AND ( B~SUBTY = 'POTT' OR
B~SUBTY = 'INSP' OR
B~SUBTY = 'GLAZ' OR
B~SUBTY = 'STOP' OR
B~SUBTY = 'SORT' ).
IF SY-SUBRC <> 0.
clear : I_TAB-ENAME,I_TAB-pernr.
ENDIF.
ENDIF.
MOVE-CORRESPONDING I_TAB TO I_TAB1.
MODIFY I_TAB1 FROM I_TAB1 INDEX CCONTROL-CURRENT_LINE.
endmodule. " MOVE_DATA_TO_INTERNALTAB INPUT
&----
*& Module USER_COMMAND_9300 INPUT
&----
text
----
module USER_COMMAND_9300 input.
CASE OK_CODE2.
*&& GET DATA FOR INSPECTION
WHEN 'GO'.
PERFORM GETINSDATA.
CLEAR OK_CODE2.
*&& BACK
WHEN 'BACK'.
CLEAR : I_TAB, I_TAB1,AFKO-PLNBEZ,ZMATKL,T001W-WERKS,
AFKO-GSTRP,PA0105-USRID,FLAG,COUNT,COUNT1.
REFRESH : I_TAB1.
LEAVE TO SCREEN 9100.
*&& SAVE INSERT DATA TO ZPPT_CONFIRM
WHEN 'SAVE'.
LOOP AT I_TAB1.
IF I_TAB1-LMNGA IS NOT INITIAL OR
I_TAB1-XMNGA IS NOT INITIAL.
if I_TAB1-EMPNO <> space and I_TAB1-EMPNO+0(1) <> 'I'.
MESSAGE I991(ZMESSAGE) with 'ENTER INSPECTOR NUMBER at Line' sy-tabix.
continue.
endif.
*&& ACTIVITY 10
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '110'. "MRP CONTROLLER
ZPPT_CONFIRM-VORNR = '0010'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR. "ORDER NO
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH24'. "ORDER TYPE
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ. "MATERIAL
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-rcpts = I_TAB1-rcpts.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA. "MOULD FILL
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA. "SCRAP
if I_TAB1-XMNGA is NOT INITIAL.
ZPPT_CONFIRM-GRUND = I_TAB1-GRUND. "reason for scrap
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME. "supervioser name
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED. "PRODUCT SCHEDULER
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
INSERT ZPPT_CONFIRM.
IF SY-SUBRC = 0.
DELETE TABLE I_TAB1 FROM I_TAB1.
ENDIF.
CLEAR ZPPT_CONFIRM.
ENDIF.
ENDLOOP.
CLEAR : OK_CODE2.
ENDCASE.
endmodule. " USER_COMMAND_9300 INPUT
&----
*& Form GETINSDATA
&----
text
----
--> p1 text
<-- p2 text
----
form GETINSDATA .
refresh i_tab1.
V_DATE = AFKO-GSTRP.
SELECT SINGLE FEVOR ZHODNO FROM ZPP_SUP_MRP INTO (V_PRDSCHED, V_ZHODNO)
WHERE ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
*
if sy-subrc = 0.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = V_DATE
IMPORTING
EV_MONTH_BEGIN_DATE = sdate
EV_MONTH_END_DATE = edate.
SELECT SINGLE ENAME FROM PA0001 INTO SNAME WHERE PERNR = ZPP_SUP_MRP-ZSUPNO
AND ENDDA = '99991231'.
IF AFKO-PLNBEZ IS NOT INITIAL.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AAUFNR = BAUFNR
JOIN AUFK AS C ON
AAUFNR = CAUFNR
JOIN JEST AS D ON
COBJNR = DOBJNR
WHERE
A~PLNBEZ = AFKO-PLNBEZ
AND A~DISPO = '110'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH24'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
IF SY-SUBRC = 0.
icontrol-lines = sy-dbcnt.
LOOP AT I_TAB1.
SELECT SINGLE WGBEZ FROM T023T INTO I_TAB1-WGBEZ
WHERE MATKL = I_TAB1-PLNBEZ+0(7)
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
MODIFY I_TAB1 FROM I_TAB1.
CLEAR I_TAB1.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AAUFNR = BAUFNR
JOIN AUFK AS C ON
AAUFNR = CAUFNR
JOIN JEST AS D ON
COBJNR = DOBJNR
WHERE
A~FEVOR = V_PRDSCHED
A~DISPO = '110'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH24'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
IF SY-SUBRC = 0.
icontrol-lines = sy-dbcnt.
LOOP AT I_TAB1.
SELECT SINGLE WGBEZ FROM T023T INTO I_TAB1-WGBEZ
WHERE MATKL = I_TAB1-PLNBEZ+0(7)
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
MODIFY I_TAB1 FROM I_TAB1.
CLEAR I_TAB1.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
endif.
sort i_tab1 by plnbez.
endform. " GETINSDATA
&----
*& Module USER_COMMAND_9400 INPUT
&----
text
----
module USER_COMMAND_9400 input.
CASE OK_CODE3.
*&& GET DATA FOR INSPECTION
WHEN 'GO'.
PERFORM GETGLADATA.
CLEAR OK_CODE3.
*&& BACK
WHEN 'BACK'.
CLEAR : I_TAB, I_TAB1,AFKO-PLNBEZ,ZMATKL,T001W-WERKS,
AFKO-GSTRP,PA0105-USRID,flag,count.
REFRESH : I_TAB1.
LEAVE TO SCREEN 9100.
*&& SAVE INSERT DATA TO ZPPT_CONFIRM
WHEN 'SAVE'.
LOOP AT I_TAB1.
IF I_TAB1-LMNGA IS NOT INITIAL OR
I_TAB1-XMNGA IS NOT INITIAL.
if I_TAB1-EMPNO <> space and I_TAB1-EMPNO+0(1) <> 'G'.
MESSAGE I991(ZMESSAGE) with 'ENTER GLAZER NUMBER at Line' sy-tabix.
*
continue.
endif.
*&& ACTIVITY 10
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '104'. "MRP CONTROLLER
ZPPT_CONFIRM-VORNR = '0010'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR. "ORDER NO
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH24'. "ORDER TYPE
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ. "MATERIAL
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA. "MOULD FILL
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA. "SCRAP
if I_TAB1-XMNGA is NOT INITIAL.
ZPPT_CONFIRM-GRUND = I_TAB1-GRUND. "reason for scrap
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME. "supervioser name
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED. "PRODUCT SCHEDULER
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
INSERT ZPPT_CONFIRM.
IF SY-SUBRC = 0.
DELETE TABLE I_TAB1 FROM I_TAB1.
ENDIF.
CLEAR ZPPT_CONFIRM.
ENDIF.
ENDLOOP.
CLEAR : OK_CODE3.
ENDCASE.
endmodule. " USER_COMMAND_9400 INPUT
&----
*& Form GETGLADATA
&----
text
----
--> p1 text
<-- p2 text
----
form GETGLADATA .
refresh i_tab1.
CLEAR : V_MATNR1.
CONCATENATE '%' V_COLOR '%' INTO V_MATNR1.
V_DATE = AFKO-GSTRP.
SELECT SINGLE FEVOR ZHODNO FROM ZPP_SUP_MRP INTO (V_PRDSCHED, V_ZHODNO)
WHERE ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
if sy-subrc = 0.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = V_DATE
IMPORTING
EV_MONTH_BEGIN_DATE = sdate
EV_MONTH_END_DATE = edate.
SELECT SINGLE ENAME FROM PA0001 INTO SNAME WHERE PERNR = ZPP_SUP_MRP-ZSUPNO
AND ENDDA = '99991231'.
if ZMATKL <> SPACE and AFKO-PLNBEZ <> SPACE.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AMANDT = BMANDT
AND AAUFNR = BAUFNR
JOIN AUFK AS C ON
AMANDT = CMANDT
AND AAUFNR = CAUFNR
JOIN JEST AS D ON
CMANDT = DMANDT
AND COBJNR = DOBJNR
JOIN MARA AS E ON
AMANDT = EMANDT
AND APLNBEZ = EMATNR
WHERE
A~PLNBEZ = AFKO-PLNBEZ
A~PLNBEZ LIKE V_MATNR1
AND A~DISPO = '104'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH24'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'
AND E~MATKL = ZMATKL.
elseIF ZMATKL <> SPACE and AFKO-PLNBEZ = SPACE.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AMANDT = BMANDT
AND AAUFNR = BAUFNR
JOIN AUFK AS C ON
AMANDT = CMANDT
AND AAUFNR = CAUFNR
JOIN JEST AS D ON
CMANDT = DMANDT
AND COBJNR = DOBJNR
JOIN MARA AS E ON
AMANDT = EMANDT
AND APLNBEZ = EMATNR
WHERE
A~FEVOR = V_PRDSCHED
A~PLNBEZ LIKE V_MATNR1
AND A~DISPO = '104'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH24'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'
AND E~MATKL = ZMATKL.
elseIF ZMATKL = SPACE and AFKO-PLNBEZ <> SPACE.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AMANDT = BMANDT
AND AAUFNR = BAUFNR
JOIN AUFK AS C ON
AMANDT = CMANDT
AND AAUFNR = CAUFNR
JOIN JEST AS D ON
CMANDT = DMANDT
AND COBJNR = DOBJNR
JOIN MARA AS E ON
AMANDT = EMANDT
AND APLNBEZ = EMATNR
WHERE
A~PLNBEZ = AFKO-PLNBEZ
A~PLNBEZ LIKE V_MATNR1
AND A~DISPO = '104'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH24'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
AND E~MATKL = ZMATKL.
elseIF ZMATKL = SPACE and AFKO-PLNBEZ = SPACE.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AMANDT = BMANDT
AND AAUFNR = BAUFNR
JOIN AUFK AS C ON
AMANDT = CMANDT
AND AAUFNR = CAUFNR
JOIN JEST AS D ON
CMANDT = DMANDT
AND COBJNR = DOBJNR
JOIN MARA AS E ON
AMANDT = EMANDT
AND APLNBEZ = EMATNR
WHERE
A~PLNBEZ = AFKO-PLNBEZ
A~PLNBEZ LIKE V_MATNR1
AND A~DISPO = '104'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH24'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
AND E~MATKL = ZMATKL.
endif.
IF SY-SUBRC = 0.
gcontrol-lines = sy-dbcnt.
LOOP AT I_TAB1.
SELECT SINGLE WGBEZ FROM T023T INTO I_TAB1-WGBEZ
WHERE MATKL = I_TAB1-PLNBEZ+0(7)
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
MODIFY I_TAB1 FROM I_TAB1.
CLEAR I_TAB1.
ENDIF.
ENDLOOP.
ENDIF.
endif.
sort i_tab1 by plnbez.
endform. " GETGLADATA
&----
*& Module MOVE_DATA_TO_INTERNALTAB_INS INPUT
&----
text
----
module MOVE_DATA_TO_INTERNALTAB_INS input.
CLEAR I_TAB1.
CLEAR ZWERKS_HR.
IF T001W-WERKS = '1102'.
ZWERKS_HR = '1200'.
ENDIF.
if I_TAB-EMPNO <> space and I_TAB-EMPNO+0(1) <> 'I'.
MESSAGE I991(ZMESSAGE) with 'ENTER INSPECTOR NUMBER'.
*BREAK-POINT.
FLAG = 'X'.
COUNT = ICONTROL-CURRENT_LINE.
continue.
endif.
IF I_TAB-EMPNO IS NOT INITIAL.
SELECT SINGLE ENAME FROM PA0001 INTO I_TAB-ENAME
WHERE PERNR = I_TAB-EMPNO.
SELECT SINGLE A~ENAME
A~PERNR
A~WERKS
B~USRID
INTO CORRESPONDING FIELDS OF TABLE I_FINAL
INTO (I_TAB-ENAME,I_TAB-pernr)
FROM PA0001 AS A
JOIN PA0105 AS B ON APERNR = BPERNR
WHERE B~USRID <> SPACE
AND B~USRID = I_TAB-EMPNO
AND A~endda = '99991231'
AND A~WERKS = ZWERKS_HR
AND ( B~SUBTY = 'POTT' OR
B~SUBTY = 'INSP' OR
B~SUBTY = 'GLAZ' OR
B~SUBTY = 'STOP' OR
B~SUBTY = 'SORT' ).
IF SY-SUBRC <> 0.
clear : I_TAB-ENAME,I_TAB-pernr.
ENDIF.
ENDIF.
MOVE-CORRESPONDING I_TAB TO I_TAB1.
MODIFY I_TAB1 FROM I_TAB1 INDEX ICONTROL-CURRENT_LINE.
endmodule. " MOVE_DATA_TO_INTERNALTAB_INS INPUT
&----
*& Module MOVE_DATA_TO_INTERNALTAB_GLA INPUT
&----
text
----
module MOVE_DATA_TO_INTERNALTAB_GLA input.
CLEAR I_TAB1.
CLEAR ZWERKS_HR.
IF T001W-WERKS = '1102'.
ZWERKS_HR = '1200'.
ENDIF.
if I_TAB-EMPNO <> space and I_TAB-EMPNO+0(1) <> 'G'.
MESSAGE I991(ZMESSAGE) with 'ENTER GLAZER NUMBER'.
*BREAK-POINT.
FLAG = 'X'.
COUNT = GCONTROL-CURRENT_LINE.
continue.
endif.
IF I_TAB-EMPNO IS NOT INITIAL.
SELECT SINGLE ENAME FROM PA0001 INTO I_TAB-ENAME
WHERE PERNR = I_TAB-EMPNO.
SELECT SINGLE A~ENAME
A~PERNR
A~WERKS
B~USRID
INTO CORRESPONDING FIELDS OF TABLE I_FINAL
INTO (I_TAB-ENAME,I_TAB-pernr)
FROM PA0001 AS A
JOIN PA0105 AS B ON APERNR = BPERNR
WHERE B~USRID <> SPACE
AND B~USRID = I_TAB-EMPNO
AND A~endda = '99991231'
AND A~WERKS = ZWERKS_HR
AND ( B~SUBTY = 'POTT' OR
B~SUBTY = 'INSP' OR
B~SUBTY = 'GLAZ' OR
B~SUBTY = 'STOP' OR
B~SUBTY = 'SORT' ).
IF SY-SUBRC <> 0.
clear : I_TAB-ENAME,I_TAB-pernr.
ENDIF.
ENDIF.
MOVE-CORRESPONDING I_TAB TO I_TAB1.
MODIFY I_TAB1 FROM I_TAB1 INDEX GCONTROL-CURRENT_LINE.
endmodule. " MOVE_DATA_TO_INTERNALTAB_GLA INPUT
&----
*& Module USER_COMMAND_9500 INPUT
&----
text
----
module USER_COMMAND_9500 input.
CASE OK_CODE4.
*&& GET DATA FOR INSPECTION
WHEN 'GO'.
PERFORM GETMLDDATA.
CLEAR OK_CODE4.
*&& BACK
WHEN 'BACK'.
CLEAR : I_TAB, I_TAB1,T001W-WERKS,AFKO-GSTRP.
REFRESH : I_TAB1.
LEAVE TO SCREEN 9100.
*&& SAVE INSERT DATA TO ZPPT_CONFIRM
WHEN 'SAVE'.
LOOP AT I_TAB1.
clear : v_charg.
SELECT single CHARG FROM MCHB into v_charg
WHERE LGORT = '1130'
AND LVORM <> 'X'
AND CHARG = I_TAB1-CHARG.
if sy-subrc <> 0.
Message 'Enter correct batch' type 'W'.
continue.
endif.
IF ( I_TAB1-LMNGA IS NOT INITIAL OR
I_TAB1-XMNGA IS NOT INITIAL ) and
I_TAB1-CHARG IS NOT INITIAL.
*&& ACTIVITY 10
ZPPT_CONFIRM-CDATE = SY-DATUM.
ZPPT_CONFIRM-CTIME = SY-UZEIT.
ZPPT_CONFIRM-PDATE = afko-gstrp.
ZPPT_CONFIRM-WERKS = T001W-WERKS.
ZPPT_CONFIRM-DISPO = '106'. "MRP CONTROLLER
ZPPT_CONFIRM-VORNR = '0010'.
ZPPT_CONFIRM-AUFNR = I_TAB1-AUFNR. "ORDER NO
ZPPT_CONFIRM-ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
ZPPT_CONFIRM-AUFART = 'ZH26'. "ORDER TYPE
ZPPT_CONFIRM-MATNR = I_TAB1-PLNBEZ. "MATERIAL
ZPPT_CONFIRM-MAKTX = I_TAB1-WGBEZ.
ZPPT_CONFIRM-GAMNG = I_TAB1-GAMNG.
ZPPT_CONFIRM-LMNGA = I_TAB1-LMNGA. "MOULD FILL
ZPPT_CONFIRM-XMNGA = I_TAB1-XMNGA. "SCRAP
if I_TAB1-XMNGA is NOT INITIAL.
ZPPT_CONFIRM-GRUND = I_TAB1-GRUND. "reason for scrap
endif.
ZPPT_CONFIRM-ZSUPNAME = SNAME. "supervioser name
ZPPT_CONFIRM-CHARG = I_TAB1-CHARG. "batch
ZPPT_CONFIRM-ZHODNO = V_ZHODNO.
ZPPT_CONFIRM-FEVOR = V_PRDSCHED. "PRODUCT SCHEDULER
ZPPT_CONFIRM-PERNR = I_TAB1-pernr.
ZPPT_CONFIRM-ENAME = I_TAB1-ENAME.
ZPPT_CONFIRM-ZUSER = sy-uname.
INSERT ZPPT_CONFIRM.
IF SY-SUBRC = 0.
DELETE TABLE I_TAB1 FROM I_TAB1.
ENDIF.
CLEAR ZPPT_CONFIRM.
ENDIF.
ENDLOOP.
CLEAR : OK_CODE4.
ENDCASE.
endmodule. " USER_COMMAND_9500 INPUT
&----
*& Form GETMLDDATA
&----
text
----
--> p1 text
<-- p2 text
----
form GETMLDDATA .
refresh i_tab1.
V_DATE = AFKO-GSTRP.
SELECT SINGLE FEVOR ZHODNO FROM ZPP_SUP_MRP INTO (V_PRDSCHED, V_ZHODNO)
WHERE ZSUPNO = ZPP_SUP_MRP-ZSUPNO.
if sy-subrc = 0.
CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
EXPORTING
iv_date = V_DATE
IMPORTING
EV_MONTH_BEGIN_DATE = sdate
EV_MONTH_END_DATE = edate.
SELECT SINGLE ENAME FROM PA0001 INTO SNAME WHERE PERNR = ZPP_SUP_MRP-ZSUPNO
AND ENDDA = '99991231'.
select A~AUFNR
A~PLNBEZ
A~GAMNG
INTO corresponding fields of TABLE I_TAB1
FROM AFKO AS A
JOIN AFPO AS B ON
AAUFNR = BAUFNR
JOIN AUFK AS C ON
AAUFNR = CAUFNR
JOIN JEST AS D ON
COBJNR = DOBJNR
WHERE
A~FEVOR = V_PRDSCHED
A~DISPO = '106'
AND A~GLTRP between sdate and edate
AND B~DAUAT = 'ZH26'
AND B~PWERK = T001W-WERKS
AND D~STAT = 'I0002'
AND D~INACT <> 'X'.
IF SY-SUBRC = 0.
mcontrol-lines = sy-dbcnt.
LOOP AT I_TAB1.
SELECT SINGLE WGBEZ FROM T023T INTO I_TAB1-WGBEZ
WHERE MATKL = I_TAB1-PLNBEZ+0(7)
AND SPRAS = 'E'.
IF SY-SUBRC = 0.
MODIFY I_TAB1 FROM I_TAB1.
CLEAR I_TAB1.
ENDIF.
ENDLOOP.
ENDIF.
endif.
sort i_tab1 by plnbez.
endform. " GETMLDDATA
&----
*& Module MOVE_DATA_TO_INTERNALTAB_MLD INPUT
&----
text
----
module MOVE_DATA_TO_INTERNALTAB_MLD input.
CLEAR I_TAB1.
IF I_TAB-PERNR IS NOT INITIAL.
SELECT SINGLE ENAME FROM PA0001 INTO I_TAB-ENAME
WHERE PERNR = I_TAB-PERNR.
SELECT SINGLE A~ENAME
A~PERNR
A~WERKS
B~USRID
INTO CORRESPONDING FIELDS OF TABLE I_FINAL
INTO (I_TAB-ENAME,I_TAB-pernr)
FROM PA0001 AS A
JOIN PA0105 AS B ON APERNR = BPERNR
WHERE B~USRID <> SPACE
AND B~USRID = I_TAB-EMPNO
AND A~endda = '99991231'
AND ( B~SUBTY = 'POTT' OR
B~SUBTY = 'INSP' OR
B~SUBTY = 'GLAZ' OR
B~SUBTY = 'STOP' OR
B~SUBTY = 'SORT' ).
IF SY-SUBRC <> 0.
clear : I_TAB-ENAME.
ENDIF.
ENDIF.
MOVE-CORRESPONDING I_TAB TO I_TAB1.
MODIFY I_TAB1 FROM I_TAB1 INDEX MCONTROL-CURRENT_LINE.
endmodule. " MOVE_DATA_TO_INTERNALTAB_MLD INPUT
&----
*& Module F4HELPONMATKL INPUT
&----
text
----
module F4HELPONMATKL input.
SELECT DISTINCT A~MATKL
A~WGBEZ
INTO CORRESPONDING FIELDS OF TABLE I_MATKL
FROM T023T AS A
JOIN MARA AS B
ON AMATKL = BMATKL
JOIN MARC AS C
ON BMATNR = CMATNR
WHERE C~DISPO = '104'
AND A~SPRAS = 'E'.
IF SY-SUBRC = 0.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'MATKL'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'ZMATKL'
STEPL = 0
WINDOW_TITLE = 'MATERIAL GROUP'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = I_MATKL
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
endmodule. " F4HELPONMATKL INPUT
&----
*& Module F4HELPONCHARG_MLD INPUT
&----
text
----
module F4HELPONCHARG_MLD input.
CLEAR : V_MATNR, V_STEPL, V_STLNR, V_IDNRK.
CLEAR : C_TOPLINE.
C_TOPLINE = MCONTROL-TOP_LINE - 1.
CALL FUNCTION 'DYNP_GET_STEPL'
IMPORTING
POVSTEPL = v_stepl
EXCEPTIONS
STEPL_NOT_FOUND = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
v_stepl = v_stepl + C_TOPLINE.
READ TABLE I_TAB1 INDEX v_stepl.
*
IF SY-SUBRC = 0.
SELECT SINGLE STLNR FROM AFKO INTO V_STLNR
WHERE AUFNR = I_TAB1-AUFNR.
IF SY-SUBRC = 0.
V_MATNR = I_TAB1-PLNBEZ+0(7).
CONCATENATE V_MATNR '%' INTO V_MATNR.
SELECT SINGLE IDNRK FROM STPO INTO V_IDNRK
WHERE STLNR = V_STLNR
AND IDNRK LIKE V_MATNR.
IF SY-SUBRC = 0.
SELECT CHARG FROM MCHB INTO TABLE I_BATCH
WHERE MATNR LIKE V_IDNRK
AND LGORT = '1130'
AND WERKS = T001W-WERKS
AND LVORM <> 'X'.
ENDIF.
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'I_TAB-CHARG'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'CHARG'
STEPL = 0
WINDOW_TITLE = 'BATCH'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = I_BATCH
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
endmodule. " F4HELPONCHARG_MLD INPUT
&----
*& Module F4HELPONCOLOR INPUT
&----
text
----
module F4HELPONCOLOR input.
clear V_ATINN.
SELECT SINGLE ATINN FROM CABN INTO V_ATINN WHERE ATNAM = 'COLOUR'.
IF SY-SUBRC = 0.
SELECT DISTINCT ATWRT FROM AUSP INTO TABLE I_COLOR WHERE ATINN = V_ATINN.
loop at i_color.
condense i_color-atwrt.
endloop.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'V_COLOR'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'ATWRT'
STEPL = 0
WINDOW_TITLE = 'COLOR'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = I_COLOR
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
endmodule. " F4HELPONCOLOR INPU
&----
*& Module CANCEL INPUT
&----
text
----
module CANCEL input.
CLEAR : I_TAB, I_TAB1,AFKO-PLNBEZ,ZMATKL,T001W-WERKS,AFKO-GSTRP,flag,count,qtyflag.
REFRESH : I_TAB1.
leave to screen 9100.
endmodule. " CANCEL INPUT
&----
*& Module CVALIDATION INPUT
&----
text
----
module CVALIDATION input.
if I_TAB-EMPNO <> space and I_TAB-EMPNO+0(1) <> 'P'.
MESSAGE E991(ZMESSAGE) with 'ENTER POTTER NUMBER'.
*BREAK-POINT.
FLAG = 'X'.
COUNT = ( CCONTROL-CURRENT_LINE - CCONTROL-Top_line ) + 1.
continue.
endif.
endmodule. " CVALIDATION INPUT
&----
*& Module CVALIDATION1 INPUT
&----
text
----
module CVALIDATION1 input.
IF I_TAB-LMNGA > 0 AND I_TAB-LMNGA1 > I_TAB-LMNGA.
MESSAGE E990(ZMESSAGE) with 'Carryout GreaterThan MF at line'.
qtyflag = 'X'.
count1 = ( sy-tabix - CControl-Top_line ) + 1.
endif.
endmodule. " CVALIDATION1 INPUT
&----
*& Module IVALIDATION INPUT
&----
text
----
module IVALIDATION input.
if I_TAB-EMPNO <> space and I_TAB-EMPNO+0(1) <> 'I'.
MESSAGE E991(ZMESSAGE) with 'ENTER POTTER NUMBER'.
*BREAK-POINT.
FLAG = 'X'.
COUNT = ( CCONTROL-CURRENT_LINE - CCONTROL-Top_line ) + 1.
continue.
endif.
endmodule. " IVALIDATION INPUT
&----
*& Module GVALIDATION INPUT
&----
text
----
module GVALIDATION input.
if I_TAB-EMPNO <> space and I_TAB-EMPNO+0(1) <> 'G'.
MESSAGE E991(ZMESSAGE) with 'ENTER POTTER NUMBER'.
*BREAK-POINT.
FLAG = 'X'.
COUNT = ( CCONTROL-CURRENT_LINE - CCONTROL-Top_line ) + 1.
continue.
endif.
endmodule. " GVALIDATION INPUT
&----
*& Module CVALIDATION2 INPUT
&----
text
----
module CVALIDATION2 input.
FLAG = 'X'.
COUNT = ( CCONTROL-CURRENT_LINE - CCONTROL-Top_line ) + 1.
endmodule. " CVALIDATION2 INPUT
&----
*& Module IVALIDATION2 INPUT
&----
text
----
module IVALIDATION2 input.
FLAG = 'X'.
COUNT = ( ICONTROL-CURRENT_LINE - ICONTROL-Top_line ) + 1.
endmodule. " IVALIDATION2 INPUT
&----
*& Module GVALIDATION2 INPUT
&----
text
----
module GVALIDATION2 input.
FLAG = 'X'.
COUNT = ( GCONTROL-CURRENT_LINE - GCONTROL-Top_line ) + 1.
endmodule. " GVALIDATION2 INPUT
&----
*& Module MVALIDATION2 INPUT
&----
text
----
module MVALIDATION2 input.
FLAG = 'X'.
COUNT = ( MCONTROL-CURRENT_LINE - MCONTROL-Top_line ) + 1.
endmodule. " MVALIDATION2 INPUT
&----
*& Module GETSUPNAME INPUT
&----
text
----
module GETSUPNAME input.
CLEAR ZWERKS_HR.
IF T001W-WERKS = '1102'.
ZWERKS_HR = '1200'.
ENDIF.
SELECT SINGLE ENAME
INTO SUPNAME
FROM PA0001
WHERE PERNR = ZPP_SUP_MRP-ZSUPNO
AND endda = '99991231'
AND WERKS = ZWERKS_HR.
endmodule. " GETSUPNAME INPUT
&----
*& Module F4HELPONMATNR INPUT
&----
text
----
module F4HELPONMATNR input.
SELECT Amatnr Bmaktx
INTO TABLE I_MATNR
FROM marc as a
join makt as b
on amatnr = bmatnr
WHERE a~WERKS = T001W-WERKS
and a~DISPO = '104'.
IF SY-SUBRC = 0.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'MATNR'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'AFKO-PLNBEZ'
STEPL = 1
WINDOW_TITLE = 'Material'
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = I_MATNR
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
endif.
endmodule. " F4HELPONMATNR INPUT
&----
*& Module ONEXIT INPUT
&----
text
----
module ONEXIT input.
CLEAR : I_TAB, I_TAB1,AFKO-PLNBEZ,ZMATKL,T001W-WERKS,
AFKO-GSTRP,PA0105-USRID,flag,count.
REFRESH : I_TAB1.
LEAVE TO SCREEN 9100.
endmodule. " ONEXIT INPUT
‎2008 Aug 26 8:14 AM
Hi,
Check the code below for flow logic to perform the activities you have specified.
Screen 9010: ( Sub screen for display )
process before output.
module status_9010.
loop with control tcontrol1.
module display_data.
endloop.
*
process after input.
module user_command_9010.
loop with control tcontrol1.
endloop.
Screen 9020: ( Sub screen for create )
process before output.
module status_9020.
loop with control tcontrol2.
module display_data_tcontrol2.
endloop.
*
process after input.
MODULE USER_COMMAND_9020.
loop with control tcontrol2.
module get_data_from_tcontrol2.
endloop.
Screen 9030: ( Sub screen for edit )
process before output.
module status_9030.
loop with control tcontrol3.
module move_data_to_tcontrol3.
endloop.
process after input.
module user_command_9030.
loop with control tcontrol3.
module get_data_from_tcontrol3.
endloop.
Hope this will help you,
With best wishes,
Ram.