‎2007 May 02 8:00 AM
hi ,
this is vijay here. i m facing a problem in dialog programming.
well i have one input output field type. so when i m going 4 change and taking the f4 help and after selection i change the value and then save but some time previous value is not deleting.
please suggest me the right code.
&----
*& Module pool SAPMZA_BGTYPE
*&
&----
*&
*&
&----
PROGRAM SAPMZA_BGTYPE.
TABLES: ZFIT_BGTYPE.
DATA: W_CSAV(1).
DATA: W_NSAV(1).
DATA: W_BGTYPE LIKE ZFIT_BGTYPE.
DATA: ok_code TYPE sy-ucomm OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF T_BGTYPE OCCURS 0,
BG_TYPE LIKE ZFIT_BGTYPE-BG_TYPE,
END OF T_BGTYPE.
process before output.
module status_9000.
module set_status_9000.
module set_screen_9000.
process after input.
module user_command_9000.
module change.
module save.
process on value-request.
field zfit_bgtype-bg_type module value_help.
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_9000 INPUT.
IF SY-UCOMM = 'NEW'.
loop at screen.
if screen-group1 = '001'.
screen-ACTIVE = '1'.
modify screen.
endif.
endloop.
W_NSAV = 1.
ENDIF.
CASE OK_CODE.
WHEN 'BACK' .
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_9000 INPUT
&----
*& Module STATUS_9000 OUTPUT
&----
text
----
MODULE STATUS_9000 OUTPUT.
SET PF-STATUS 'BUTTONS'.
SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_9000 OUTPUT
&----
*& Module value_help INPUT
&----
text
----
MODULE value_help INPUT.
select BG_TYPE from ZFIT_BGTYPE
into corresponding fields of table T_BGTYPE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = 'ZFIT_BGTYPE'
RETFIELD = 'BG_TYPE'
PVALKEY = ' '
DYNPPROG = 'SAPMZA_BGTYPE'
DYNPNR = '0100'
DYNPROFIELD = 'ZFIT_BGTYPE-BG_TYPE'
STEPL = SY-STEPL
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = T_BGTYPE
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.
*T_BGTYPE-BG_TYPE =
ENDMODULE. " value_help INPUT
&----
*& Module SAVE INPUT
&----
text
----
MODULE SAVE INPUT.
IF OK_CODE = 'SAVE'.
IF W_CSAV = 1.
DELETE ZFIT_BGTYPE FROM W_BGTYPE.
MODIFY ZFIT_BGTYPE.
CLEAR W_BGTYPE.
IF SY-SUBRC = 0.
COMMIT WORK.
ENDIF.
ENDIF.
ELSEIF W_NSAV = 1.
INSERT ZFIT_BGTYPE.
ENDIF.
CASE SY-UCOMM.
WHEN 'NEW'.
CLEAR ZFIT_BGTYPE.
WHEN 'REFRESH'.
CLEAR ZFIT_BGTYPE.
ENDCASE.
ENDMODULE. " SAVE INPUT
&----
*& Module set_screen_9000 OUTPUT
&----
text
----
MODULE set_screen_9000 OUTPUT.
IF sy-ucomm = 'CHANGE'.
loop at screen.
screen-active = '1'.
screen-input = '1'.
modify screen.
endloop.
ELSEIF SY-UCOMM EQ 'NEW'.
LOOP AT SCREEN.
check screen-group1 = '001'.
screen-input = '1'.
modify screen.
endloop.
ELSE.
LOOP AT SCREEN.
check screen-group1 = '001'.
screen-input = '0'.
modify screen.
endloop.
ENDIF.
ENDMODULE. " set_screen_9000 OUTPUT
&----
*& Module change INPUT
&----
text
----
MODULE change INPUT.
IF SY-UCOMM = 'CHANGE'.
LOOP AT SCREEN.
check screen-group1 = '001'.
screen-ACTIVE = '1'.
modify screen.
ENDLOOP.
W_CSAV = 1.
SELECT SINGLE * FROM ZFIT_BGTYPE INTO W_BGTYPE.
ENDIF.
ENDMODULE. " change INPUT
&----
*& Module set_status_9000 OUTPUT
&----
text
----
MODULE set_status_9000 OUTPUT.
clear OK_CODE[].
IF SY-UCOMM NE 'NEW'.
APPEND 'SAVE' TO OK_CODE.
endif.
set pf-status 'BUTTONS' excluding OK_CODE.
ENDMODULE. " set_status_9000 OUTPUT
thanks in advance*
every helpfull answer will be rewarded*
thanks and regards
vijay
‎2007 May 02 8:17 AM
hi,
can u just give me more details abt ur prob i am not clear abt ur req do u mean in slection screen if u delete an field some preveious values r agin showing..??
try to initialize the selection screen field values before u capture user inputs.
reward if helpful
ravi
‎2007 May 02 8:33 AM
hi ravi,
this is vijay here.
well i have one input output field type on selection screen.i have 4 buttons 'new' 'change' ' refresh' and 'exit'. every thing is working fine except change button, so when i m going 4 change and taking the f4 help and after selection i change the value and then save but some time previous value is not deleting in the database. since directly i m taking value from the dictionary.
please suggest me the right code.
‎2007 May 02 8:40 AM
HI Vijay,
Here u have passed the table T_BGTYPE to FM,but u Haven't read that table for valu..I mean u have to use read stmt like this
reab table T_BGTYPE index sy-tabix with key......
ther u have to read that value into ur filed(input field)..
it is upto my knowledge.
regards,
ram.
reward if help ful......