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

Selection screen modification

Former Member
0 Likes
998

Hi Experts,

Kindly gothrough the below codes and when i click on rb2 radiobutton only that selection option must appear but it is coming when i execute the program,, can any one help to resolve this issue...,

&----


*& Report ZPROGRAM_KPI

*&

&----


*&

*&

&----


REPORT ZPROGRAM_KPI.

TYPE-POOLS SLIS.

tables : pb4000.

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT.

DATA : IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT1 LIKE LINE OF IT_FCAT1.

data : lv_end TYPE dats,

lv_beg TYPE dats,

v type i.

data : begin of wa_pb40001,

pernr type pb4000-pernr,

SUBTY TYPE PB4000-SUBTY,

begda type pb4000-begda,

end of wa_pb40001,

it_pb40001 like table of wa_pb40001.

data : begin of wa_pb40002,

pernr type pb4000-pernr,

SUBTY TYPE PB4000-SUBTY,

begda type pb4000-begda,

end of wa_pb40002,

it_pb40002 like table of wa_pb40002.

selection-screen begin of block k with frame title text-001.

parameter : rb1 radiobutton group t, rb2 radiobutton group t.

selection-screen end of block k.

if rb1 = 'X'.

CALL FUNCTION 'OIL_LAST_DAY_OF_PREVIOUS_MONTH'

EXPORTING

i_date_old = sy-datum

IMPORTING

e_date_new = lv_end.

lv_beg = lv_end.

lv_beg+6(2) = '01'.

SELECT pernr SUBTY FROM pb4000 INTO TABLE it_pb40001 where begda BETWEEN lv_beg AND lv_end.

perform fcat using '1' 'PERNR' 'Personnel number' '20' 'C610'.

perform fcat using '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number in previous month'

IT_FIELDCAT = IT_FCAT

TABLES

t_outtab = IT_PB40001.

.

elseif rb2 = 'X'.

select-options s_date for wa_pb40001-begda obligatory.

SELECT pernr SUBTY FROM pb4000 INTO TABLE it_pb40002 where begda in s_date.

perform fcat1 using '1' 'PERNR' 'Personnel number' '20' 'C610'.

perform fcat1 using '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number using selection screen'

IT_FIELDCAT = IT_FCAT1

TABLES

t_outtab = IT_PB40002.

endif.

&----


*& Form FCAT

&----


  • text

----


  • -->P_0068 text

  • -->P_0069 text

  • -->P_0070 text

----


form FCAT using FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT-COL_POS = FP_COL_POS.

WA_FCAT-FIELDNAME = FP_FIELDNAME.

WA_FCAT-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT TO IT_FCAT.

CLEAR WA_fCAT.

endform. " FCAT

&----


*& Form FCAT

&----


  • text

----


  • -->P_0068 text

  • -->P_0069 text

  • -->P_0070 text

----


form FCAT1 using FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT1-COL_POS = FP_COL_POS.

WA_FCAT1-FIELDNAME = FP_FIELDNAME.

WA_FCAT1-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT1-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT1-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT1 TO IT_FCAT1.

CLEAR WA_fCAT1.

endform. " FCAT

Regards,

Thiru. R

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
931

Copy paste this code for your new requirement:

REPORT ZTEST15.

TYPE-POOLS SLIS.

TABLES : PB4000.

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT.

DATA : IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT1 LIKE LINE OF IT_FCAT1.

DATA : LV_END TYPE DATS,

LV_BEG TYPE DATS,

V TYPE I.

DATA : BEGIN OF WA_PB40001,

PERNR TYPE PB4000-PERNR,

SUBTY TYPE PB4000-SUBTY,

BEGDA TYPE PB4000-BEGDA,

END OF WA_PB40001,

IT_PB40001 LIKE TABLE OF WA_PB40001.

DATA : BEGIN OF WA_PB40002,

PERNR TYPE PB4000-PERNR,

SUBTY TYPE PB4000-SUBTY,

BEGDA TYPE PB4000-BEGDA,

END OF WA_PB40002,

IT_PB40002 LIKE TABLE OF WA_PB40002.

SELECTION-SCREEN BEGIN OF BLOCK K WITH FRAME TITLE TEXT-001.

PARAMETER : RB1 RADIOBUTTON GROUP T DEFAULT 'X' USER-COMMAND RB,

RB2 RADIOBUTTON GROUP T.

SELECT-OPTIONS S_DATE FOR WA_PB40001-BEGDA MODIF ID DAT.

SELECTION-SCREEN END OF BLOCK K.

AT SELECTION-SCREEN OUTPUT.

IF RB1 = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'DAT'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN.

IF RB1 = 'X'.

CLEAR: S_DATE[], S_DATE.

ENDIF.

IF SY-UCOMM = 'ONLI'.

IF RB1 = 'X'.

CALL FUNCTION 'OIL_LAST_DAY_OF_PREVIOUS_MONTH'

EXPORTING

I_DATE_OLD = SY-DATUM

IMPORTING

E_DATE_NEW = LV_END.

LV_BEG = LV_END.

LV_BEG+6(2) = '01'.

SELECT PERNR SUBTY FROM PB4000 INTO TABLE IT_PB40001 WHERE BEGDA BETWEEN LV_BEG AND LV_END.

PERFORM FCAT USING '1' 'PERNR' 'Personnel number' '20' 'C610'.

PERFORM FCAT USING '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number in previous month'

IT_FIELDCAT = IT_FCAT

TABLES

T_OUTTAB = IT_PB40001.

ELSEIF RB2 = 'X'.

IF S_DATE-LOW IS INITIAL.

MESSAGE 'Enter date' TYPE 'E' DISPLAY LIKE 'S'.

ENDIF.

SELECT PERNR SUBTY FROM PB4000 INTO TABLE IT_PB40002 WHERE BEGDA IN S_DATE.

PERFORM FCAT1 USING '1' 'PERNR' 'Personnel number' '20' 'C610'.

PERFORM FCAT1 USING '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number using selection screen'

IT_FIELDCAT = IT_FCAT1

TABLES

T_OUTTAB = IT_PB40002.

ENDIF.

ENDIF.

&----


*& Form FCAT

&----


  • text

----


  • -->FP_COL_POS text

  • -->FP_FIELDNAME text

  • -->FP_SELTEXT_M text

  • -->FP_OUTPUTLEN text

  • -->FP_EMPHASIZE text

----


FORM FCAT USING FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT-COL_POS = FP_COL_POS.

WA_FCAT-FIELDNAME = FP_FIELDNAME.

WA_FCAT-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT TO IT_FCAT.

CLEAR WA_FCAT.

ENDFORM. " FCAT

&----


*& Form FCAT1

&----


  • text

----


  • -->FP_COL_POS text

  • -->FP_FIELDNAME text

  • -->FP_SELTEXT_M text

  • -->FP_OUTPUTLEN text

  • -->FP_EMPHASIZE text

----


FORM FCAT1 USING FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT1-COL_POS = FP_COL_POS.

WA_FCAT1-FIELDNAME = FP_FIELDNAME.

WA_FCAT1-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT1-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT1-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT1 TO IT_FCAT1.

CLEAR WA_FCAT1.

ENDFORM. " FCAT

6 REPLIES 6
Read only

Former Member
0 Likes
931

Hi,

Can you bit more clear about selection option ?

Do you want that ALV output appear when you click radio button 2 and not rb1 ?

I cannot understand your requirement.

Regards,

Mohaiyuddin

Read only

Former Member
0 Likes
931

Hi,

for your requirement you should do like this:

selection-screen begin of block k with frame title text-001.

parameter : rb1 radiobutton group t, rb2 radiobutton group t.

select-options s_date for wa_pb40001-begda obligatory. " You should declare it here itself

selection-screen end of block k.

INITIALIZATION.

loop at screen.

if screen-name = 'S_DATE'.

screen-invisible = '1'.

modify screen.

endif.

endloop.

.........................

.........................

.........................

AT SELECTION-SCREEN OUTPUT.

if rb2 = 'X'.

loop at screen.

if screen-name = 'S_DATE'.

screen-invisible = '0'.

modify screen.

endif.

endloop.

endif.

Read only

Former Member
0 Likes
931

Copy paste this code:

REPORT ZTEST15.

TYPE-POOLS SLIS.

TABLES : PB4000.

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT.

DATA : IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT1 LIKE LINE OF IT_FCAT1.

DATA : LV_END TYPE DATS,

LV_BEG TYPE DATS,

V TYPE I.

DATA : BEGIN OF WA_PB40001,

PERNR TYPE PB4000-PERNR,

SUBTY TYPE PB4000-SUBTY,

BEGDA TYPE PB4000-BEGDA,

END OF WA_PB40001,

IT_PB40001 LIKE TABLE OF WA_PB40001.

DATA : BEGIN OF WA_PB40002,

PERNR TYPE PB4000-PERNR,

SUBTY TYPE PB4000-SUBTY,

BEGDA TYPE PB4000-BEGDA,

END OF WA_PB40002,

IT_PB40002 LIKE TABLE OF WA_PB40002.

SELECTION-SCREEN BEGIN OF BLOCK K WITH FRAME TITLE TEXT-001.

PARAMETER : RB1 RADIOBUTTON GROUP T DEFAULT 'X' USER-COMMAND RB,

RB2 RADIOBUTTON GROUP T.

SELECT-OPTIONS S_DATE FOR WA_PB40001-BEGDA.

SELECTION-SCREEN END OF BLOCK K.

AT SELECTION-SCREEN OUTPUT.

IF RB1 = 'X'.

LOOP AT SCREEN.

IF SCREEN-NAME = 'S_DATE-LOW' OR SCREEN-NAME = 'S_DATE-HIGH'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN.

IF RB1 = 'X'.

CLEAR: S_DATE[], S_DATE.

ENDIF.

IF SY-UCOMM = 'ONLI'.

IF RB1 = 'X'.

CALL FUNCTION 'OIL_LAST_DAY_OF_PREVIOUS_MONTH'

EXPORTING

I_DATE_OLD = SY-DATUM

IMPORTING

E_DATE_NEW = LV_END.

LV_BEG = LV_END.

LV_BEG+6(2) = '01'.

SELECT PERNR SUBTY FROM PB4000 INTO TABLE IT_PB40001 WHERE BEGDA BETWEEN LV_BEG AND LV_END.

PERFORM FCAT USING '1' 'PERNR' 'Personnel number' '20' 'C610'.

PERFORM FCAT USING '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number in previous month'

IT_FIELDCAT = IT_FCAT

TABLES

T_OUTTAB = IT_PB40001.

ELSEIF RB2 = 'X'.

IF S_DATE-LOW IS INITIAL.

MESSAGE 'Enter date' TYPE 'E' DISPLAY LIKE 'S'.

ENDIF.

SELECT PERNR SUBTY FROM PB4000 INTO TABLE IT_PB40002 WHERE BEGDA IN S_DATE.

PERFORM FCAT1 USING '1' 'PERNR' 'Personnel number' '20' 'C610'.

PERFORM FCAT1 USING '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number using selection screen'

IT_FIELDCAT = IT_FCAT1

TABLES

T_OUTTAB = IT_PB40002.

ENDIF.

ENDIF.

&----


*& Form FCAT

&----


  • text

----


  • -->FP_COL_POS text

  • -->FP_FIELDNAME text

  • -->FP_SELTEXT_M text

  • -->FP_OUTPUTLEN text

  • -->FP_EMPHASIZE text

----


FORM FCAT USING FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT-COL_POS = FP_COL_POS.

WA_FCAT-FIELDNAME = FP_FIELDNAME.

WA_FCAT-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT TO IT_FCAT.

CLEAR WA_FCAT.

ENDFORM. " FCAT

&----


*& Form FCAT1

&----


  • text

----


  • -->FP_COL_POS text

  • -->FP_FIELDNAME text

  • -->FP_SELTEXT_M text

  • -->FP_OUTPUTLEN text

  • -->FP_EMPHASIZE text

----


FORM FCAT1 USING FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT1-COL_POS = FP_COL_POS.

WA_FCAT1-FIELDNAME = FP_FIELDNAME.

WA_FCAT1-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT1-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT1-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT1 TO IT_FCAT1.

CLEAR WA_FCAT1.

ENDFORM. " FCAT

Read only

0 Likes
931

hI,

It's almost ok but that disabled selection screen should not come at first , it must display only when i select second radiobutton.

Regards,

Thiru. R

Read only

0 Likes
931

hi

SELECTION-SCREEN BEGIN OF BLOCK k WITH FRAME TITLE text-001.
PARAMETER : rb1 RADIOBUTTON GROUP t  USER-COMMAND rb,  "---> remove default 'X' from here
rb2 RADIOBUTTON GROUP t DEFAULT 'X'.   "------------> do little modification here
SELECT-OPTIONS s_date FOR sy-datum.
SELECTION-SCREEN END OF BLOCK k.

Thanks & Regards

Read only

Former Member
0 Likes
932

Copy paste this code for your new requirement:

REPORT ZTEST15.

TYPE-POOLS SLIS.

TABLES : PB4000.

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT.

DATA : IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT1 LIKE LINE OF IT_FCAT1.

DATA : LV_END TYPE DATS,

LV_BEG TYPE DATS,

V TYPE I.

DATA : BEGIN OF WA_PB40001,

PERNR TYPE PB4000-PERNR,

SUBTY TYPE PB4000-SUBTY,

BEGDA TYPE PB4000-BEGDA,

END OF WA_PB40001,

IT_PB40001 LIKE TABLE OF WA_PB40001.

DATA : BEGIN OF WA_PB40002,

PERNR TYPE PB4000-PERNR,

SUBTY TYPE PB4000-SUBTY,

BEGDA TYPE PB4000-BEGDA,

END OF WA_PB40002,

IT_PB40002 LIKE TABLE OF WA_PB40002.

SELECTION-SCREEN BEGIN OF BLOCK K WITH FRAME TITLE TEXT-001.

PARAMETER : RB1 RADIOBUTTON GROUP T DEFAULT 'X' USER-COMMAND RB,

RB2 RADIOBUTTON GROUP T.

SELECT-OPTIONS S_DATE FOR WA_PB40001-BEGDA MODIF ID DAT.

SELECTION-SCREEN END OF BLOCK K.

AT SELECTION-SCREEN OUTPUT.

IF RB1 = 'X'.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'DAT'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

AT SELECTION-SCREEN.

IF RB1 = 'X'.

CLEAR: S_DATE[], S_DATE.

ENDIF.

IF SY-UCOMM = 'ONLI'.

IF RB1 = 'X'.

CALL FUNCTION 'OIL_LAST_DAY_OF_PREVIOUS_MONTH'

EXPORTING

I_DATE_OLD = SY-DATUM

IMPORTING

E_DATE_NEW = LV_END.

LV_BEG = LV_END.

LV_BEG+6(2) = '01'.

SELECT PERNR SUBTY FROM PB4000 INTO TABLE IT_PB40001 WHERE BEGDA BETWEEN LV_BEG AND LV_END.

PERFORM FCAT USING '1' 'PERNR' 'Personnel number' '20' 'C610'.

PERFORM FCAT USING '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number in previous month'

IT_FIELDCAT = IT_FCAT

TABLES

T_OUTTAB = IT_PB40001.

ELSEIF RB2 = 'X'.

IF S_DATE-LOW IS INITIAL.

MESSAGE 'Enter date' TYPE 'E' DISPLAY LIKE 'S'.

ENDIF.

SELECT PERNR SUBTY FROM PB4000 INTO TABLE IT_PB40002 WHERE BEGDA IN S_DATE.

PERFORM FCAT1 USING '1' 'PERNR' 'Personnel number' '20' 'C610'.

PERFORM FCAT1 USING '1' 'SUBTY' 'Sub type' '20' 'C310'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-CPROG

I_GRID_TITLE = 'Report for displaying personnel number using selection screen'

IT_FIELDCAT = IT_FCAT1

TABLES

T_OUTTAB = IT_PB40002.

ENDIF.

ENDIF.

&----


*& Form FCAT

&----


  • text

----


  • -->FP_COL_POS text

  • -->FP_FIELDNAME text

  • -->FP_SELTEXT_M text

  • -->FP_OUTPUTLEN text

  • -->FP_EMPHASIZE text

----


FORM FCAT USING FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT-COL_POS = FP_COL_POS.

WA_FCAT-FIELDNAME = FP_FIELDNAME.

WA_FCAT-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT TO IT_FCAT.

CLEAR WA_FCAT.

ENDFORM. " FCAT

&----


*& Form FCAT1

&----


  • text

----


  • -->FP_COL_POS text

  • -->FP_FIELDNAME text

  • -->FP_SELTEXT_M text

  • -->FP_OUTPUTLEN text

  • -->FP_EMPHASIZE text

----


FORM FCAT1 USING FP_COL_POS

FP_FIELDNAME

FP_SELTEXT_M

FP_OUTPUTLEN

FP_EMPHASIZE.

WA_FCAT1-COL_POS = FP_COL_POS.

WA_FCAT1-FIELDNAME = FP_FIELDNAME.

WA_FCAT1-SELTEXT_M = FP_SELTEXT_M.

WA_FCAT1-OUTPUTLEN = FP_OUTPUTLEN.

WA_FCAT1-EMPHASIZE = FP_EMPHASIZE.

APPEND WA_FCAT1 TO IT_FCAT1.

CLEAR WA_FCAT1.

ENDFORM. " FCAT