Site hosted by Angelfire.com: Build your free website today!

* This Program displays the data by production order number and

* gets the user input in the next screen within a table control

* and downloads into zwodownld table.

 

 

*& Dialog Program developed to download the Work Orders *

*& Author: Sreeni Meka, M.S.(Mech)

*& Change according to your requirements *

*& Questions??: Sreeni_Meka@yahoo.com

*&---------------------------------------------------------------------*

 

 

INCLUDE MZ01TOP . "

 

* INCLUDE MZ01O01 . *

* INCLUDE MZ01I01 . *

* INCLUDE MZ01F01 . *

 

 

INCLUDE MZ01O01.

 

INCLUDE MZ01I01.

 

INCLUDE MZ01F01.

 

*INCLUDE MZ01TOP Follows

 

*&---------------------------------------------------------------------*

*& Include MZ01TOP *

*& *

*&---------------------------------------------------------------------*

 

PROGRAM SAPMZ01 MESSAGE-ID ZMM .

TABLES: AFKO,AUFK,MAKT,MARA,RESB,ZWODOWNLD,ZMATTYPECK,T024D.

DATA: OK_CODE(4),

RCODE(5),

LINE_COUNT TYPE I.

 

CONTROLS: DATAB TYPE TABLEVIEW USING SCREEN 200.

 

DATA INT_DATAB LIKE ZWODOWNLD OCCURS 1 WITH HEADER LINE.

DATA WA LIKE ZWODOWNLD OCCURS 0 WITH HEADER LINE.

 

DATA Z_ANSWER(1) TYPE C.

 

 

DATA ZDOWNLDPURGE.

 

* MZ01F01 Follows.....

*----------------------------------------------------------------------*

***INCLUDE MZ01F01 .

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*& Form PAGING

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* -->P_0179 text *

*----------------------------------------------------------------------*

FORM PAGING USING CODE.

 

DATA: I TYPE I,

J TYPE I.

 

CASE CODE.

WHEN 'P--'. DATAB-TOP_LINE = 1.

WHEN 'P-'. DATAB-TOP_LINE = DATAB-TOP_LINE - LINE_COUNT.

IF DATAB-TOP_LINE LE 0. DATAB-TOP_LINE = 1. ENDIF.

WHEN 'P+'. I = DATAB-TOP_LINE + LINE_COUNT.

J = DATAB-LINES - LINE_COUNT + 1.

IF J LE 0. J = 1. ENDIF.

IF I LE J. DATAB-TOP_LINE = I.

ELSE. DATAB-TOP_LINE = J.

ENDIF.

WHEN 'P++'. DATAB-TOP_LINE = DATAB-LINES - LINE_COUNT + 1.

IF DATAB-TOP_LINE LE 0. DATAB-TOP_LINE = 1. ENDIF.

ENDCASE.

 

 

ENDFORM. " PAGING

 

 

* MZ01o01 Follows below

 

*----------------------------------------------------------------------*

***INCLUDE MZ01O01 .

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*& Module STATUS_0100 OUTPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'TD0100'.

SET TITLEBAR '100'.

 

ENDMODULE. " STATUS_0100 OUTPUT

 

*&---------------------------------------------------------------------*

*& Module STATUS_0200 OUTPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE STATUS_0200 OUTPUT.

SET PF-STATUS 'TD0200'.

SET TITLEBAR '200'.

 

ENDMODULE. " STATUS_0200 OUTPUT

*&---------------------------------------------------------------------*

*& Module DISPLAY_TAB OUTPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE DISPLAY_TAB OUTPUT.

ZWODOWNLD-MATNR = INT_DATAB-MATNR.

ZWODOWNLD-BDMNG = INT_DATAB-BDMNG.

ZWODOWNLD-MEINS = INT_DATAB-MEINS.

ZWODOWNLD-RSPOS = INT_DATAB-RSPOS.

ZWODOWNLD-ZMATTYPE = INT_DATAB-ZMATTYPE.

ZWODOWNLD-AUFNR = AFKO-AUFNR.

ZWODOWNLD-CHARG = INT_DATAB-CHARG.

ENDMODULE. " DISPLAY_TAB OUTPUT

 

 

* MZ01i01 Follows below

 

*----------------------------------------------------------------------*

***INCLUDE MZ01I01 .

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*& Module USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_0100 INPUT.

 

CASE OK_CODE.

WHEN 'SHOW'.

CLEAR OK_CODE.

SELECT SINGLE * FROM AFKO WHERE AUFNR = AFKO-AUFNR.

IF SY-SUBRC NE 0.

MESSAGE E006(ZS).

 

ELSE.

 

SELECT SINGLE WERKS FROM AUFK

INTO AUFK-WERKS WHERE AUFNR = AFKO-AUFNR.

SELECT SINGLE * FROM MAKT WHERE MATNR = AFKO-PLNBEZ.

SELECT SINGLE DSNAM FROM T024D

INTO T024D-DSNAM WHERE DISPO = AFKO-DISPO.

 

* Fill the table in the screen 200

SELECT * FROM RESB INTO CORRESPONDING FIELDS OF TABLE INT_DATAB

WHERE AUFNR = AFKO-AUFNR

AND WERKS = '1500'

ORDER BY RSPOS .

LOOP AT INT_DATAB.

MOVE AUFK-WERKS TO INT_DATAB-WERKS.

MOVE 'C' TO INT_DATAB-ZRECSTATUS.

MOVE '00' TO INT_DATAB-ZBCKORDLVL.

MOVE SY-UNAME TO INT_DATAB-ERNAM.

MOVE SY-DATUM TO INT_DATAB-ERDAT.

MOVE SY-UZEIT TO INT_DATAB-ERZET.

MOVE 'U' TO INT_DATAB-ZMATTYPE.

MODIFY INT_DATAB.

ENDLOOP.

 

DATAB-TOP_LINE = 1.

DESCRIBE TABLE INT_DATAB LINES DATAB-LINES.

CLEAR OK_CODE.

SET SCREEN 0200.

LEAVE SCREEN.

 

ENDIF.

WHEN 'CANC'.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

WHEN 'EXIT'.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

WHEN 'BACK'.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

WHEN SPACE.

WHEN OTHERS.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

 

ENDCASE.

 

 

 

ENDMODULE. " USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*

*& Module USER_COMMAND_0200 INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_0200 INPUT.

CASE OK_CODE.

WHEN 'SAVE'.

CLEAR OK_CODE.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TITLEBAR = 'Are you Sure '

TEXT_QUESTION = 'Are you sure, You want to download?'

TEXT_BUTTON_1 = 'Yes'

ICON_BUTTON_1 = ' '

TEXT_BUTTON_2 = 'No'

ICON_BUTTON_2 = ' '

DEFAULT_BUTTON = '1'

USERDEFINED_F1_HELP = ' '

START_COLUMN = 25

START_ROW = 6

IMPORTING

ANSWER = Z_ANSWER.

 

IF Z_ANSWER = '1'.

 

INSERT ZWODOWNLD FROM TABLE INT_DATAB.

INSERT ZDOWNLDPURGE FROM INT_DATAB-AUFNR.

COMMIT WORK.

MESSAGE S000.

CLEAR AFKO-AUFNR.

SET SCREEN 100. LEAVE SCREEN.

ELSEIF Z_ANSWER = '2'.

SET SCREEN 100. LEAVE SCREEN.

ELSE.

* do nothing.

ENDIF.

WHEN 'CANC'.

CLEAR OK_CODE.

SET SCREEN 100. LEAVE SCREEN.

WHEN 'EXIT'.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

WHEN 'BACK'.

CLEAR OK_CODE.

SET SCREEN 100. LEAVE SCREEN.

WHEN 'NEW'.

CLEAR OK_CODE.

SET SCREEN 100. LEAVE SCREEN.

WHEN 'P--'.

CLEAR OK_CODE.

PERFORM PAGING USING 'P--'.

WHEN 'P-'.

CLEAR OK_CODE.

PERFORM PAGING USING 'P-'.

WHEN 'P+'.

CLEAR OK_CODE.

PERFORM PAGING USING 'P+'.

WHEN 'P++'.

CLEAR OK_CODE.

PERFORM PAGING USING 'P++'.

ENDCASE.

 

ENDMODULE. " USER_COMMAND_0200 INPUT

*&---------------------------------------------------------------------*

*& Module EXIT_0100 INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE EXIT_0100 INPUT.

 

 

CASE OK_CODE.

WHEN 'CANC'.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

WHEN 'EXIT'.

CLEAR OK_CODE.

SET SCREEN 0. LEAVE SCREEN.

ENDCASE.

 

ENDMODULE. " EXIT_0100 INPUT

*&---------------------------------------------------------------------*

*& Module SET_LINE_COUNT INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE SET_LINE_COUNT INPUT.

LINE_COUNT = SY-LOOPC.

 

ENDMODULE. " SET_LINE_COUNT INPUT

*&---------------------------------------------------------------------*

*& Module EXIT_0200 INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE EXIT_0200 INPUT.

CASE OK_CODE.

WHEN 'CANC'.

CLEAR OK_CODE.

SET SCREEN 100. LEAVE SCREEN.

WHEN 'ENTE'.

CLEAR OK_CODE.

ENDCASE.

 

ENDMODULE. " EXIT_0200 INPUT

*&---------------------------------------------------------------------*

*& Module CHECK_ZWODOWNLD INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE CHECK_ZWODOWNLD INPUT.

 

SELECT SINGLE PROD_NUMBER FROM ZDOWNLDPURGE INTO

ZDOWNLDPURGE WHERE PROD_NUMBER = AFKO-AUFNR.

IF SY-SUBRC EQ 0.

MESSAGE W002 WITH AFKO-AUFNR.

ELSE.

ENDIF.

 

 

ENDMODULE. " CHECK_ZWODOWNLD INPUT

*&---------------------------------------------------------------------*

*& Module CHECK_RESB INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE CHECK_RESB INPUT.

 

SELECT SINGLE * FROM RESB WHERE AUFNR = AFKO-AUFNR

AND WERKS = '1500' .

 

IF SY-SUBRC NE 0. MESSAGE W003 WITH AFKO-AUFNR. ENDIF.

 

 

ENDMODULE. " CHECK_RESB INPUT

*&---------------------------------------------------------------------*

*& Module MODIFY_TAB INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*& Module UPDATE_INT_DATAB INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE UPDATE_INT_DATAB INPUT.

 

INT_DATAB-CHARG = ZWODOWNLD-CHARG.

INT_DATAB-ZMATTYPE = ZWODOWNLD-ZMATTYPE.

MODIFY INT_DATAB INDEX DATAB-CURRENT_LINE.

* aPPEND INT_DATAB.

ENDMODULE. " UPDATE_INT_DATAB INPUT