*&---------------------------------------------------------------------* *& Report YTABLELAYOUT *&---------------------------------------------------------------------* REPORT ytablelayout. *----------------------------------------------------------------------* * INTERNAL TABLES * *----------------------------------------------------------------------* DATA: gt_outtab LIKE dd03l OCCURS 0 WITH HEADER LINE. *----------------------------------------------------------------------* * SELECTION-SCREEN * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK frame1 WITH FRAME. PARAMETERS: pa_tabnm LIKE dd03l-tabname OBLIGATORY MEMORY ID dtb. PARAMETERS: pa_itb1 LIKE dd03l-tabname. PARAMETERS: pa_itb2 LIKE dd03l-tabname. PARAMETERS: pa_width TYPE i OBLIGATORY DEFAULT 10. PARAMETERS: pa_depth TYPE i OBLIGATORY DEFAULT 1. SELECTION-SCREEN END OF BLOCK frame1. *----------------------------------------------------------------------* * START-OF-SELECTION * *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM select_table_layout. *----------------------------------------------------------------------* * END-OF-SELECTION * *----------------------------------------------------------------------* END-OF-SELECTION. PERFORM display_table_layout. PERFORM display_define_tab. PERFORM display_field_for_value. *----------------------------------------------------------------------* * FORM * *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form select_table_layout *&---------------------------------------------------------------------* * select table layou *----------------------------------------------------------------------* FORM select_table_layout. CLEAR : gt_outtab, gt_outtab[]. SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_outtab FROM dd03l WHERE tabname EQ pa_tabnm AND fieldname NE '.INCLUDE' ORDER BY position. CHECK sy-subrc NE 0. MESSAGE s200(s1). ENDFORM. " select_table_layout *&---------------------------------------------------------------------* *& Form display_table_layout *&---------------------------------------------------------------------* * display table layout *----------------------------------------------------------------------* FORM display_table_layout. DATA : l_count(03) TYPE n. DATA : l_depth(03) TYPE n. l_depth = 2 * pa_depth. LOOP AT gt_outtab. ADD 1 TO l_count. IF sy-tabix EQ 1. WRITE : / pa_tabnm, /, /, AT (l_depth) space NO-GAP, 'SELECT'. ENDIF. WRITE AT: (pa_width) gt_outtab-fieldname. IF l_count+2(1) EQ '0' OR l_count+2(1) EQ '5'. NEW-LINE. WRITE: AT (l_depth) space NO-GAP, ' '. ENDIF. AT LAST. WRITE : AT /(l_depth) space NO-GAP, ' INTO CORRESPONDING FIELDS OF TABLE gt_outtab'. WRITE : AT /(l_depth) space NO-GAP, ' FROM', pa_tabnm. ENDAT. ENDLOOP. ENDFORM. " display_table_layout *&---------------------------------------------------------------------* *& Form display_define_tab *&---------------------------------------------------------------------* * display *----------------------------------------------------------------------* FORM display_define_tab. DATA : l_length TYPE i. DATA : l_width TYPE i. l_length = STRLEN( pa_tabnm ). LOOP AT gt_outtab. AT FIRST. WRITE : /, /, / 'DATA : BEGIN OF', AT (l_length) pa_tabnm, 'OCCURS 0,'. ENDAT. l_width = STRLEN( gt_outtab-fieldname ). WRITE : / ' ', AT (l_width) gt_outtab-fieldname, 'TYPE', AT (l_length) pa_tabnm NO-GAP, '-' NO-GAP, AT (l_width) gt_outtab-fieldname NO-GAP, ','. AT LAST. WRITE : / ' END OF', AT (l_length) pa_tabnm NO-GAP, '.'. ENDAT. ENDLOOP. ENDFORM. " display_define_tab *&---------------------------------------------------------------------* *& Form display_field_for_value *&---------------------------------------------------------------------* * display *----------------------------------------------------------------------* FORM display_field_for_value. DATA : l_length1 TYPE i. DATA : l_length2 TYPE i. DATA : l_length3 TYPE i. l_length1 = STRLEN( pa_itb1 ). l_length2 = STRLEN( pa_itb2 ). LOOP AT gt_outtab. l_length3 = STRLEN( gt_outtab-fieldname ). WRITE : / ' ' NO-GAP, AT (l_length1) pa_itb1 NO-GAP, '-' NO-GAP, gt_outtab-fieldname, '=', AT (l_length2) pa_itb2 NO-GAP, '-' NO-GAP, AT (l_length3) gt_outtab-fieldname NO-GAP, '.'. ENDLOOP. ENDFORM. " display_field_for_value *Selection texts *---------------------------------------------------------- * PA_DEPTH Depth * PA_ITB1 Internal table name(to) * PA_ITB2 Internal table name(from) * PA_TABNM D . * PA_WIDTH Width for display *Messages *---------------------------------------------------------- * * Message class: S1 *200 No data found