Академический Документы
Профессиональный Документы
Культура Документы
module user_command_8000.
process on value-request.
Se38
tables : ysrtmm.
*&---------------------------------------------------------------------*
*& Module STATUS_8000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module status_8000 output.
case sy-ucomm.
when 'DISP'.
select sno sname scity sedu spercent
from ysrtmm into corresponding fields of table i_ysrtmm1.
when 'ADD'.
flag = 'Y'.
when 'INSE'.
clear i_ysrtmm1.
loop at i_ysrtmm1.
i_final-mandt = sy-mandt.
i_final-sno = i_ysrtmm1-sno.
i_final-sname = i_ysrtmm1-sname.
i_final-scity = i_ysrtmm1-scity.
i_final-sedu = i_ysrtmm1-sedu.
i_final-spercent = i_ysrtmm1-spercent.
append i_final.
clear : i_final.
endloop.
if sy-subrc ne 0.
if i_final[] is not initial.
insert ysrtmm from table i_final.
if sy-subrc eq 0.
commit work.
message i010.
clear : i_ysrtmm,i_ysrtmm1,i_final.
refresh : i_ysrtmm,i_ysrtmm1,i_final.
leave screen.
else.
rollback work.
endif.
endif.
else.
message i012.
endif.
clear : i_check.
refresh i_check.
when 'DELE'.
when 'UPDA'.
loop at i_ysrtmm1.
i_final-mandt = sy-mandt.
i_final-sno = i_ysrtmm1-sno.
i_final-sname = i_ysrtmm1-sname.
i_final-scity = i_ysrtmm1-scity.
i_final-sedu = i_ysrtmm1-sedu.
i_final-spercent = i_ysrtmm1-spercent.
append i_final.
clear : i_final.
endloop.
clear : i_check.
refresh i_check.
when 'REFR'.
refresh i_ysrtmm1.
when 'EXIT'.
leave program.
case wk_answer.
when 'J'.
leave program.
endcase.
endcase.
lines = sy-loopc.
if sy-ucomm eq 'ENTER'.
select single sname scity sedu spercent from ysrtmm
into i_tmp
where sno = i_ysrtmm-sno.
if sy-subrc = 0.
i_ysrtmm-sname = i_tmp-sname.
i_ysrtmm-scity = i_tmp-scity.
i_ysrtmm-sedu = i_tmp-sedu.
i_ysrtmm-spercent = i_tmp-spercent.
endif.
endif.
loop at screen.
if screen-name = 'I_YSRTMM-SNO'.
screen-input = '0'.
modify screen.
endif.
if screen-name = 'I_YSRTMM-SNAME'.
screen-input = '0'.
modify screen.
endif.
if screen-name = 'I_YSRTMM-SCITY'.
screen-input = '0'.
modify screen.
endif.
if screen-name = 'I_YSRTMM-SEDU'.
screen-input = '0'.
modify screen.
endif.
if screen-name = 'I_YSRTMM-SPERCENT'.
screen-input = '0'.
modify screen.
endif.
endloop.
if sy-ucomm = 'ADD'.
loop at screen.
if flag is initial.
screen-input = 0.
elseif ( flag eq 'Y' ).
if ( ( screen-name = 'I_YSRTMM-SNO' or
screen-name = 'I_YSRTMM-SNAME' or
screen-name = 'I_YSRTMM-SCITY' or
screen-name = 'I_YSRTMM-SEDU' or
screen-name = 'I_YSRTMM-SPERCENT' )
and control-current_line le lines ).
screen-input = 1.
else.
endif.
endif.
modify screen.
endloop.
endif.
refresh it_tmp.
append it_tmp.
endselect.
if sy-subrc = 0.
condense t_return-fieldval.
wk_sno = t_return-fieldval.
endif.