0030 - Generate your own standard F4 help

Moderators: Snowy, thx4allthefish, Rich, ilya

Post Reply
Rich
Posts: 7116
Joined: Thu Oct 31, 2002 4:47 pm
Location: Liverpool
Contact:

0030 - Generate your own standard F4 help

Post by Rich » Sat Mar 28, 2009 8:40 am

Generate your own standard F4 help.

To avoid the standard F4 help to be show, insert the event PROCESS ON-VALUE-REQUEST request in the program and add a field statement for the field that should trigger the F4 help. In the module called from PROCESS ON-VALUE-REQUEST request, call function module F4IF_FIELD_VALUE_REQUEST.

Example:

Code: Select all

process before output.
.....

process after input.
.....

PROCESS ON VALUE-REQUEST.
FIELD sflight-carrid MODULE f4_help_for_carrid.
  
MODULE f4_help_for_carrid INPUT.
* NOTE:
* Tabname/fieldname is the name of the table and field
* for which F4 should be shown.
*
* Dynprog/Dynpnr/Dynprofield are the names of the Progran/Dynpro/Field
* in which the f4 value should be returned.
*
* Value: The value of the Dynpro field when calling the F4 help.
* You can limit the values shown, by inseting a value in this parameter
* e.g 'A*' to show only values beginning with A

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
     EXPORTING
         tabname     = 'SFLIGHT'
         fieldname   = 'CARRID'
*        SEARCHHELP  = ' '
*        SHLPPARAM   = ' '
         dynpprog    = 'ZDANY_F4_OWN_CALL'
         dynpnr      = '0100'
         dynprofield = 'SFLIGHT-CARRID'
*        STEPL       = 0
         value       = 'A*'
*        MULTIPLE_CHOICE     = ' '
*        DISPLAY             = ' '
*        SUPPRESS_RECORDLIST = ' '
*        CALLBACK_PROGRAM    = ' '
*        CALLBACK_FORM       = ' '
*    TABLES
*        RETURN_TAB =
*    EXCEPTIONS
*        FIELD_NOT_FOUND   = 1
*        NO_HELP_FOR_FIELD = 2
*        INCONSISTENT_HELP = 3
*        NO_VALUES_FOUND   = 4
*        OTHERS            = 5
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDMODULE. " F4_help_for_carrid INPUT
To control F4 help in a selection screen use the AT SELECTION-SCREEN ON VALUE-REQUEST FOR <field> event.
Note that for ranges both the low and high value of the field must have there own ON VALUE-REQUEST
Example:

Code: Select all

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_prctr-low.
     PERFORM f4_help_carrid.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_prctr-high.
     PERFORM f4_help_carrid.
(Courtesy Dany Charbonneau)
Regards

Rich

Image
Abap KC:http://www.richard-harper.me.uk/Kb
SFMDR:http://www.se37.com

Post Reply