mercoledì 5 agosto 2009

Leggere intestazione tabella

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) TYPE c.
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.

CALL FUNCTION 'G_FIELD_SET'
EXPORTING
ftype = ' '
langu = sy-langu
table = i_table
text_flag = 'X'
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING not_found.
ENDIF.

CALL FUNCTION 'G_FIELD_GET'
IMPORTING
field_attr = help_fields
subrc = subrc
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
MESSAGE ID 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.
READ TABLE e_t_fields INTO fieldname WITH KEY fieldname.
CONCATENATE va_record fieldsandtext_line-scrtext_m ';'
INTO va_record.
CONDENSE va_record.
CALL FUNCTION 'G_FIELD_GET'
IMPORTING
field_attr = help_fields
subrc = subrc
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
MESSAGE ID 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.

ENDFORM. " read_table_fields


Nessun commento:

Posta un commento