‎2008 Mar 28 10:08 AM
Hi!!
I want one module pool prg.. can any one help me.. i have one selectionscreen... When i selete display pushbutton in that, it will show the (next screen) table with the values which is given in selection screen.... can u anyone send the code???
‎2008 Mar 28 10:11 AM
HI,
THIS MIGHT HEALP YOU OUT
&----
*& Module pool ZMM_AMP_MATERIAL_ENTRY *
*& *
&----
*& *
*& *
&----
PROGRAM ZMM_AMP_MATERIAL_ENTRY .
TABLES : ZMATPRD,MARA,MARD,MAKT,SSCRFIELDS.
DATA : WERKS TYPE ZMATPRD-WERKS VALUE '1000',
MATNR TYPE ZMATPRD-MATNR,
MATNR1 TYPE ZMATPRD-MATNR,
DATE TYPE ZMATPRD-PRDATE,
MAKTX TYPE MAKT-MAKTX,
MESSAGE TYPE STRING,
OKCODE TYPE SY-UCOMM,
X TYPE I.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'MAT'.
SET TITLEBAR 'MAT'.
IF X NE 1.
DATE = SY-DATUM.
ENDIF.
IF MAKTX IS NOT INITIAL.
SET CURSOR FIELD 'DATE'.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR
IMPORTING
OUTPUT = MATNR1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = DATE
IMPORTING
OUTPUT = DATE.
SELECT SINGLE * FROM MAKT WHERE MATNR EQ MATNR1.
IF SY-SUBRC = 0.
MAKTX = MAKT-MAKTX.
ENDIF.
SET CURSOR FIELD 'DATE'.
CASE OKCODE.
WHEN 'SAVE'.
IF WERKS IS INITIAL.
MESSAGE 'ENTER THE PLANT' TYPE 'E'.
ELSEIF MATNR IS INITIAL.
MESSAGE 'ENTER THE MATERIAL NUMBER' TYPE 'E'.
ELSEIF DATE IS INITIAL.
MESSAGE 'ENTER THE DATE NUMBER' TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM ZMATPRD
WHERE MATNR EQ MATNR1
AND WERKS EQ WERKS
AND STATUS EQ 'C'.
IF SY-SUBRC NE 0 .
ZMATPRD-WERKS = WERKS.
ZMATPRD-MATNR = MATNR1.
ZMATPRD-PRDATE = DATE.
ZMATPRD-STATUS = 'C'.
ZMATPRD-CPUUSER = SY-UNAME.
ZMATPRD-CPUDATE = SY-DATUM.
ZMATPRD-CPUTIME = SY-UZEIT.
INSERT ZMATPRD.
MESSAGE 'Data Was Inserted' TYPE 'I'.
ELSE.
SELECT SINGLE * FROM ZMATPRD
WHERE MATNR EQ MATNR1
AND WERKS EQ WERKS
AND STATUS EQ 'M'.
IF SY-SUBRC NE 0.
ZMATPRD-WERKS = WERKS.
ZMATPRD-MATNR = MATNR1.
ZMATPRD-STATUS = 'M'.
ZMATPRD-PRDATE = DATE.
ZMATPRD-CPUUSER = SY-UNAME.
ZMATPRD-CPUDATE = SY-DATUM.
ZMATPRD-CPUTIME = SY-UZEIT.
INSERT ZMATPRD.
MESSAGE 'Data Was Modified' TYPE 'I'.
ELSE.
ZMATPRD-PRDATE = DATE.
ZMATPRD-CPUUSER = SY-UNAME.
ZMATPRD-CPUDATE = SY-DATUM.
ZMATPRD-CPUTIME = SY-UZEIT.
MODIFY ZMATPRD.
MESSAGE 'Data Was Modified' TYPE 'I'.
ENDIF.
ENDIF.
CLEAR: MATNR,MATNR1,MAKTX,OKCODE.
X = 1.
WHEN 'CANCEL' OR 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module CHECK_MATNR INPUT
&----
text
----
MODULE CHECK_MATNR INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR
IMPORTING
OUTPUT = MATNR1.
CASE OKCODE.
WHEN 'SAVE'.
SELECT SINGLE * FROM MARA WHERE MATNR EQ MATNR1.
IF MARA-MTART NE 'FIN' AND MARA-MTART NE 'FINR'.
MESSAGE 'Material Type Must Be FIN/FINR' TYPE 'E'.
CLEAR: MATNR,MATNR1,OKCODE.
ELSEIF SY-SUBRC NE 0.
MESSAGE 'MATERIAL NUMBER IS NOT THERE IN THE MASTER' TYPE 'E'.
CLEAR: MATNR,MATNR1,OKCODE.
ENDIF.
ENDCASE.
ENDMODULE. " CHECK_MATNR INPUT
&----
*& Module CHECK_WERKS INPUT
&----
text
----
MODULE CHECK_WERKS INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR
IMPORTING
OUTPUT = MATNR1.
CASE OKCODE.
WHEN 'SAVE'.
CONCATENATE 'THE MATERIAL NUMBER' MATNR 'IS NOT THERE IN THE PLANT' WERKS INTO MESSAGE SEPARATED BY SPACE.
SELECT SINGLE * FROM MARD WHERE MATNR EQ MATNR1 AND WERKS EQ WERKS.
IF SY-SUBRC NE 0.
MESSAGE MESSAGE TYPE 'E'.
ENDIF.
ENDCASE.
ENDMODULE. " CHECK_WERKS INPUT
‎2008 Mar 28 10:11 AM
HI,
THIS MIGHT HEALP YOU OUT
&----
*& Module pool ZMM_AMP_MATERIAL_ENTRY *
*& *
&----
*& *
*& *
&----
PROGRAM ZMM_AMP_MATERIAL_ENTRY .
TABLES : ZMATPRD,MARA,MARD,MAKT,SSCRFIELDS.
DATA : WERKS TYPE ZMATPRD-WERKS VALUE '1000',
MATNR TYPE ZMATPRD-MATNR,
MATNR1 TYPE ZMATPRD-MATNR,
DATE TYPE ZMATPRD-PRDATE,
MAKTX TYPE MAKT-MAKTX,
MESSAGE TYPE STRING,
OKCODE TYPE SY-UCOMM,
X TYPE I.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'MAT'.
SET TITLEBAR 'MAT'.
IF X NE 1.
DATE = SY-DATUM.
ENDIF.
IF MAKTX IS NOT INITIAL.
SET CURSOR FIELD 'DATE'.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR
IMPORTING
OUTPUT = MATNR1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = DATE
IMPORTING
OUTPUT = DATE.
SELECT SINGLE * FROM MAKT WHERE MATNR EQ MATNR1.
IF SY-SUBRC = 0.
MAKTX = MAKT-MAKTX.
ENDIF.
SET CURSOR FIELD 'DATE'.
CASE OKCODE.
WHEN 'SAVE'.
IF WERKS IS INITIAL.
MESSAGE 'ENTER THE PLANT' TYPE 'E'.
ELSEIF MATNR IS INITIAL.
MESSAGE 'ENTER THE MATERIAL NUMBER' TYPE 'E'.
ELSEIF DATE IS INITIAL.
MESSAGE 'ENTER THE DATE NUMBER' TYPE 'E'.
ENDIF.
SELECT SINGLE * FROM ZMATPRD
WHERE MATNR EQ MATNR1
AND WERKS EQ WERKS
AND STATUS EQ 'C'.
IF SY-SUBRC NE 0 .
ZMATPRD-WERKS = WERKS.
ZMATPRD-MATNR = MATNR1.
ZMATPRD-PRDATE = DATE.
ZMATPRD-STATUS = 'C'.
ZMATPRD-CPUUSER = SY-UNAME.
ZMATPRD-CPUDATE = SY-DATUM.
ZMATPRD-CPUTIME = SY-UZEIT.
INSERT ZMATPRD.
MESSAGE 'Data Was Inserted' TYPE 'I'.
ELSE.
SELECT SINGLE * FROM ZMATPRD
WHERE MATNR EQ MATNR1
AND WERKS EQ WERKS
AND STATUS EQ 'M'.
IF SY-SUBRC NE 0.
ZMATPRD-WERKS = WERKS.
ZMATPRD-MATNR = MATNR1.
ZMATPRD-STATUS = 'M'.
ZMATPRD-PRDATE = DATE.
ZMATPRD-CPUUSER = SY-UNAME.
ZMATPRD-CPUDATE = SY-DATUM.
ZMATPRD-CPUTIME = SY-UZEIT.
INSERT ZMATPRD.
MESSAGE 'Data Was Modified' TYPE 'I'.
ELSE.
ZMATPRD-PRDATE = DATE.
ZMATPRD-CPUUSER = SY-UNAME.
ZMATPRD-CPUDATE = SY-DATUM.
ZMATPRD-CPUTIME = SY-UZEIT.
MODIFY ZMATPRD.
MESSAGE 'Data Was Modified' TYPE 'I'.
ENDIF.
ENDIF.
CLEAR: MATNR,MATNR1,MAKTX,OKCODE.
X = 1.
WHEN 'CANCEL' OR 'BACK'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Module CHECK_MATNR INPUT
&----
text
----
MODULE CHECK_MATNR INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR
IMPORTING
OUTPUT = MATNR1.
CASE OKCODE.
WHEN 'SAVE'.
SELECT SINGLE * FROM MARA WHERE MATNR EQ MATNR1.
IF MARA-MTART NE 'FIN' AND MARA-MTART NE 'FINR'.
MESSAGE 'Material Type Must Be FIN/FINR' TYPE 'E'.
CLEAR: MATNR,MATNR1,OKCODE.
ELSEIF SY-SUBRC NE 0.
MESSAGE 'MATERIAL NUMBER IS NOT THERE IN THE MASTER' TYPE 'E'.
CLEAR: MATNR,MATNR1,OKCODE.
ENDIF.
ENDCASE.
ENDMODULE. " CHECK_MATNR INPUT
&----
*& Module CHECK_WERKS INPUT
&----
text
----
MODULE CHECK_WERKS INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = MATNR
IMPORTING
OUTPUT = MATNR1.
CASE OKCODE.
WHEN 'SAVE'.
CONCATENATE 'THE MATERIAL NUMBER' MATNR 'IS NOT THERE IN THE PLANT' WERKS INTO MESSAGE SEPARATED BY SPACE.
SELECT SINGLE * FROM MARD WHERE MATNR EQ MATNR1 AND WERKS EQ WERKS.
IF SY-SUBRC NE 0.
MESSAGE MESSAGE TYPE 'E'.
ENDIF.
ENDCASE.
ENDMODULE. " CHECK_WERKS INPUT