Skip to Content
0
Former Member
Jun 25, 2008 at 06:25 AM

Assigning field symbols

30 Views

Hi ,

I am working on the field symbols .

I am calling the F4 help for that field from GRID.

but when is elect the value it is not assignng to the cell in the GRID.

METHOD : get_f4 .

REFRESH gt_fam.

TYPES: BEGIN OF ty_fam,

fam TYPE char3,

END OF ty_fam,

BEGIN OF ty_prod,

prodh TYPE prodh_d,

END OF ty_prod.

data: lt_values type table of seahlpres,

lt_fields type table of dfies,

lt_return type table of ddshretval,

ls_value type seahlpres,

ls_field type dfies,

ls_return type ddshretval.

DATA: gt_fam TYPE TABLE OF ty_fam,

gs_fam TYPE ty_fam,

gt_prodh TYPE TABLE OF ty_prod,

gs_prodh TYPE ty_prod,

gt_return TYPE TABLE OF ddshretval,

gs_return LIKE LINE OF gt_return,

ls_modi TYPE lvc_s_modi.

FIELD-SYMBOLS: <itab> TYPE lvc_t_modi.

ls_field-tabname = 'ZTEST_PARAM'.

ls_field-fieldname = 'FAMILY'.

ls_field-outputlen = 30.

ls_field-scrtext_s = ls_field-fieldname.

ls_field-scrtext_m = ls_field-fieldname.

ls_field-scrtext_l = ls_field-fieldname.

ls_field-reptext = ls_field-fieldname.

append ls_field to lt_fields.

READ TABLE gt_params INTO gs_params INDEX es_row_no-row_id.

SELECT prodh FROM t179 INTO TABLE gt_prodh

WHERE stufe = '4'.

LOOP AT gt_prodh INTO gs_prodh

WHERE prodh+4(3) = gs_params-categ.

gs_fam-fam = gs_prodh-prodh+7(3) .

APPEND gs_fam TO gt_fam.

ENDLOOP.

LOOP AT gt_fam INTO gs_fam..

ls_value-string = gs_fam-fam.

APPEND ls_value TO lt_values.

ENDLOOP.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • ddic_structure = 'ZPFT_PARAMS'

retfield = 'FAMILY'

  • PVALKEY = ' '

dynpprog = sy-cprog

dynpnr = sy-dynnr

dynprofield = 'GS_PARAMS-FAMILY'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

value_org = 'C'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

value_tab = gt_fam

FIELD_TAB = lt_fields

return_tab = gt_return

  • DYNPFLD_MAPPING =

  • 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.

ASSIGN er_event_data->m_data->* TO <itab>.

READ TABLE gt_return INTO gs_return INDEX 1.

  • gs_params-family = gs_return-fieldval.

IF NOT gs_return IS INITIAL.

ls_modi-row_id = gs_return-recordpos.

ls_modi-fieldname = gs_return-fieldname.

ls_modi-value = gs_return-fieldval.

APPEND ls_modi TO <itab>.

ENDIF.

er_event_data->m_event_handled = 'X'.

endmethod.

Will anybody let me know why this is not assigning value to the CELL.

Regards,

Madhavi