Application Development 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: 

Unable to Change Screen Attributes for Fields Added in Additional Data B

Former Member
0 Kudos

Hi,

need help. I added new fields via append structure in VBAK and added them into the "Additional Data B". The problem I have is to change the screen attributes to display when VA03 is used. I read that I need to put the codes in "userexit_field_modification". However, it doesn't seem to work... it did not go into screen 8309.

I tried putting break-point in my codes and nothing happened. for example:

if sy-dynnr = '8309'.

wa_input = '1'. <breakpoint set here>

...

endif.

Also tried:

if screen-name = 'ZZFIELD'.

wa_input = '1'. <breakpoint set here>

...

endif.

Please help. Thanks.

Regards,

Norman

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Norman,

You have got the right place to code your requirement.

Please proceed as mentioned below.

IF sy-tcode EQ 'VA03' AND sy-dynnr EQ '8309' AND screen-name EQ 'ZZFIELD'.

screen-input = 0.

ENDIF.

Hope this helps.

Regards,

Babul.

9 REPLIES 9

Former Member
0 Kudos

Hi Norman,

You have got the right place to code your requirement.

Please proceed as mentioned below.

IF sy-tcode EQ 'VA03' AND sy-dynnr EQ '8309' AND screen-name EQ 'ZZFIELD'.

screen-input = 0.

ENDIF.

Hope this helps.

Regards,

Babul.

0 Kudos

Hi Babul,

tried this before. It didn't work. When I put a break point, the debugger did not step into it.

Regards,

Norman

former_member262988
Active Contributor
0 Kudos

Hi,

check this way...

CASE SCREEN-GROUP3.
   WHEN '900'.
     IF VBAK-VBTYP NE 'A'.
       SCREEN-ACTIVE = 0.
     ENDIF.
 ENDCASE.

Thanks,

Shailaja Ainala.

0 Kudos

Hi Shailaja,

tried your codes. Didn't work too. Same, put in a break point at screen-active = '0', debugger did not step into it.

Regards,

Norman

Former Member
0 Kudos

Hi Norman,

try put your code in a new module in the PBO of the dynpro 8309.

MODULE check_field_status OUTPUT.

loop at screen.

if sy-tcode = 'VA03' and screen-name = <tabname-fieldname>.

screen-input = 0.

modify screen.

endif.

endloop.

ENDMODULE.

Regards,

Pepe

0 Kudos

Hi Pepe,

this was my last resort as I read somewhere that it will increase processing time. 'cause you would need another LOOP AT SCREEN; when USEREXIT_FIELD_MODIFICATION already has a LOOP AT SCREEN.

Regards,

Norman

0 Kudos

Hi Norman,

I think that USEREXIT_FIELD_MODIFICATION only run for standard dynpros, not for Additional Data B dynpro.

former_member262988
Active Contributor
0 Kudos

Hi,

go to the screen and create one module under the pbo event and try to modify there ...

Thanks,

Shailaja Ainala.

Former Member
0 Kudos

I think Pepe is right, USEREXIT_FIELD_MODIFICATION only run for standard dynpros... I have no choice but to put the codes in PBO for screen 8309.