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: 

Implement F4 Value-Request Functionality in Dialog Programming

Former Member
0 Kudos

Hi. Apologies in advance if this is the wrong forum.

I'm on R/3 4.6c.

What is the best way to implement this:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR xxxx-low.

in a dialog program?

I have my selection screen defined in my TOP include, but since dialog programs don't support report events I am not sure what to do.

Thank you for any assistance you could provide.

Best Regards,

Brett

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Forgot to ask. You mentioned "dialog programs don't support report events". If you do a CALL SELECTION-SCREEN, the AT SELECTION-SCREEN events will be executed.

I have a program that I just completed that displays a regular selection screen, then does a CALL SELECTION-SCREEN, then finishes with a CALL SCREEN and I use the AT SELECTION-SCREEN ON VALUE REQUEST event to invoke an existing FM to do F4 help.

Maybe you can provide additional detail to help clarify.

7 REPLIES 7

Former Member
0 Kudos

make a new include like

include progname_screen_1001. at the top of your program.

goto include.

write the code below in your include.

SELECTION-SCREEN BEGIN OF SCREEN 1001.

  • write here your selection options and parameters.

also but here the code you want:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR xxxx-low.

SELECTION-SCREEN END OF SCREEN 1001.

call the screen from anywhere:

call screen 1001.

if you want the selection-screen as subscreen than write

SELECTION-SCREEN BEGIN OF SCREEN 1001 as subscreen .

  • write here your selection options and parameters.

also but here the code you want:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR xxxx-low.

SELECTION-SCREEN END OF SCREEN 1001.

when calling it

write it to PBO of your screen in which you but an subscreen area named subsel.

CALL SUBSCREEN SUBSEL INCLUDING 'PROGRAMNAME' '1001'.

Former Member
0 Kudos

My first reaction is too avoid coding this feature and use the facilities of the dictionary to provide value help. Domain values, check tables, attaching search helps, etc.

With that said, you can still program the help. I suggest you take a look at program DEMO_DYNPRO_F4_HELP_MODULE which is in my 4.6C system.

Former Member
0 Kudos

Forgot to ask. You mentioned "dialog programs don't support report events". If you do a CALL SELECTION-SCREEN, the AT SELECTION-SCREEN events will be executed.

I have a program that I just completed that displays a regular selection screen, then does a CALL SELECTION-SCREEN, then finishes with a CALL SCREEN and I use the AT SELECTION-SCREEN ON VALUE REQUEST event to invoke an existing FM to do F4 help.

Maybe you can provide additional detail to help clarify.

0 Kudos

Ahhh, yes!

How to do report events in dialog programming has eluded me for the longest time. In fact, I specifically remember reading in an SAP book that report events were not support in dialog modules.

You are right, tho. It can be done. I didn't realize that the key is to place the report events in their own include. When I tried to place them in the same include as the screen definition ("top"), I was getting errors.

This is going to solve so many problems for me. Thank you.

By the way, I would implement the value request at the dictionary level, but this help feature is very particular to one department. You are right tho.

Best Regards,

Brett

Former Member
0 Kudos

Also forgot to mention example ABAP program DEMO_SELECTION_SCREEN_F4.

0 Kudos

If you are using a dynpro, you can specify the F4 help in the screen itself. In the elements list of the screen, under the references tab, there is a field called search help. Specify the search help there.

Regards,

Rich Heilman

0 Kudos

Rich,

I am using a selection-screen, but I was also wondering how to do this as well. This will be very useful to me too.

Thanks!

Brett