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

F4 HELP

Former Member
0 Likes
738

hi,

i need to get F4 HELP for select option zlsch.

i have written following code.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ZLSCH-LOW.

SELECT ZBUKR

ZLSCH

FROM T042E

INTO TABLE GT_T042E

WHERE ZBUKR EQ '0010'.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield ='ZLSCH'

DYNPPROG = sy-cprog

DYNPNR = sy-dynnr

dynprofield = 'S_ZLSCH'

VALUE = '*'

VALUE_ORG = 'S'

tables

value_tab = GT_T042E

  • RETURN_TAB = return_tab

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.

here i have hardcoded bukrs =0010 in select query, but i need whatever i will give in select option i need to get that.

please help what to do next.

please help if any one has code.

thank you.

8 REPLIES 8
Read only

Former Member
0 Likes
720

Use the function module DYNP_VALUES_READ to get the values on the selection-screen and pass to your select statement.

Regards,

Ravi

Read only

0 Likes
720

HI RAVI,

could you please explain with code.

i mean what values we need to pass.

Read only

Former Member
0 Likes
720

Sample usage for the FM:

Sample usage:

at selecetion-screen on value request for.....
    PLV_DYNP_VAL-FIELDNAME = 'P_MATNR'.
    APPEND PLV_DYNP_VAL.
    CALL FUNCTION 'DYNP_VALUES_READ'
         EXPORTING
              DYNAME     = sy-repid
              DYNUMB     = sy-DYNNR
         TABLES
              DYNPFIELDS = PLV_DYNP_VAL
         EXCEPTIONS
              OTHERS     = 1.
    IF SY-SUBRC EQ 0.
      READ TABLE PLV_DYNP_VAL INDEX 1.
      IF SY-SUBRC EQ 0 AND PLV_DYNP_VAL-FIELDVALUE NE SPACE.
        VALUE  = PLV_DYNP_VAL-FIELDVALUE.
      ENDIF.
    ENDIF.

Use the value VALUE in your select

Read only

Former Member
0 Likes
720

&----


*& Form sub_search_help_sbgrp

&----


  • Search Help for Credit Rep. Group based on company code value

----


FORM sub_search_help_sbgrp .

DATA: lv_bukrs LIKE LINE OF s_bukrs.

CLEAR gs_dynfields.

  • Assigning the company code value to the table (DYNPREAD) Fields of the current screen (with values)

gs_dynfields-fieldname = 'S_BUKRS-LOW'.

APPEND gs_dynfields TO gt_dynfields.

gs_dynfields-fieldname = 'S_BUKRS-HIGH'.

APPEND gs_dynfields TO gt_dynfields.

  • Call this function module to get the values of selection screen for company code

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-cprog

dynumb = sy-dynnr

translate_to_upper = 'X'

TABLES

dynpfields = gt_dynfields

EXCEPTIONS

invalid_abapworkarea = 1

invalid_dynprofield = 2

invalid_dynproname = 3

invalid_dynpronummer = 4

invalid_request = 5

no_fielddescription = 6

invalid_parameter = 7

undefind_error = 8

double_conversion = 9

stepl_not_found = 10

OTHERS = 11.

IF sy-subrc <> 0.

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

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

ENDIF.

  • Get the values obtained for company code into select options s_bukrs

CLEAR gs_dynfields.

FREE: lv_bukrs, s_bukrs.

READ TABLE gt_dynfields INTO gs_dynfields WITH KEY fieldname = 'S_BUKRS-LOW'.

IF sy-subrc = 0.

s_bukrs-low = gs_dynfields-fieldvalue.

ENDIF.

CLEAR gs_dynfields.

READ TABLE gt_dynfields INTO gs_dynfields WITH KEY fieldname = 'S_BUKRS-HIGH'.

IF sy-subrc = 0.

s_bukrs-high = gs_dynfields-fieldvalue.

ENDIF.

lv_bukrs-low = s_bukrs-low.

lv_bukrs-high = s_bukrs-high.

IF lv_bukrs-high IS NOT INITIAL.

lv_bukrs-option = 'BT'.

ELSE.

lv_bukrs-option = 'EQ'.

ENDIF.

lv_bukrs-sign = 'I'.

APPEND lv_bukrs TO s_bukrs .

IF s_bukrs IS NOT INITIAL.

  • Get the data from Credit management: Credit representative groups (t024b) into internal table

SELECT kkber sbgrp stext

FROM t024b

INTO CORRESPONDING FIELDS OF TABLE gt_t024b

WHERE kkber IN s_bukrs.

IF sy-subrc EQ 0.

SORT gt_t024b BY kkber sbgrp.

ENDIF.

  • Passing the data of internal table gt_t691b to get the search help for credit group

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'sbgrp'

dynpprog = sy-cprog

dynpnr = sy-dynnr

dynprofield = 's_bukrs-low'

value_org = 'S'

TABLES

value_tab = gt_t024b

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.

ENDIF.

ENDFORM. " sub_search_help_sbgrp

Read only

Former Member
0 Likes
720

hi

do this to ur code

let ur select-option is z_option

now do the following modification

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ZLSCH-LOW.

SELECT ZBUKR

ZLSCH

FROM T042E

INTO TABLE GT_T042E

WHERE ZBUKR IN Z_OPTION

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield ='ZLSCH'

DYNPPROG = sy-cprog

DYNPNR = sy-dynnr

dynprofield = 'S_ZLSCH'

VALUE = '*'

VALUE_ORG = 'S'

tables

value_tab = GT_T042E

RETURN_TAB = return_tab

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.

Cheers

Snehi

Read only

Former Member
0 Likes
720

Hi,

Check the below Standard program in se38.

demo_selection_screen_f4

Regards,

Raj.

Read only

Former Member
0 Likes
720

Hi,

There are also two function modules DYNP_VALUES_READ and DYNP_VALUES_UPDATE that can read the values of screen fields and return values to them during the POV(process on value) event.

Example:

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_CARRIER INPUT.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'DEMOF4HELP'
FIELDNAME = 'CARRIER1'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'CARRIER'.
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.

In your case :

SELECT-OPTIONS: S_ZBUKR. FOR T042E-ZBUKR.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ZLSCH-LOW.

SELECT ZBUKR

ZLSCH

FROM T042E

INTO TABLE GT_T042E

WHERE ZBUKR IN S_ZBUKR.

Hope this solves your problem.

Plz reward if useful.

Thanks,

Dhanashri.

Edited by: Dhanashri Pawar on Jun 23, 2008 2:16 PM

Read only

former_member202474
Contributor
0 Likes
720

Hi Kiran,

why dont u use parameters and check ,

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.

PARAMETER : p_ZBUKR TYPE 'data element of ZBUKR'.

SELECTION-SCREEN END OF BLOCK bl1.

SELECT ZBUKR

ZLSCH

FROM T042E

INTO TABLE GT_T042E

WHERE ZBUKR EQ p_ZBUKR.

**Reward if helpful*

Regards,

Ruby.