Application Development 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: 

loop AT SCREEN ERROR

Former Member
0 Kudos

TABLES: LIKP,LIPS,VTTK.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-T01.

SELECT-OPTIONS: S_VKORG FOR LIKP-VKORG , "sales org

S_VTWEG FOR LIPS-VTWEG, "dis channel

S_SPART FOR LIPS-SPART, "division

S_ERDAT FOR VTTK-ERDAT, "creation date

S_RERDAT FOR VTTK-ERDAT.

SELECTION-SCREEN SKIP 1 .

PARAMETER: P_INB RADIOBUTTON GROUP RD1 USER-COMMAND UC1,

P_OUT RADIOBUTTON GROUP RD1 DEFAULT 'X' .

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN OUTPUT.

IF P_OUT = 'X'.

LOOP AT SCREEN.

IF SCREEN-NAME = 's_rerdat'.

SCREEN-INPUT = 0.

SCREEN-INPUT = 0.

SCREEN-INPUT = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF P_INB = 'X'.

LOOP AT SCREEN.

IF SCREEN-NAME = 's_erdat'.

  • SSCRFIELDS-UCOMM = .

SCREEN-INPUT = 0.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

THE ABOVE CODING IS NOT WORKING PROPERLY.

I WANT TO DIS ENABLE.

REGARDS

PRIYA

7 REPLIES 7

Former Member
0 Kudos

Priya,

Always give the fields names in uppercase. S_ERDAT.

Regards,

Ravi

former_member184569
Active Contributor
0 Kudos

Change to

if screen-name = 'S_RERDAT'.

Thanks,

Susmitha

former_member186077
Active Participant
0 Kudos

Try this .

IF P_OUT = 'X'.

LOOP AT SCREEN.

IF SCREEN-NAME = 'S_RERDAT'.

SCREEN-INPUT = 0.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF P_INB = 'X'.

LOOP AT SCREEN.

IF SCREEN-NAME = 'S_ERDAT'.

SCREEN-INPUT = 0.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

Regards,

Sriranjani .

Former Member
0 Kudos

HI

GOOD

CHECK THE FOLLOWING CODE OF THE LOOP AT SCREEN AND CHECK WITH YOUR CODE

REPORT demo_dynpro_modify_simple.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA flag(1) TYPE c.

CALL SCREEN 100.

MODULE status_0100 OUTPUT.

SET PF-STATUS 'SCREEN_100'.

LOOP AT SCREEN.

IF screen-group1 = 'MOD'.

IF flag = ' '.

screen-input = '0'.

ELSEIF flag = 'X'.

screen-input = '1'.

ENDIF.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDMODULE.

MODULE cancel.

LEAVE PROGRAM.

ENDMODULE.

MODULE user_command_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'TOGGLE'.

IF flag = ' '.

flag = 'X'.

ELSEIF flag = 'X'.

flag = ' '.

ENDIF.

ENDCASE.

ENDMODULE.

THANKS

MRUTYUN

Former Member
0 Kudos

Hi priya,

1. Two minor mistakes.

2. a) use CAPITAL S_RERDAT

b) In select-option use CS (instead of 😃

IF SCREEN-NAME CS 'S_RERDAT'.

(this will include the high,low, label field also)

3. I just tried your program, with modifications,

and it works fantastic now.

(u can also use further SCREEN-INVISIBLE = 1 to make the field invisible)

4. Just copy paste

(important code has been marked in BOLD)

5.

report abc.

TABLES: LIKP,LIPS,VTTK.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-T01.

SELECT-OPTIONS: S_VKORG FOR LIKP-VKORG , "sales org

S_VTWEG FOR LIPS-VTWEG, "dis channel

S_SPART FOR LIPS-SPART, "division

S_ERDAT FOR VTTK-ERDAT, "creation date

S_RERDAT FOR VTTK-ERDAT.

SELECTION-SCREEN SKIP 1 .

PARAMETER: P_INB RADIOBUTTON GROUP RD1 USER-COMMAND UC1,

P_OUT RADIOBUTTON GROUP RD1 DEFAULT 'X' .

SELECTION-SCREEN END OF BLOCK B1.

*----


AT SELECTION-SCREEN OUTPUT.

IF P_OUT = 'X'.

LOOP AT SCREEN.

<b> IF SCREEN-NAME CS 'S_RERDAT'.</b>

SCREEN-INPUT = 0.

  • SCREEN-INVISIBLE = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF P_INB = 'X'.

LOOP AT SCREEN.

<b> IF SCREEN-NAME CS 'S_ERDAT'.</b>

SCREEN-INPUT = 0.

  • SCREEN-INVISIBLE = 1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

regards,

amit m.

Former Member
0 Kudos

it's very simple

SCREEN-NAME = 's_rerdat-low' and s_rerdat-high .

it will automatically dis enable.

thanks for ur helps.

0 Kudos

Hi again,

1. Yes u are right,

we can also directly use

field-low , field-high.

2. But in case we want to make the

fields invisible,

we also need to make invisible

a) the label which appears on the left

b) low field

c) high field

d) the SQuare button which appears on the right

(for multi-selection)

3. Then its better to use

<b> IF SCREEN-NAME CS 'S_RERDAT'.</b>

(this will take care of all the four points above.

regards,

amit m.