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

at selection screen output

Former Member
0 Likes
1,030

Hi all,

I have the following code.


SELECTION-SCREEN BEGIN OF BLOCK b002 WITH FRAME TITLE text-002.
PARAMETERS: datumlow LIKE sy-datum DEFAULT sy-datum.
PARAMETERS: p_calid  LIKE tfacd-ident DEFAULT '01' MEMORY ID fci.
PARAMETERS: s_kweek(2) TYPE c.
PARAMETERS: s_kmon(2)  TYPE c.
PARAMETERS: s_kjahr(4) TYPE c.
SELECTION-SCREEN END OF BLOCK b002.
SELECTION-SCREEN BEGIN OF BLOCK b003 WITH FRAME TITLE text-003.
PARAMETERS: s_tag   RADIOBUTTON GROUP radi DEFAULT 'X' USER-COMMAND usr,
            p_woche RADIOBUTTON GROUP radi,
            p_monat RADIOBUTTON GROUP radi.
* Period value
PARAMETERS: p_perio(2) TYPE n DEFAULT '6'.
SELECTION-SCREEN END OF BLOCK b003.


*-----------------------------------------------------------------------
* At Selection-screen output
*-----------------------------------------------------------------------
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    PERFORM field_auswahl.
  ENDLOOP.
FORM field_auswahl.
  CASE screen-name.
    WHEN 'DATUMLOW'.
      IF s_tag = space.
        screen-input = 0.
      ELSE.
        screen-input = 1.
      ENDIF.

    WHEN 'S_KWEEK' OR 'S_KJAHR'.
      IF p_woche = space.
        screen-input = 0.
      ELSE.
        screen-input = 1.
      ENDIF.
   when 'S_KMONAT' or 'S_KJAHR'.
   IF p_monat = space.
      screen-input = 0.
    ELSE.
      screen-input = 1.
    ENDIF.
  ENDCASE.
  MODIFY SCREEN.
ENDFORM.                    " field_auswahl
In the first two cases WHEN 'DATUMLOW' and WHEN 'S_KWEEK' OR 'S_KJAHR'the program working fine.
But in 3rd case when 'S_KMONAT' or 'S_KJAHR'.when i select p_monat its also disabling s_kjahr.

When I select 3rd case it should enable both s_monat and s_kjahr.but its only enabling s_monat and disabling s_kjahr.

Please kindly help me.

Thanks and regards
Chandu.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
999

CAN YOU TRY LIKE BELOW AND CHECK IF IT WORKS OR NOT

> CASE screen-name.

> WHEN 'DATUMLOW'.

> IF s_tag = space.

> screen-input = 0.

> ELSE.

> screen-input = 1.

> ENDIF.

>

WHEN 'S_KJAHR'.

IF P_WOCHE NE SPACE OR

P_MONAT NE SPACE.

SCREEN-INPUT = 1.

ELSE.

SCREEN-INPUT = 0.

ENDIF.

> WHEN 'S_KWEEK'.

> IF p_woche = space.

> screen-input = 0.

> ELSE.

> screen-input = 1.

> ENDIF.

> when 'S_KMONAT'.

> IF p_monat = space.

> screen-input = 0.

> ELSE.

> screen-input = 1.

> ENDIF.

> ENDCASE.

> MODIFY SCREEN.

Hi all,

I have the following code.


SELECTION-SCREEN BEGIN OF BLOCK b002 WITH FRAME TITLE text-002.
PARAMETERS: datumlow LIKE sy-datum DEFAULT sy-datum.
PARAMETERS: p_calid  LIKE tfacd-ident DEFAULT '01' MEMORY ID fci.
PARAMETERS: s_kweek(2) TYPE c.
PARAMETERS: s_kmon(2)  TYPE c.
PARAMETERS: s_kjahr(4) TYPE c.
SELECTION-SCREEN END OF BLOCK b002.
SELECTION-SCREEN BEGIN OF BLOCK b003 WITH FRAME TITLE text-003.
PARAMETERS: s_tag   RADIOBUTTON GROUP radi DEFAULT 'X' USER-COMMAND usr,
            p_woche RADIOBUTTON GROUP radi,
            p_monat RADIOBUTTON GROUP radi.
* Period value
PARAMETERS: p_perio(2) TYPE n DEFAULT '6'.
SELECTION-SCREEN END OF BLOCK b003.


*-----------------------------------------------------------------------
* At Selection-screen output
*-----------------------------------------------------------------------
AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    PERFORM field_auswahl.
  ENDLOOP.
FORM field_auswahl.
  CASE screen-name.
    WHEN 'DATUMLOW'.
      IF s_tag = space.
        screen-input = 0.
      ELSE.
        screen-input = 1.
      ENDIF.

    WHEN 'S_KWEEK' OR 'S_KJAHR'.
      IF p_woche = space.
        screen-input = 0.
      ELSE.
        screen-input = 1.
      ENDIF.
   when 'S_KMONAT' or 'S_KJAHR'.
   IF p_monat = space.
      screen-input = 0.
    ELSE.
      screen-input = 1.
    ENDIF.
  ENDCASE.
  MODIFY SCREEN.
ENDFORM.                    " field_auswahl
In the first two cases WHEN 'DATUMLOW' and WHEN 'S_KWEEK' OR 'S_KJAHR'the program working fine.
But in 3rd case when 'S_KMONAT' or 'S_KJAHR'.when i select p_monat its also disabling s_kjahr.

When I select 3rd case it should enable both s_monat and s_kjahr.but its only enabling s_monat and disabling s_kjahr.

Please kindly help me.

Thanks and regards
Chandu.

9 REPLIES 9
Read only

Former Member
0 Likes
1,000

CAN YOU TRY LIKE BELOW AND CHECK IF IT WORKS OR NOT

> CASE screen-name.

> WHEN 'DATUMLOW'.

> IF s_tag = space.

> screen-input = 0.

> ELSE.

> screen-input = 1.

> ENDIF.

>

WHEN 'S_KJAHR'.

IF P_WOCHE NE SPACE OR

P_MONAT NE SPACE.

SCREEN-INPUT = 1.

ELSE.

SCREEN-INPUT = 0.

ENDIF.

> WHEN 'S_KWEEK'.

> IF p_woche = space.

> screen-input = 0.

> ELSE.

> screen-input = 1.

> ENDIF.

> when 'S_KMONAT'.

> IF p_monat = space.

> screen-input = 0.

> ELSE.

> screen-input = 1.

> ENDIF.

> ENDCASE.

> MODIFY SCREEN.

Read only

0 Likes
999

try to give

if screen-name =....

by giving like that, u can disable exactly what u want

Read only

0 Likes
999

Hi sai,

Thanks for ur reply,

But its not working

Read only

0 Likes
999

It is S_KMON not S_KMONAT.

<b>when 'S_KMON' or 'S_KJAHR'.</b>

Read only

0 Likes
999

Hi Wenceslaus,

I didnt see that.

Thanks alot.

Read only

0 Likes
999
*&---------------------------------------------------------------------*
*& Report  ZTEST_MODIFY_SCR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTEST_MODIFY_SCR.

SELECTION-SCREEN BEGIN OF BLOCK B002 WITH FRAME TITLE TEXT-002.
PARAMETERS: DATUMLOW LIKE SY-DATUM DEFAULT SY-DATUM.
PARAMETERS: P_CALID LIKE TFACD-IDENT DEFAULT '01' MEMORY ID FCI.
PARAMETERS: S_KWEEK(2) TYPE C.
PARAMETERS: S_KMON(2)  TYPE C.
PARAMETERS: S_KJAHR(4) TYPE C.
SELECTION-SCREEN END OF BLOCK B002.SELECTION-SCREEN BEGIN OF BLOCK B003
WITH FRAME TITLE TEXT-003.
PARAMETERS: S_TAG   RADIOBUTTON GROUP RADI
DEFAULT 'X' USER-COMMAND USR,
P_WOCHE RADIOBUTTON GROUP RADI,
P_MONAT RADIOBUTTON GROUP RADI.
* PERIOD VALUE
PARAMETERS:
P_PERIO(2) TYPE N DEFAULT '6'.
SELECTION-SCREEN END OF BLOCK B003.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    PERFORM
  FIELD_AUSWAHL.
  ENDLOOP.
*&--------------------------------------------------------------------*
*&      Form  field_auswahl
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM FIELD_AUSWAHL.
  CASE SCREEN-NAME.
    WHEN 'DATUMLOW'.
      IF S_TAG = SPACE.
        SCREEN-INPUT = 0.
      ELSE.
        SCREEN-INPUT = 1.
      ENDIF.
    WHEN 'S_KWEEK' ."or 'S_KJAHR'.
      IF P_WOCHE = SPACE.
        SCREEN-INPUT = 0.
      ELSE.
        SCREEN-INPUT = 1.
      ENDIF.
<b>    WHEN 'S_KJAHR'.
      IF P_WOCHE = 'X'.
        SCREEN-INPUT = 1.
      ELSEIF P_MONAT = 'X'.
        SCREEN-INPUT = 1.
      ELSE.
        SCREEN-INPUT = 0.
      ENDIF.</b>
    WHEN 'S_KMON'." or 'S_KJAHR'.

      IF P_MONAT = SPACE.
        SCREEN-INPUT = 0.
      ELSE.
        SCREEN-INPUT = 1.
      ENDIF.
  ENDCASE.
  MODIFY SCREEN.
ENDFORM.                    "FIELD_AUSWAHL

change the code according to bold one.

regards

vijay

Read only

0 Likes
999

Hi all,

Thanks alot.

Amit ur code worked fine but when i select p_woche its diabling s_kjahr field.

Read only

Former Member
0 Likes
999

CAN YOU PLEASE TRY THIS..

IF P_WOCHE IS SELECTED OR P_MONAT IS SELECTED THEN S_KJAHR SHOULD BE ENABLED..IS THAT TRUE

CASE screen-name.

WHEN 'DATUMLOW'.

IF s_tag = space.

screen-input = 0.

ELSE.

screen-input = 1.

ENDIF.

WHEN 'S_KWEEK'.

IF p_woche = space.

screen-input = 0.

ELSE.

screen-input = 1.

ENDIF.

when 'S_KMONAT'.

IF p_monat = space.

screen-input = 0.

ELSE.

screen-input = 1.

ENDIF.

WHEN 'S_KJAHR'.

IF P_MONAT NE SPACE OR

P_WOCHE NE SPACE.

SCREEN-INPUT = 1.

ELSE.

SCREEN-OUTPUT = 0.

ENDIF.

ENDCASE.

Read only

Former Member
0 Likes
999

hi sai,

1. Its will not work like this

bcos

2. The 2nd condition gets true,

and hence, the third condition

never gets fired.

(In CASE,encdase,

if one condition gets satsifeid,

the other when is not triggered)

3. Replace your form with THIS

and it will work FANTASITC !

4.

FORM field_auswahl.

IF screen-name = 'DATUMLOW' AND s_tag = space.

screen-input = 0.

ENDIF.

IF screen-name = 'DATUMLOW' AND s_tag <> space.

screen-input = 1.

ENDIF.

IF ( screen-name = 'S_KWEEK' OR screen-name = 'S_KJAHR' )

AND p_woche = space.

screen-input = 0.

ENDIF.

IF ( screen-name = 'S_KWEEK' OR screen-name = 'S_KJAHR' )

AND p_woche <> space.

screen-input = 1.

ENDIF.

IF ( screen-name = 'S_KMON' OR screen-name = 'S_KJAHR' )

AND p_monat = space.

screen-input = 0.

ENDIF.

IF ( screen-name = 'S_KMON' OR screen-name = 'S_KJAHR' )

AND p_monat <> space.

screen-input = 1.

ENDIF.

MODIFY SCREEN.

ENDFORM.

*----


*S_KMON (and not S_KMONAT)

*already taken care of in the above code :

regards,

amit m.

Message was edited by: Amit Mittal