‎2006 Feb 07 11:10 AM
Here the code:
MODULE user_command_0200 INPUT.
CASE sy-ucomm.
WHEN 'MODI'.
PERFORM layout200 .
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
FORM layout200.
LOOP AT SCREEN.
IF NOT screen-name CS 'PERNR'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
COMMIT WORK.
ENDFORM. " layout200
The problem is: Why the field with screen-input = '1', don't become white? They are always grey.
I've also verified in the debug mode and it seems correct.
Thanks for the answer.
‎2006 Feb 07 11:16 AM
Hi
You have to manage it in your PBO not PAI, change your code in this way:
PROCESS PBO
MODULE LOOP_SCREEN.
PROCESS PAI
MODULE user_command_0200
*----
MODULE LOOP_SCREEN.
CHECK FL_SCREEN_INPUT = 'X'.
LOOP AT SCREEN.
IF NOT screen-name CS 'PERNR'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDMODULE.
FORM layout200.
FL_INPUT_SCREEN = 'X'.
ENDFORM. " layout200
Max
‎2006 Feb 07 11:16 AM
Hi
You have to manage it in your PBO not PAI, change your code in this way:
PROCESS PBO
MODULE LOOP_SCREEN.
PROCESS PAI
MODULE user_command_0200
*----
MODULE LOOP_SCREEN.
CHECK FL_SCREEN_INPUT = 'X'.
LOOP AT SCREEN.
IF NOT screen-name CS 'PERNR'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDMODULE.
FORM layout200.
FL_INPUT_SCREEN = 'X'.
ENDFORM. " layout200
Max
‎2006 Feb 07 11:24 AM
Yes, but i must associate this event at the user_command WHEN SY-UCOMM = 'MODI'.
‎2006 Feb 07 11:37 AM
Hi,
the code wot given by max bianchi is exactly correct, genraly the screen modifications we will do in PBO only.
as per max when your sy-ucomm = 'modi'.
a flag = 'x'.
and PBO he is making that field input = '1' when the flag become x.
in max code you add
clear flag before making that flag = 'x'.
for better partice.
‎2006 Feb 07 11:30 AM
You need to call the subroutine layout200 inside the module at PBO. Here is the code:
PROCESS BEFORE OUTPUT.
Module modify_screen.
-
MODULE modify_screen.
PERFORM layout200.
ENDMODULE.
-
FORM layout200.
LOOP AT SCREEN.
IF NOT screen-name CS 'PERNR'.
screen-input = '1'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM.
‎2006 Feb 07 11:33 AM
Hi Avalor,
You can set a flag in PAI when sy-ucomm = 'MODI' and can call the screen again.
In the PBO of the screen you can check the value of flag and modify screen accordingly.
Regards,
Neeraj