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

Help Value Request...

Former Member
0 Likes
617

Hi all

how to create "Help Value Request". It will appear when user pressing F4 (help) on an input field to request list of available value. if user given 'Z*' ..it shows ony the value which is starting with z.

pls help me.

thanks in advance.

indu

5 REPLIES 5
Read only

Former Member
0 Likes
582

If it's in a report, you could use the sentence AT SELECTION SCREEN ON VALUE REQUEST.

Read only

Former Member
0 Likes
582

Hi Indu,

For providing the Help value for a particular field you need to provide for this field a check table.

Reward points if helpful.

Thanks,

Asha

Read only

Former Member
0 Likes
582

F4IF_INT_TABLE_VALUE_REQUEST

This function module displays a value list that you created in an ABAP program. The value list is passed to the function module as the table parameter VALUE_TAB. If you specify the import parameters DYNPPROG, DYNPNR, and DYNPROFIELD, the user’s selection is returned to the corresponding field on the screen. If you specify the table parameter RETURN_TAB, the selection is returned into the table instead.

FM DYNP_VALUES_READ can read the values of screen fields

Have a look at below sample code:

REPORT ZTEST_F4 .

DATA : BEGIN OF ITAB OCCURS 0,

NAME LIKE KNVK-NAMEV,

E_MAIL LIKE ADR6-SMTP_ADDR,

END OF ITAB.

PARAMETER : P_EMAIL LIKE ADR6-SMTP_ADDR.

INITIALIZATION.

ITAB-NAME = 'A'.

ITAB-E_MAIL = email@removed '.

APPEND ITAB.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_EMAIL.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'E_MAIL'

DYNPPROG = 'ZTEST_F4'

DYNPNR = '1000'

DYNPROFIELD = 'P_EMAIL'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = ITAB

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3

Another Code sample:

REPORT DEMO_DYNPRO_F4_HELP_MODULE.

TYPES: BEGIN OF VALUES,

CARRID TYPE SPFLI-CARRID,

CONNID TYPE SPFLI-CONNID,

END OF VALUES.

DATA: CARRIER(3) TYPE C,

CONNECTION(4) TYPE C.

DATA: PROGNAME LIKE SY-REPID,

DYNNUM LIKE SY-DYNNR,

DYNPRO_VALUES TYPE TABLE OF DYNPREAD,

FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,

VALUES_TAB TYPE TABLE OF VALUES.

CALL SCREEN 100.

MODULE INIT OUTPUT.

PROGNAME = SY-REPID.

DYNNUM = SY-DYNNR.

CLEAR: FIELD_VALUE, DYNPRO_VALUES.

FIELD_VALUE-FIELDNAME = 'CARRIER'.

APPEND FIELD_VALUE TO DYNPRO_VALUES.

ENDMODULE.

MODULE CANCEL INPUT.

LEAVE PROGRAM.

ENDMODULE.

MODULE VALUE_CONNECTION INPUT.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

DYNAME = PROGNAME

DYNUMB = DYNNUM

TRANSLATE_TO_UPPER = 'X'

TABLES

DYNPFIELDS = DYNPRO_VALUES.

READ TABLE DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.

SELECT CARRID CONNID

FROM SPFLI

INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB

WHERE CARRID = FIELD_VALUE-FIELDVALUE.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'CONNID'

DYNPPROG = PROGNAME

DYNPNR = DYNNUM

DYNPROFIELD = 'CONNECTION'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = VALUES_TAB.

ENDMODULE.

The screen flow logic is as follows:

PROCESS BEFORE OUTPUT.

MODULE INIT.

PROCESS AFTER INPUT.

MODULE CANCEL AT EXIT-COMMAND.

PROCESS ON VALUE-REQUEST.

FIELD CONNECTION MODULE VALUE_CONNECTION.

For the Flight number field, the POV module VALUE_CONNECTION is called. The

function module DYNP_VALUE_READ transports the value of the screen field CARRIER into the program. The program then reads the corresponding values from the database table SPFLI into the internal table VALUES_TAB using a SELECT statement, and passes the internal table to F4IF_INT_TABLE_VALUE_REQUEST. This displays the internal table as input help, and places the user’s selection into the screen field CONNECTION.

I hope it helps.

Best Regards,

Vibha

Please mark all the helpful answers

Read only

Former Member
0 Likes
582

hi chk this sample code:

TYPES:
       BEGIN OF T_EKPO,
         EBELN LIKE EKPO-EBELN,
         EBELP LIKE EKPO-EBELP,
         MENGE LIKE EKPO-MENGE,
         NETPR LIKE EKPO-NETPR,
       END OF T_EKPO,

       BEGIN OF T_VALTAB,
         BUKRS LIKE T001-BUKRS,
       END OF T_VALTAB.

DATA: I_EKKO TYPE STANDARD TABLE OF EKKO,
      I_EKPO TYPE STANDARD TABLE OF T_EKPO.

SELECTION-SCREEN BEGIN OF BLOCK B1.
SELECT-OPTIONS: S_BUKRS FOR T001-BUKRS.
SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON S_BUKRS.

  IF S_BUKRS IS INITIAL.
    MESSAGE E000(ZZ) WITH TEXT-001.
  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_BUKRS-LOW.
  PERFORM VALUE_REQ USING S_BUKRS-LOW.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_BUKRS-HIGH.
  PERFORM VALUE_REQ USING S_BUKRS-HIGH.

*&---------------------------------------------------------------------*
*&      Form  VALUE_REQ
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM VALUE_REQ USING P_BUKRS.

  I_FIELDTAB-TABNAME = 'T001'.
  I_FIELDTAB-FIELDNAME = 'BUKRS'.
  APPEND I_FIELDTAB.

  SELECT BUKRS
    FROM T001
    INTO TABLE I_VALTAB.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        = I_FIELDTAB-FIELDNAME
    TABLES
      VALUE_TAB       = I_VALTAB
      FIELD_TAB       = I_FIELDTAB
      RETURN_TAB      = I_RETTAB
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          = 3.
  IF SY-SUBRC = 0.
    P_BUKRS = I_RETTAB-FIELDVAL.
  ENDIF.

ENDFORM.                    " VALUE_REQ

regards,

madhu

Read only

Former Member
0 Likes
582

Hi,

Check the below code.

parameters: p_name like p0001-ename.

data: begin of it_name occurs 0,

name like p0001-ename,

end of it_name.

data: v_num type i.

at selection-screen on value-request for p_name.

if v_num is initial.

it_name-name = 'India'.

append it_name.

it_name-name = 'China'.

append it_name.

it_name-name = 'Japan'.

append it_name.

it_name-name = 'Indonesia'.

append it_name.

v_num = v_num + 1.

endif.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'NAME'

DYNPPROG = SY-CPROG

DYNPNR = SY-DYNNR

DYNPROFIELD = 'P_NAME'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = IT_NAME

  • RETURN_TAB = RETURN

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.