Questa function permette di leggere tutte le descrizioni di tutti i campi di una tabella e li concatena in una unica stringa. DATA:va_desc(4096) TYPEc. PERFORM read_table_fields USING'BKPF' va_desc.
FORM read_table_fields USING i_table va_record.
CLEAR va_record.
DATA: subrc LIKE sy-subrc, help_fields LIKE dfies, fieldname LIKE dfies-fieldname, fieldsandtext_line TYPE gd13_fields_text.
CALLFUNCTION'G_FIELD_SET' EXPORTING ftype = ' ' langu = sy-langu table = i_table text_flag = 'X' EXCEPTIONS not_found = 1 OTHERS = 2. IF sy-subrc NE0. MESSAGEID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING not_found. ENDIF.
CALLFUNCTION'G_FIELD_GET' IMPORTING field_attr = help_fields subrc = subrc EXCEPTIONS OTHERS = 1. IF sy-subrc NE0. MESSAGEID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING not_found. ENDIF. fieldname = help_fields-fieldname. fieldsandtext_line-fieldname = help_fields-fieldname. fieldsandtext_line-scrtext_m = help_fields-scrtext_m. WHILE subrc = 0. READTABLE e_t_fields INTO fieldname WITHKEY fieldname. CONCATENATE va_record fieldsandtext_line-scrtext_m ';' INTO va_record. CONDENSE va_record. CALLFUNCTION'G_FIELD_GET' IMPORTING field_attr = help_fields subrc = subrc EXCEPTIONS OTHERS = 1. IF sy-subrc NE0. MESSAGEID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING not_found. ENDIF. fieldname = help_fields-fieldname. fieldsandtext_line-fieldname = help_fields-fieldname. fieldsandtext_line-scrtext_m = help_fields-scrtext_m. ENDWHILE.