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

Screens

Former Member
0 Likes
476

Can anyone help me how to create an F4 help for a screen field?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
439

For creating the search help for a field in dialog programming u have to follow the below steps:

In the POV, define the field which needs the F4.

PROCESS ON VALUE-REQUEST.

FIELD addr1_data-region MODULE region_pov.

Write the code inside the module.

Use the FM 'F4IF_INT_TABLE_VALUE_REQUEST', if u have the values inside the internal table.

&----


*& Module region_pov INPUT

&----


  • text

----


MODULE region_pov INPUT.

DATA: lt_dynpfields_country LIKE dynpread OCCURS 0 WITH HEADER LINE,

lws_addr_data LIKE addr1_data-country.

CLEAR: lws_addr_data, lt_dynpfields_country.

REFRESH: lt_dynpfields_country.

lt_dynpfields_country-fieldname = 'ADDR1_DATA-COUNTRY'.

APPEND lt_dynpfields_country.

CLEAR lt_dynpfields_country.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = c_x

TABLES

dynpfields = lt_dynpfields_country

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 EQ 0.

READ TABLE lt_dynpfields INDEX 1.

ENDIF.

lws_addr_data = lt_dynpfields_country-fieldvalue.

PERFORM region_data USING lws_addr_data

CHANGING addr1_data-region. "F4-Eingabehilfe

ENDMODULE. " region_pov INPUT

&----


*& Form region_data

&----


  • Region F4

----


FORM region_data USING p_country

CHANGING p_region.

DATA: f4_display TYPE t_bool.

DATA: lv_country LIKE adrc-country.

DATA: lt_advalreg TYPE TABLE OF advalreg.

DATA: wa_advalreg TYPE advalreg.

DATA: lt_returnvalue TYPE TABLE OF ddshretval.

DATA: wa_returnvalue TYPE ddshretval.

DATA: lt_t005u TYPE TABLE OF t005u.

DATA: wa_t005u TYPE t005u.

lv_country = p_country.

  • Get country if p_country empty

IF lv_country IS INITIAL.

GET PARAMETER ID 'LND' FIELD lv_country.

IF lv_country IS INITIAL.

lv_country = 'GB'.

ENDIF.

ENDIF.

  • fill the value table.

SELECT * FROM t005u INTO TABLE lt_t005u

WHERE spras = sy-langu AND

land1 = lv_country.

LOOP AT lt_t005u INTO wa_t005u.

CLEAR wa_advalreg.

wa_advalreg-region = wa_t005u-bland.

wa_advalreg-reg_txt = wa_t005u-bezei.

APPEND wa_advalreg TO lt_advalreg.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'REGION'

value_org = 'S'

display = f4_display

TABLES

value_tab = lt_advalreg

return_tab = lt_returnvalue.

IF sy-subrc = 0.

READ TABLE lt_returnvalue INDEX 1 INTO wa_returnvalue.

p_region = wa_returnvalue-fieldval. "*562i

READ TABLE lt_advalreg INTO wa_advalreg WITH KEY region = p_region.

IF sy-subrc = 0.

t005u-bezei = wa_advalreg-reg_txt.

ENDIF.

ELSE.

MESSAGE i885 WITH 'F4IF_INT_TABLE_VALUE_REQUEST'. "*562u

ENDIF.

ENDFORM. " region_data

Regards,

Prakash.

Can anyone help me how to create an F4 help for a screen field?

2 REPLIES 2
Read only

Former Member
0 Likes
440

For creating the search help for a field in dialog programming u have to follow the below steps:

In the POV, define the field which needs the F4.

PROCESS ON VALUE-REQUEST.

FIELD addr1_data-region MODULE region_pov.

Write the code inside the module.

Use the FM 'F4IF_INT_TABLE_VALUE_REQUEST', if u have the values inside the internal table.

&----


*& Module region_pov INPUT

&----


  • text

----


MODULE region_pov INPUT.

DATA: lt_dynpfields_country LIKE dynpread OCCURS 0 WITH HEADER LINE,

lws_addr_data LIKE addr1_data-country.

CLEAR: lws_addr_data, lt_dynpfields_country.

REFRESH: lt_dynpfields_country.

lt_dynpfields_country-fieldname = 'ADDR1_DATA-COUNTRY'.

APPEND lt_dynpfields_country.

CLEAR lt_dynpfields_country.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

translate_to_upper = c_x

TABLES

dynpfields = lt_dynpfields_country

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 EQ 0.

READ TABLE lt_dynpfields INDEX 1.

ENDIF.

lws_addr_data = lt_dynpfields_country-fieldvalue.

PERFORM region_data USING lws_addr_data

CHANGING addr1_data-region. "F4-Eingabehilfe

ENDMODULE. " region_pov INPUT

&----


*& Form region_data

&----


  • Region F4

----


FORM region_data USING p_country

CHANGING p_region.

DATA: f4_display TYPE t_bool.

DATA: lv_country LIKE adrc-country.

DATA: lt_advalreg TYPE TABLE OF advalreg.

DATA: wa_advalreg TYPE advalreg.

DATA: lt_returnvalue TYPE TABLE OF ddshretval.

DATA: wa_returnvalue TYPE ddshretval.

DATA: lt_t005u TYPE TABLE OF t005u.

DATA: wa_t005u TYPE t005u.

lv_country = p_country.

  • Get country if p_country empty

IF lv_country IS INITIAL.

GET PARAMETER ID 'LND' FIELD lv_country.

IF lv_country IS INITIAL.

lv_country = 'GB'.

ENDIF.

ENDIF.

  • fill the value table.

SELECT * FROM t005u INTO TABLE lt_t005u

WHERE spras = sy-langu AND

land1 = lv_country.

LOOP AT lt_t005u INTO wa_t005u.

CLEAR wa_advalreg.

wa_advalreg-region = wa_t005u-bland.

wa_advalreg-reg_txt = wa_t005u-bezei.

APPEND wa_advalreg TO lt_advalreg.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'REGION'

value_org = 'S'

display = f4_display

TABLES

value_tab = lt_advalreg

return_tab = lt_returnvalue.

IF sy-subrc = 0.

READ TABLE lt_returnvalue INDEX 1 INTO wa_returnvalue.

p_region = wa_returnvalue-fieldval. "*562i

READ TABLE lt_advalreg INTO wa_advalreg WITH KEY region = p_region.

IF sy-subrc = 0.

t005u-bezei = wa_advalreg-reg_txt.

ENDIF.

ELSE.

MESSAGE i885 WITH 'F4IF_INT_TABLE_VALUE_REQUEST'. "*562u

ENDIF.

ENDFORM. " region_data

Regards,

Prakash.

Read only

Former Member
0 Likes
439

HI Bharath,

Check

Regards,

santosh