Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

FM DB_GET_TABLE_FIELDS

Former Member
0 Likes
429

Use the FM DB_GET_TABLE_FIELDS for this purpose.

Pass the table name in TABNAME parameter and it will return a table (thru the TABLES parameter) which u can capture in an internal table with structure DBFIELD.

Someone provide me this fm, but i dont know hw to delcare the internal table for the DBFIELD?

Code to declare the internal table pls.

1 REPLY 1
Read only

Former Member
0 Likes
344

Use the FM DB_GET_TABLE_FIELDS for this purpose.

Pass the table name in TABNAME parameter and it will return a table (thru the TABLES parameter) which u can capture in an internal table with structure DBFIELD.

Check the code below:

REPORT ZYKTEST3 .

DATA: d_ref TYPE REF TO data,

d_ref2 TYPE REF TO data,

i_alv_cat TYPE TABLE OF lvc_s_fcat,

ls_alv_cat LIKE LINE OF i_alv_cat.

TYPES: tabname LIKE dcobjdef-name ,

fieldname LIKE dcobjdef-name,

desc LIKE dntab-fieldtext.

PARAMETER: p_tablen TYPE tabname. -


> Input table field

DATA: BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE dntab.

DATA: END OF itab.

FIELD-SYMBOLS : <f_fs> TYPE table,

<f_fs1> TYPE table,

<f_fs2> TYPE ANY,

<f_fs3> TYPE ANY,

<f_fs4> type any,

<f_field> TYPE ANY.

REFRESH itab.

CALL FUNCTION 'NAMETAB_GET' -


> Fetches the fields

EXPORTING

langu = sy-langu

tabname = p_tablen

TABLES

nametab = itab

EXCEPTIONS

no_texts_found = 1.

LOOP AT itab .

ls_alv_cat-fieldname = itab-fieldname.

ls_alv_cat-ref_table = p_tablen.

ls_alv_cat-ref_field = itab-fieldname.

ls_alv_cat-seltext = itab-fieldtext.

ls_alv_cat-reptext = itab-fieldtext.

APPEND ls_alv_cat TO i_alv_cat.

ENDLOOP.

  • internal table build

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = i_alv_cat

IMPORTING

ep_table = d_ref.

ASSIGN d_ref->* TO <f_fs>. -


> Dynamic table creation with fields of the table

DATA: l_field TYPE fieldname,

l_field1 type fieldname.

SELECT * FROM (p_tablen) INTO CORRESPONDING FIELDS OF TABLE <f_fs>.

Fetching of the data from the table

LOOP AT <f_fs> ASSIGNING <f_fs2>.

Here u can check the validations and process

ASSIGN COMPONENT 2 OF STRUCTURE <f_fs2> TO <f_fs3>.

ASSIGN COMPONENT 3 OF STRUCTURE <f_fs2> TO <f_fs4>.

IF sy-subrc = 0.

MOVE <f_fs3> TO l_field.

MOVE <f_fs4> TO l_field1.

WRITE:/1 l_field(20),

22 l_field1(10).

ENDIF.

ENDLOOP.