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

how to activate or deactivate screen painters element through program?

Former Member
0 Likes
1,258

i am using module pool programming ,

i want to activate or deactivate the screen painters elements through programming how i can do it?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,168

Hi

Use LOOP SCREEN comand in PBO:

PROCESS PBO.

MODULE LOOP_SCREEN.





MODULE LOOP_SCREEN.
  LOOP AT SCREEN.
    IF SCREEN-NAME = <FIELD I/O NAME>.
      IF ............ 
* The field is active by default, so It needs to check when the
* field has to be deactive
        SCREEN-ACTIVE = 0.
        MODIFY SCREEN.
      ENDIF.
   ENDIF. 
  ENDLOOP.

Max

6 REPLIES 6
Read only

Former Member
0 Likes
1,168

how to activate or deactivate screen painters element through program?.

Read only

0 Likes
1,168

Hi,

You can perform active and deactive the fileds in the selection screen using AT SELECTION-SCREEN OUTPUT event. Loop the screen table and modify the content of a screen field inside the loop based on requirements.

Check this code.


selection-screen begin of block b1 with frame.

parameters: p_g1 radiobutton group gp1 default 'X' user-command chk,
p_g2 radiobutton group gp1.
selection-screen end of block b1.

selection-screen begin of block b2 with frame.
parameters: p_gltrp type afko-gltrp modif id g1.
parameters: p_werks type aufk-werks modif id g1.
parameters: p_datum type afko-gltrp modif id g2.
parameters: p_uzeit type aufk-werks modif id g2.
selection-screen end of block b2.

at selection-screen output.

loop at screen.
if p_g1 = 'X' and screen-group1 = 'G2'.
screen-active = 0.
modify screen.
endif.
if p_g2 = 'X' and screen-group1 = 'G1'.
screen-active = 0.
modify screen.
endif.
endloop.

Also try the below code to get some idea


report zsample.
TABLES:lfm1.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lifnr FOR lfm1-lifnr .
SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS:
r_asn RADIOBUTTON GROUP rad1 USER-COMMAND uc1 DEFAULT 'X',
r_ers RADIOBUTTON GROUP rad1 ,
r_830 RADIOBUTTON GROUP rad1,
r_850 RADIOBUTTON GROUP rad1,
r_862 RADIOBUTTON GROUP rad1,
r_810 RADIOBUTTON GROUP rad1,
r_820 RADIOBUTTON GROUP rad1,
r_824 RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECT-OPTIONS: s_bstae FOR lfm1-bstae MODIF ID sd1.
PARAMETERS:
p_ekorg TYPE lfm1-ekorg MODIF ID md1,
p_evcode TYPE edp21-evcode MODIF ID md2,
p_kappl TYPE nach-kappl MODIF ID md3,
p_parvw TYPE nach-parvw MODIF ID md4,
p_kschl TYPE nach-kschl MODIF ID md5,
p_vakey TYPE nach-vakey MODIF ID md6,
p_werks TYPE werks_d MODIF ID md7,
p_bukrs TYPE lfb1-bukrs MODIF ID md8.
SELECTION-SCREEN END OF BLOCK b3.


AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.
IF r_asn EQ 'X'
AND ( screen-group1 = 'MD3' OR screen-group1 = 'MD4'
OR screen-group1 = 'MD5' OR screen-group1 = 'MD6'
OR screen-group1 = 'MD7' OR screen-group1 = 'MD8' ) .

screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.

ELSEIF r_ers EQ 'X'
AND ( screen-group1 = 'SD1' OR screen-group1 = 'MD1'
OR screen-group1 = 'MD2' OR screen-group1 = 'MD3'
OR screen-group1 = 'MD4' OR screen-group1 = 'MD5'
OR screen-group1 = 'MD6' OR screen-group1 = 'MD7'
OR screen-group1 = 'MD8' ) .

screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.

ELSEIF r_830 EQ 'X'
AND ( screen-group1 = 'SD1' OR screen-group1 = 'MD1'
OR screen-group1 = 'MD2' OR screen-group1 = 'MD6'
OR screen-group1 = 'MD7' OR screen-group1 = 'MD8' ) .
screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.
ELSEIF r_850 EQ 'X'
AND ( screen-group1 = 'SD1' OR screen-group1 = 'MD1'
OR screen-group1 = 'MD2' OR screen-group1 = 'MD6'
OR screen-group1 = 'MD7' OR screen-group1 = 'MD8' ) .
screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.
ELSEIF r_862 EQ 'X'
AND ( screen-group1 = 'SD1' OR screen-group1 = 'MD1'
OR screen-group1 = 'MD2' OR screen-group1 = 'MD8' ) .
screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.
ELSEIF r_810 EQ 'X'
AND ( screen-group1 = 'MD3' OR screen-group1 = 'MD4'
OR screen-group1 = 'MD5' OR screen-group1 = 'MD6'
OR screen-group1 = 'MD7' OR screen-group1 = 'MD8' ) .
screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.
ELSEIF r_820 EQ 'X'
AND ( screen-group1 = 'SD1' OR screen-group1 = 'MD1'
OR screen-group1 = 'MD2' OR screen-group1 = 'MD3'
OR screen-group1 = 'MD4' OR screen-group1 = 'MD5'
OR screen-group1 = 'MD6' OR screen-group1 = 'MD7' ).
screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.
ELSEIF r_824 EQ 'X'
AND ( screen-group1 = 'SD1' OR screen-group1 = 'MD1'
OR screen-group1 = 'MD2' OR screen-group1 = 'MD3'
OR screen-group1 = 'MD4' OR screen-group1 = 'MD5'
OR screen-group1 = 'MD6' OR screen-group1 = 'MD7'
OR screen-group1 = 'MD8' ) .
screen-active = '0'.
screen-invisible = '1'.
screen-input = '0'.
screen-output = '0'.
ENDIF.
MODIFY SCREEN.
ENDLOOP.


Regards,

Chandru

Read only

Former Member
0 Likes
1,169

Hi

Use LOOP SCREEN comand in PBO:

PROCESS PBO.

MODULE LOOP_SCREEN.





MODULE LOOP_SCREEN.
  LOOP AT SCREEN.
    IF SCREEN-NAME = <FIELD I/O NAME>.
      IF ............ 
* The field is active by default, so It needs to check when the
* field has to be deactive
        SCREEN-ACTIVE = 0.
        MODIFY SCREEN.
      ENDIF.
   ENDIF. 
  ENDLOOP.

Max

Read only

kesavadas_thekkillath
Active Contributor
0 Likes
1,168

i guess u r using PF status.

data:begin of it_pf_st occurs 200,

stat(5),

end of it_pf_st.

Now append all the function codes u donot want to display in your program

it_pf_st-stat = 'SAVE'.

append it_pf_st.

it_pf_st-stat = 'FIND'.

append it_pf_st.

the while setting pf status do like this.

set pf-status '0100' excluding it_pf_st.

Read only

0 Likes
1,168

Assign PF ststus in PBO.

Assign values to the itab in PAI based on your conditions.

Read only

Former Member
0 Likes
1,168

hi

good

through program you cant get the solution for this, but after adding the screen painter program to the main program you can use the se80 to activate or deactivate the report.

thanks

mrutyun^