Может быть не менее криво, но вот так можно получить все экспортируемые параметры в lt_return:
Code:
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = SPACE
FIELDNAME = SPACE
SEARCHHELP = 'AANL'
CALLBACK_PROGRAM = sy-repid
CALLBACK_FORM = 'CB_F4_VALUE_REQUEST'
TABLES
RETURN_TAB = lt_return .
...
FORM CB_F4_VALUE_REQUEST TABLES RECORD_TAB STRUCTURE SEAHLPRES
CHANGING SHLP TYPE SHLP_DESCR
CALLCONTROL LIKE DDSHF4CTRL.
data: wa_props like DDSHFPROP,
wa_intf like DDSHIFACE.
LOOP AT SHLP-FIELDPROP INTO wa_props WHERE shlpoutput = 'X'.
READ TABLE SHLP-INTERFACE INTO wa_intf
WITH KEY SHLPFIELD = wa_props-FIELDNAME.
wa_intf-F4FIELD = 'X'.
MODIFY SHLP-INTERFACE FROM wa_intf
INDEX SY-TABIX
transporting f4field.
ENDLOOP.
ENDFORM. "CB_F4_VALUE_REQUEST
А в TABNAME можно и структуру скормить.