Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

dialog program

Former Member
0 Likes
592

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

3 REPLIES 3
Read only

Former Member
0 Likes
503

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

Read only

0 Likes
503

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.

Read only

0 Likes
503

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......