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

Making screen elements invisible

Former Member
0 Likes
1,267

Hello Experts,

I have some text fields on selection screen.They all have been assigned to a particular modif id.

I have to write a code so that when we reach the selection screen for the first time,these screens are not visible.These text fields should become visible only when the user clicks a button.

Kindly help with a sample code.

Points would be definately rewarded.

My code looks like

6 REPLIES 6
Read only

Former Member
0 Likes
824

Hi

try this sample code :

PARAMETERS P_NAME.

DATA TIME TYPE SY-UZEIT.
DATA FLAG.
DATA DIFF TYPE I.

At selection-screen output.
IF FLAG IS INITIAL.
TIME = SY-UZEIT.
FLAG = 'X'.
ENDIF.

DIFF = SY-UZEIT - TIME.

IF DIFF > 30.
Loop at screen.
if screen-name cp '*P_NAME*'.
screen-ACTIVE = 0.
modify screen.
ENDIF.
Endloop.

ENDIF.

With Regards

Nikunj Shah

Read only

Former Member
0 Likes
824

To make all of the fields invisible, use the following code:

loop at screen.

screen-invisible = u20181u2019.

modify screen.

endloop.

Read only

Former Member
0 Likes
824

Hi,

Check out this sample code


REPORT z_sdn.
 
PARAMETERS:
  p_num RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND abc,
  p_char RADIOBUTTON GROUP rad1.
 
PARAMETERS:
  p_num1 TYPE i MODIF ID num,
  p_num2 TYPE i MODIF ID num,
  p_char1 TYPE c MODIF ID chr,
  p_char2 TYPE c MODIF ID chr.
 
 
AT SELECTION-SCREEN OUTPUT.
  IF p_num EQ 'X'.
    LOOP AT SCREEN.
      IF screen-group1 EQ 'CHR'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ELSE.
    LOOP AT SCREEN.
      IF screen-group1 EQ 'NUM'.
        screen-active = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.
 

Regards

Abhijeet

Read only

Former Member
0 Likes
824

HI Jaydeep,

pls. have a look at the following code (this will show you month name acc. to period entered on sel. screen)

PARAMETERS : p_mon TYPE poper DEFAULT '012' OBLIGATORY

VISIBLE LENGTH 2.

SELECTION-SCREEN COMMENT 37(15) lv_monat FOR FIELD p_mon.

-


AT SELECTION-SCREEN.

-


PERFORM get_buper USING p_gjahr

p_mon

CHANGING lv_monat.

...

FORM get_buper USING i_jahr TYPE any

i_monat TYPE any

CHANGING p_monam TYPE any.

lv_period = i_monat.

CALL FUNCTION 'G_POSTING_DATE_OF_PERIOD_GET'

EXPORTING

period = lv_period

variant = 'L1'

year = i_jahr

IMPORTING

from_date = lv_date

EXCEPTIONS

period_not_defined = 1

variant_not_defined = 2

OTHERS = 3.

IF sy-subrc EQ 0.

lv_period = lv_date+4(2).

SELECT SINGLE monam INTO p_monam FROM t015m

WHERE spras = sy-langu

AND monum = lv_period.

IF sy-subrc NE 0.

CLEAR p_monam.

ENDIF.

ENDIF.

ENDFORM. " GET_BUPER

SO USE : SELECTION-SCREEN COMMENT STATMENT

Hope it is helps.

Regards,

T.Durai murugan.

Hope it is helps.

Regards,

T.Durai murugan.

Read only

Former Member
0 Likes
824

Check the sample code

REPORT  ZTEST_SELE.

DATa : UCOMM TYPE SY-UCOMM.
TABLES sscrfields.

PARAMETERS: p_carrid TYPE s_carr_id  modif id ABC,
            p_cityfr TYPE s_from_cit.

SELECTION-SCREEN: FUNCTION KEY 1,
                  FUNCTION KEY 2.

INITIALIZATION.
  sscrfields-functxt_01 = 'LH'.
  sscrfields-functxt_02 = 'UA'.

AT SELECTION-SCREEN OUTPUT.
if ucomm <> 'FC01'.
 loop at screen.
  if screen-group1 = 'ABC'.
    screen-active = 0.
    modify screen.
  endif.
 endloop.
endif.
AT SELECTION-SCREEN.
  CASE sscrfields-ucomm.
      WHEN'FC01'.
      ucomm = sscrfields-ucomm.
      p_carrid = 'LH'.
      p_cityfr = 'Frankfurt'.
    WHEN 'FC02'.
      p_carrid = 'UA'.
      p_cityfr = 'Chicago'.
  ENDCASE.

START-OF-SELECTION.
  WRITE / 'START-OF-SELECTION'.

Read only

vinod_vemuru2
Active Contributor
0 Likes
824

Hi,

Just copy paste below code. It works fine.


PARAMETERS: po_1 TYPE c MODIF ID id1,
            po_2 TYPE c MODIF ID id1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN PUSHBUTTON /10(30) bt USER-COMMAND ucomm.
DATA: l_ucomm TYPE sy-ucomm.

INITIALIZATION.
  bt = 'Click me to get input fields'.

AT SELECTION-SCREEN OUTPUT.
  CHECK l_ucomm IS INITIAL.
  LOOP AT SCREEN.
    CHECK screen-group1 = 'ID1'.
    screen-active = 0.
    MODIFY SCREEN.
  ENDLOOP.

AT SELECTION-SCREEN.
  l_ucomm = sy-ucomm.
  LOOP AT SCREEN.
    CHECK screen-group1 = 'ID1'.
    screen-active = 1.
    MODIFY SCREEN.
  ENDLOOP.

Thanks,

Vinod.