2006 Feb 08 7:26 AM
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.
2006 Feb 08 7:34 AM
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 Wenceslaus,
I didnt see that.
Thanks alot.
2006 Feb 08 7:34 AM
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.
2006 Feb 08 7:36 AM
try to give
if screen-name =....
by giving like that, u can disable exactly what u want
2006 Feb 08 7:53 AM
2006 Feb 08 8:00 AM
It is S_KMON not S_KMONAT.
<b>when 'S_KMON' or 'S_KJAHR'.</b>
2006 Feb 08 8:05 AM
2006 Feb 08 8:14 AM
*&---------------------------------------------------------------------*
*& 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_AUSWAHLchange the code according to bold one.
regards
vijay
2006 Feb 08 8:23 AM
Hi all,
Thanks alot.
Amit ur code worked fine but when i select p_woche its diabling s_kjahr field.
2006 Feb 08 8:04 AM
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.
2006 Feb 08 8:07 AM
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
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |