Академический Документы
Профессиональный Документы
Культура Документы
MODULE m_status_9001.
module m_screen_change.
MODULE m_user_command_9001.
RLMOB-PSAVE Push 1 1 9 9 1
RLMOB-PCLEAR Push 1 12 9 9 1
RLMOB-PBACK Push 2 12 9 9 1
TEXT1 Text 4 1 3 3 1
ZLTAP-VLPLA I/O 4 6 10 10 1 CHAR
ZLTAP-VLTYP I/O 4 18 3 3 1 CHAR
TEXT2 Text 5 1 3 3 1
ZLTAP-MATNR I/O 5 6 18 10 1 CHAR
T_MAKT-MAKTX I/O 6 1 40 20 1 CHAR
TEXT3 Text 7 1 3 3 1
ZLTAP-CHARG I/O 7 6 10 10 1 CHAR
TEXT9 Text 8 1 3 3 1
ZLTAP-BESTQ I/O 8 6 2 2 1 CHAR
TEXT11 Text 8 9 1 1 1
V_SCTEXT I/O 8 11 10 10 1 CHAR
TEXT5 Text 9 1 5 5 1
ZLTAP-VFDAT I/O 9 10 10 10 1 DATS
TEXT8 Text 10 1 8 8 1
ZLTAP-WERKS I/O 10 10 4 4 1 CHAR
TEXT10 Text 10 15 1 1 1
ZLTAP-LGORT I/O 10 17 4 4 1 CHAR
TEXT7 Text 11 1 1 1 1
TEXT4 Text 12 1 1 1 1
ZLTAP-VSOLA I/O 12 4 13 13 1 QUAN
ZLTAP-ALTME I/O 12 18 3 3 1 UNIT
TEXT6 Text 13 1 1 1 1
TEXT13 Text 13 11 5 5 1
ZLTAP-LETYP I/O 13 18 3 3 1 CHAR
TEXT12 Text 14 1 3 3 1
ZLTAP-NLPLA I/O 14 6 10 10 1 CHAR
ZLTAP-NLTYP I/O 14 18 3 3 1 CHAR
OK_CODE OK 0 0 20 20 1 OK
Screen 9002
INCLUDE ZID1WM008_TOP.
perform f_execute_prog.
INCLUDE ZID1WM008_PBO.
INCLUDE ZID1WM008_PAI.
INCLUDE ZID1WM008_F01.
*----------------------------------------------------------------------*
* INCLUDE ZID1WM007_TOP *
*----------------------------------------------------------------------*
TABLES: mara, makt, lagp, lqua, lrf_wkqu, t320, ltap, ltak, mlgn.
.
*CONSTANTS:
DATA:
t_text TYPE STANDARD TABLE OF ty_line_ty,
DATA:
v_bestq_not_fix(1),
v_lgort_not_fix(1),
v_sctext(12),
v_stein LIKE t331-stein,
v_msg1(20),
v_msg2(20),
v_msg3(20),
v_msg4(20),
v_msg5(20),
v_msg6(20),
v_cursor(20),
v_check_only,
v_messg TYPE ty_line_ty,
ok_code LIKE sy-ucomm.
*----------------------------------------------------------------------*
***INCLUDE ZID1WM004_PBO .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module M_STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
MODULE m_status_9001 OUTPUT.
SET PF-STATUS 'MENU'.
LOOP AT SCREEN.
* Initial Scanning
IF zltap-vlpla EQ space.
IF ( screen-name = 'ZLTAP-MATNR' OR
screen-name = 'ZLTAP-CHARG' OR
screen-name = 'ZLTAP-VSOLA' OR
screen-name = 'ZLTAP-LETYP' OR
screen-name = 'ZLTAP-NLPLA' OR
screen-name = 'ZLTAP-ALTME' ).
screen-input = 0.
ENDIF.
IF screen-name = 'ZLTAP-VLPLA'.
screen-input = 1.
ENDIF.
ENDIF.
* Material input
IF zltap-vlpla NE space.
IF ( screen-name = 'ZLTAP-VLPLA' OR
screen-name = 'ZLTAP-CHARG' OR
screen-name = 'ZLTAP-VSOLA' OR
screen-name = 'ZLTAP-LETYP' OR
screen-name = 'ZLTAP-NLPLA' OR
screen-name = 'ZLTAP-ALTME' ).
screen-input = 0.
ENDIF.
IF screen-name = 'ZLTAP-MATNR'.
screen-input = 1.
ENDIF.
ENDIF.
* Batch Input
IF zltap-matnr NE space AND t_mara-xchpf NE space.
IF ( screen-name = 'ZLTAP-VLPLA' OR
screen-name = 'ZLTAP-MATNR' OR
screen-name = 'ZLTAP-VSOLA' OR
screen-name = 'ZLTAP-LETYP' OR
screen-name = 'ZLTAP-NLPLA' OR
screen-name = 'ZLTAP-ALTME' ).
screen-input = 0.
ENDIF.
IF screen-name = 'ZLTAP-CHARG'.
screen-input = 1.
ENDIF.
ENDIF.
screen-input = 0.
ENDIF.
IF ( screen-name = 'ZLTAP-VSOLA' OR
screen-name = 'ZLTAP-LETYP' OR
screen-name = 'ZLTAP-ALTME' ).
screen-input = 1.
ENDIF.
ENDIF.
screen-input = 0.
ENDIF.
IF ( screen-name = 'ZLTAP-VSOLA' OR
screen-name = 'ZLTAP-LETYP' OR
screen-name = 'ZLTAP-ALTME' ).
screen-input = 1.
ENDIF.
ENDIF.
screen-input = 0.
ENDIF.
SET CURSOR FIELD 'ZLTAP-NLPLA'.
IF ( screen-name = 'ZLTAP-NLPLA' OR
screen-name = 'ZLTAP-VSOLA' OR
screen-name = 'ZLTAP-LETYP' OR
screen-name = 'ZLTAP-ALTME' ).
screen-input = 1.
ENDIF.
ENDIF.
* Base on indicator
IF v_bestq_not_fix = 'X'.
IF screen-name = 'ZLTAP-BESTQ' .
screen-input = 1.
ENDIF.
ENDIF.
IF v_lgort_not_fix = 'X'.
IF ( screen-name = 'ZLTAP-WERKS' OR
screen-name = 'ZLTAP-LGORT' ).
screen-input = 1.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDCASE.
CASE ok_code.
WHEN 'BACK'.
CLEAR v_messg.
CASE sy-dynnr.
WHEN '9001'.
LEAVE.
WHEN '9002'.
LEAVE TO SCREEN 9001.
ENDCASE.
WHEN 'CLR'.
PERFORM f_clear_data.
LEAVE TO SCREEN 9001.
WHEN OTHERS.
"DO Nothing
ENDCASE.
*&---------------------------------------------------------------------*
*& Module m_sbn_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_sbn_input INPUT.
PERFORM f_sbn_input.
ENDMODULE. " m_sbn_input INPUT
*&---------------------------------------------------------------------*
*& Module m_mat_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_mat_input INPUT.
PERFORM f_mat_input.
ENDMODULE. " m_mat_input INPUT
*&---------------------------------------------------------------------*
*& Module m_btc_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_btc_input INPUT.
PERFORM f_btc_input.
ENDMODULE. " m_btc_input INPUT
*&---------------------------------------------------------------------*
*& Module m_cat_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_cat_input INPUT.
PERFORM f_cat_input.
ENDMODULE. " m_cat_input INPUT
*&---------------------------------------------------------------------*
*& Module m_qty_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_qty_input INPUT.
PERFORM f_qty_input.
ENDMODULE. " m_qty_input INPUT
*&---------------------------------------------------------------------*
*& Module m_uom_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_uom_input INPUT.
PERFORM f_uom_input.
ENDMODULE. " m_uom_input INPUT
*&---------------------------------------------------------------------*
*& Module m_plt_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_plt_input INPUT.
PERFORM f_plt_slc_input.
ENDMODULE. " m_plt_input INPUT
*&---------------------------------------------------------------------*
*& Module m_slc_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_slc_input INPUT.
PERFORM f_plt_slc_input.
ENDMODULE. " m_slc_input INPUT
*&---------------------------------------------------------------------*
*& Module m_dbn_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE m_dbn_input INPUT.
PERFORM f_dbn_input.
ENDMODULE. " m_dbn_input INPUT
*&---------------------------------------------------------------------*
*& Module m_pty_input INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module m_pty_input input.
perform f_pty_input.
endmodule. " m_pty_input INPUT
*----------------------------------------------------------------------*
***INCLUDE ZID1WM004_F01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------
*
*& Form f_execute_prog
*&---------------------------------------------------------------------
FORM f_execute_prog.
CALL SCREEN 9001.
ENDFORM. " f_execute_prog
*&---------------------------------------------------------------------*
*& Form f_split_message_txt
*&---------------------------------------------------------------------*
FORM f_split_message_txt.
FIELD-SYMBOLS <lf_msg> TYPE ANY.
lv_messg = v_messg.
CLEAR: v_msg1, v_msg2, v_msg3, v_msg4, v_msg5, v_msg6.
DO 6 TIMES." lv_messg ne space.
IF lv_rest NE space.
lv_messg = lv_rest.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDFORM. " f_split_message_txt
*&---------------------------------------------------------------------*
*& Form user_own_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LRF_WKQU text
*----------------------------------------------------------------------*
FORM user_own_data USING p_lrf_wkqu.
ELSE.
v_messg = 'Activate RF User in the Warehouse!'.
CALL SCREEN 9002.
ENDIF.
ELSE.
v_messg = 'Register RF User in the Warehouse!'.
CALL SCREEN 9002.
ENDIF.
SELECT SINGLE *
FROM lagp
INTO t_lagp
WHERE lgnum EQ lrf_wkqu-lgnum
AND lgpla EQ zltap-vlpla.
IF sy-subrc EQ 0.
IF ( t_lagp-skzua NE space OR
t_lagp-skzsa NE space ).
CONCATENATE 'Bin:'
lrf_wkqu-lgnum '/' t_lagp-lgtyp '/'
zltap-vlpla
'dalam status block for removal'
INTO v_messg
SEPARATED BY space.
ENDIF.
IF t_lagp-skzsi NE space.
CONCATENATE 'Bin:'
lrf_wkqu-lgnum '/' t_lagp-lgtyp '/'
zltap-vlpla
'dalam status block for inventory'
INTO v_messg
SEPARATED BY space.
ENDIF.
ELSE.
IF v_messg NE space.
CLEAR zltap-vlpla.
CLEAR t_lagp. REFRESH t_lagp.
CALL SCREEN 9002.
ELSE.
zltap-lgnum = lrf_wkqu-lgnum.
zltap-vltyp = t_lagp-lgtyp.
ENDIF.
IF v_messg IS INITIAL.
IF t_mara-xchpf EQ space.
PERFORM f_check_stock.
ENDIF.
ENDIF.
PERFORM f_check_stock.
* if there is no master
IF NOT v_messg IS INITIAL.
CLEAR zltap-charg.
CALL SCREEN 9002.
ELSE.
PERFORM f_bestq_desc.
PERFORM f_altme_default.
ENDIF.
ENDFORM. " f_btc_input
*&---------------------------------------------------------------------*
*& Form f_cat_input
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_cat_input.
DATA: lv_messg_temp TYPE ty_line_ty.
CLEAR lv_messg_temp.
IF sy-subrc EQ 0.
zltap-charg = t_lqua-charg.
zltap-vfdat = t_lqua-vfdat.
zltap-werks = t_lqua-werks.
zltap-lgort = t_lqua-lgort.
zltap-bestq = t_lqua-bestq.
ELSE.
CONCATENATE
'Mat-Btc-Sta-Plant-Sloc tsb tidak ada dalam stock!'
'Status-Plant-Sloc akan dikembalikan ke default value!'
INTO v_messg SEPARATED BY space.
ENDIF.
* if error
IF NOT v_messg IS INITIAL.
CLEAR zltap-vsola.
CALL SCREEN 9002.
ENDIF.
* if error
IF NOT v_messg IS INITIAL.
PERFORM f_altme_default.
CALL SCREEN 9002.
ENDIF.
ENDFORM. " f_uom_input
*&---------------------------------------------------------------------*
*& Form f_plt_slc_input
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_plt_slc_input.
DATA: lv_messg_temp TYPE ty_line_ty.
CLEAR lv_messg_temp.
IF sy-subrc EQ 0.
zltap-charg = t_lqua-charg.
zltap-vfdat = t_lqua-vfdat.
zltap-werks = t_lqua-werks.
zltap-lgort = t_lqua-lgort.
zltap-bestq = t_lqua-bestq.
ELSE.
CONCATENATE
'Mat-Btc-Sta-Plant-Sloc tsb tidak ada dalam stock!'
'Status-Plant-Sloc akan dikembalikan ke default value!'
INTO v_messg SEPARATED BY space.
ENDIF.
SELECT SINGLE *
FROM lagp
INTO t_lagp
WHERE lgnum EQ zltap-lgnum
AND lgpla EQ zltap-nlpla.
IF sy-subrc EQ 0.
IF ( t_lagp-skzue NE space OR
t_lagp-skzse NE space ).
CONCATENATE 'Bin:'
lrf_wkqu-lgnum '/' t_lagp-lgtyp '/'
zltap-nlpla
'dalam status block for placement'
INTO v_messg
SEPARATED BY space.
ENDIF.
IF t_lagp-skzsi NE space.
CONCATENATE 'Bin:'
lrf_wkqu-lgnum '/' t_lagp-lgtyp '/'
zltap-nlpla
'dalam status block for inventory'
INTO v_messg
SEPARATED BY space.
ENDIF.
ELSE.
CONCATENATE 'Tidak ada master data untuk Bin:'
lrf_wkqu-lgnum
zltap-nlpla
INTO v_messg
SEPARATED BY space.
ENDIF.
IF v_messg NE space.
CLEAR zltap-nlpla.
CLEAR t_lagp. REFRESH t_lagp.
CALL SCREEN 9002.
ELSE.
zltap-nltyp = t_lagp-lgtyp.
ENDIF.
CLEAR lv_rec.
IF sy-subrc EQ 0.
READ TABLE t_lqua INDEX 1.
zltap-bestq = t_lqua-bestq.
zltap-vfdat = t_lqua-vfdat.
zltap-werks = t_lqua-werks.
zltap-lgort = t_lqua-lgort.
zltap-charg = t_lqua-charg.
zltap-vlqnr = t_lqua-lqnum.
zltap-letyp = t_lqua-letyp.
* bestq
CLEAR lt_lqua. REFRESH lt_lqua.
lt_lqua[] = t_lqua[].
DELETE ADJACENT DUPLICATES FROM lt_lqua
COMPARING bestq.
DESCRIBE TABLE lt_lqua LINES lv_rec.
IF lv_rec = 1.
CLEAR v_bestq_not_fix.
ELSE.
v_bestq_not_fix = 'X'.
ENDIF.
* lgort
CLEAR lt_lqua. REFRESH lt_lqua.
lt_lqua[] = t_lqua[].
DELETE ADJACENT DUPLICATES FROM lt_lqua
COMPARING werks lgort.
DESCRIBE TABLE lt_lqua LINES lv_rec.
IF lv_rec = 1.
CLEAR v_lgort_not_fix.
ELSE.
v_lgort_not_fix = 'X'.
ENDIF.
ENDIF.
ELSE.
CONCATENATE 'Tidak ada stock record untuk material'
zltap-matnr '/' zltap-charg
INTO v_messg
SEPARATED BY space.
ENDIF.
IF sy-subrc NE 0.
CONCATENATE 'Pallet Type tidak terdaftar!' ' '
INTO v_messg SEPARATED BY space.
ENDIF.
IF v_messg NE space.
CLEAR zltap-letyp.
CALL SCREEN 9002.
ENDIF.
* if error
IF NOT v_messg IS INITIAL.
CALL SCREEN 9002.
ENDIF.