Skip to Content

Input help in selection screen not displaying entries

Hi all,

I am creating input help for selection screen input parameter in AT SELECTION-SCREEN ON VALUE-REQUEST event using 'F4IF_INT_TABLE_VALUE_REQUEST' function module. When I request input help on selection screen, a window pops up that says that 2 entries are found, but they are not displayed (screenshot attached). Could someone suggest me what to do to make input help work?


This is the code that I am using. As you can see, I am passing value table it to 'F4IF_INT_TABLE_VALUE_REQUEST'. it is a standard table of structures consisting of 2 char variables of length 16. If the structure consisted of 2 PERNRs, input help would have worked fine.


REPORT zprogram.

TYPES: BEGIN OF type,

input TYPE c LENGTH 16,"type pa0000-pernr,

input2 TYPE c LENGTH 16, "type pa0000-pernr,

END OF type.

DATA: it TYPE STANDARD TABLE OF type,

wa LIKE LINE OF it,

name TYPE c LENGTH 100.

SELECT-OPTIONS input001 FOR (name).

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

wa-input = '1'.

wa-input2 = '2'.

APPEND wa TO it.

wa-input = '3'.

wa-input2 = '4'.

APPEND wa TO it.

DATA:

field_tab TYPE STANDARD TABLE OF dfies,

return_tab TYPE STANDARD TABLE OF ddshretval,

wa_return LIKE LINE OF return_tab,

dynpfld_mapping TYPE STANDARD TABLE OF dselc.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'INPUT'"column_name

value_org = 'S'

TABLES

value_tab = it

field_tab = field_tab " dfies Fields of the hit list

return_tab = return_tab " ddshretval Return the selected value

dynpfld_mapping = dynpfld_mapping " dselc Assignment of the screen fields to the internal

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc <> 0 .

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

READ TABLE return_tab INTO wa_return INDEX 1.

input001-low = wa_return-fieldval.

INITIALIZATION.

name = 'PA0000-PERNR'.

Screenshot.JPG (22.2 kB)
Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

7 Answers

  • Best Answer
    Posted on Dec 27, 2013 at 07:30 AM

    Please fill the field_tab table as shown below

    lwa_field-FIELDNAME =

    'INPUT1'.
    lwa_field-INTLEN = 8.
    lwa_field-OUTPUTLEN = 8.
    lwa_field-position = 1.
    append lwA_field to field_tab.
    lwa_field-FIELDNAME = 'INPUT2'.
    lwa_field-position = 2.
    lwa_field-INTLEN = 8.
    lwa_field-OUTPUTLEN = 8.
    lwa_field-OFFSET = 16.
    append lwA_field to field_tab.

    Add a comment
    10|10000 characters needed characters exceeded

    • This is the correct solution to fill field_tab table and pass it to 'F4IF_INT_TABLE_VALUE_REQUEST'. However, I had to assign more fields of field_tab rows than just fieldname, position, intlen, outputlen and offset in order to make input help work as I needed it to.

  • Posted on Dec 27, 2013 at 12:41 PM

    Hi,

    fill the field_tab table as shown below

    lwa_field-FIELDNAME ='INPUT1'.

    lwa_field-INTLEN = 10.
    lwa_field-OUTPUTLEN = 10.
    lwa_field-position = 1.
    append lwA_field to field_tab.



    lwa_field-FIELDNAME = 'INPUT2'.
    lwa_field-position = 2.
    lwa_field-INTLEN = 10.
    lwa_field-OUTPUTLEN = 10.
    lwa_field-OFFSET = 16.
    append lwA_field to field_tab.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 27, 2013 at 07:28 AM

    Hi,

    Please pass the values for below parameters in function module.


    DYNPPROG = SY-CPROG
    DYNPNR = SY-DYNNR
    DYNPROFIELD = 'Your screen field name'


    Arivazhagan S

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 27, 2013 at 07:31 AM

    I do not think that giving declaration in below format would work:

    TYPES: BEGIN OF type,

    input TYPE c LENGTH 16,"type pa0000-pernr,

    input2 TYPE c LENGTH 16, "type pa0000-pernr,

    END OF type.

    You wil.have to use it in more generic way....like

    TYPES: BEGIN OF type,

    input TYPE pernr_d,"type pa0000-pernr,

    input2 TYPE matnr, "type Material

    END OF type.

    The above declaration should display F4 values.....one of the reason that I can think of is.....that when displaying F4 help....we also need to display header for each fields....which in case of type c Length 16 is unavailable...

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 27, 2013 at 12:02 PM

    Hi Jake -

    Please check the below code. It will work. Let us know, in case any further help.

    Regards,

    Atul Mohanty

    REPORT ZPROGRAM.


    TYPES : BEGIN OF type,
    input TYPE char16,
    input1 TYPE char16 ,
    END OF type.

    DATA : tb_object_range TYPE TABLE OF type WITH HEADER LINE.

    DATA : wf_dyname TYPE sy-repid, " PROGRAM NAME
    wf_dynumb TYPE sy-dynnr, " SCREEN NUMBER
    wf_dynpro TYPE help_info-dynprofld,
    wf_object_range TYPE type,
    name TYPE char16.

    DATA: field_tab TYPE STANDARD TABLE OF dfies WITH HEADER LINE,
    return_tab TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE,
    wa_return LIKE LINE OF return_tab ,
    dynpfld_mapping TYPE STANDARD TABLE OF dselc WITH HEADER LINE.


    SELECT-OPTIONS : input001 FOR name.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR input001-low.


    CONSTANTS: co_retfield TYPE dfies-fieldname VALUE 'INPUT',
    co_dynprog LIKE sy-repid VALUE 'ZPROGRAM,
    co_s TYPE c VALUE 'S',
    co_field TYPE help_info-dynprofld VALUE 'INPUT001-LOW'.
    REFRESH tb_object_range[].
    CLEAR wf_object_range.

    wf_object_range-input = '1'.
    wf_object_range-input1 = '2'.
    APPEND wf_object_range TO tb_object_range.

    CLEAR wf_object_range.

    wf_object_range-input = '3'.
    wf_object_range-input1 = '4'.
    APPEND wf_object_range TO tb_object_range.

    SORT tb_object_range.

    DELETE ADJACENT DUPLICATES FROM tb_object_range COMPARING ALL FIELDS.
    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
    retfield = co_retfield
    dynpprog = co_dynprog
    dynpnr = sy-dynnr
    dynprofield = wf_dynpro
    value_org = co_s
    TABLES
    value_tab = tb_object_range
    field_tab = field_tab " dfies Fields of the hit list
    return_tab = return_tab " ddshretval Return the selected value
    dynpfld_mapping = dynpfld_mapping
    EXCEPTIONS
    parameter_error = 1
    no_values_found = 2
    OTHERS = 3.
    IF sy-subrc <> 0.
    * MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    * WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    READ TABLE return_tab INTO wa_return INDEX 1.
    input001-low = wa_return-fieldval.

    INITIALIZATION.

    name = 'PA0000-PERNR'.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 27, 2013 at 01:42 PM

    Hi,

    your retfield in the FM call should be 'INPUT001'.

    -Vishal.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 27, 2013 at 01:42 PM

    Hi,

    your retfield in the FM call should be 'INPUT001'.

    -Vishal.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.