2006 Oct 09 4:46 PM
Can anyone help me how to create an F4 help for a screen field?
2006 Oct 09 4:47 PM
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?
2006 Oct 09 4:47 PM
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.
2006 Oct 09 4:51 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |