<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: row column in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641391#M876894</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi check this example ....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  Z_TRANSPOSEALV                                    .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type pools declaration for ALV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;*Declarations for ALV, dynamic table and col no for transpose&lt;/P&gt;&lt;P&gt;DATA:    l_col    TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;         l_structure   TYPE REF TO data,&lt;/P&gt;&lt;P&gt;         l_dyntable    TYPE REF TO data,&lt;/P&gt;&lt;P&gt;         wa_lvc_cat  TYPE lvc_s_fcat,&lt;/P&gt;&lt;P&gt;         lt_lvc_cat  TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;         lt_fieldcatalogue     TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         wa_fieldcat TYPE slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         lt_fieldcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         lt_layout   TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;*Field symbols declarations&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;  &amp;lt;header&amp;gt;    TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;dynheader&amp;gt; TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;dyndata&amp;gt;   TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;ls_table&amp;gt;      TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;dynamictable&amp;gt;      TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;  &amp;lt;it_table&amp;gt; TYPE STANDARD TABLE.&lt;/P&gt;&lt;P&gt;*Input the name of the table&lt;/P&gt;&lt;P&gt;PARAMETERS p_table TYPE dd02l-tabname OBLIGATORY.&lt;/P&gt;&lt;P&gt;*Initialization event&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;*Start of selection event&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create internal table of dynamic type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE DATA l_dyntable TYPE STANDARD TABLE OF (p_table)&lt;/P&gt;&lt;P&gt;                       WITH NON-UNIQUE DEFAULT KEY.&lt;/P&gt;&lt;P&gt;  ASSIGN l_dyntable-&amp;gt;* TO &amp;lt;it_table&amp;gt;.&lt;/P&gt;&lt;P&gt;*select statement to select data from the table as input into&lt;/P&gt;&lt;P&gt;*our dynamic internal table.&lt;/P&gt;&lt;P&gt;*Here i have restricted only till 5 rows.&lt;/P&gt;&lt;P&gt;*You can set a variable and give no of rows to be fetched&lt;/P&gt;&lt;P&gt;*The variable can be set in your select statement&lt;/P&gt;&lt;P&gt; SELECT * INTO CORRESPONDING FIELDS OF TABLE &amp;lt;it_table&amp;gt;&lt;/P&gt;&lt;P&gt;                FROM (p_table) up to 5 rows.&lt;/P&gt;&lt;P&gt;*Fieldcatalogue definitions&lt;/P&gt;&lt;P&gt;  wa_lvc_cat-fieldname = 'COLUMNTEXT'.&lt;/P&gt;&lt;P&gt;  wa_lvc_cat-ref_table = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;  APPEND wa_lvc_cat TO lt_lvc_cat.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'COLUMNTEXT'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-ref_tabname = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-key  = 'X'..&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO lt_fieldcat.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE &amp;lt;it_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  DO sy-tfill TIMES.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For each line, a column 'VALUEx' is created in the fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Build Fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE sy-index TO wa_lvc_cat-fieldname LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'VALUE' wa_lvc_cat-fieldname&lt;/P&gt;&lt;P&gt;           INTO wa_lvc_cat-fieldname.&lt;/P&gt;&lt;P&gt;    wa_lvc_cat-ref_field = 'VALUE'.&lt;/P&gt;&lt;P&gt;    wa_lvc_cat-ref_table = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;    APPEND wa_lvc_cat TO lt_lvc_cat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Build Fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-fieldname = wa_lvc_cat-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ref_fieldname = 'VALUE'.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ref_tabname = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;    APPEND wa_fieldcat TO lt_fieldcat.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create dynamic internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fieldcatalog = lt_lvc_cat&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      ep_table        = l_dyntable.  ASSIGN l_dyntable-&amp;gt;* TO&lt;/P&gt;&lt;P&gt;&amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create structure as structure of the internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE DATA l_structure LIKE LINE OF &amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN l_structure-&amp;gt;* TO &amp;lt;header&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create structure = structure of the internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE DATA l_structure LIKE LINE OF &amp;lt;it_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN l_structure-&amp;gt;* TO &amp;lt;ls_table&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create field catalog from our table structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_structure_name       = p_table&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat            = lt_fieldcatalogue&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      inconsistent_interface = 1&lt;/P&gt;&lt;P&gt;      program_error          = 2&lt;/P&gt;&lt;P&gt;      OTHERS                 = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.  DESCRIBE TABLE lt_fieldcatalogue.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the internal to display &amp;lt;dynamictable&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DO sy-tfill TIMES.&lt;/P&gt;&lt;P&gt;    IF sy-index = 1.&lt;/P&gt;&lt;P&gt;      READ TABLE lt_fieldcatalogue INTO wa_fieldcat INDEX 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For each field of it_table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ASSIGN COMPONENT 1 OF STRUCTURE &amp;lt;header&amp;gt; TO &amp;lt;dynheader&amp;gt;.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0. EXIT .ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE lt_fieldcatalogue INTO wa_fieldcat INDEX sy-index.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Fill 1st column&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    &amp;lt;dynheader&amp;gt; = wa_fieldcat-seltext_m.&lt;/P&gt;&lt;P&gt;    IF &amp;lt;dynheader&amp;gt; IS INITIAL.&lt;/P&gt;&lt;P&gt;      &amp;lt;dynheader&amp;gt; = wa_fieldcat-fieldname.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*Filling the other columns&lt;/P&gt;&lt;P&gt;    LOOP AT &amp;lt;it_table&amp;gt; INTO &amp;lt;ls_table&amp;gt;.&lt;/P&gt;&lt;P&gt;      l_col = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;      ASSIGN COMPONENT sy-index OF STRUCTURE &amp;lt;ls_table&amp;gt; TO &amp;lt;dyndata&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0. EXIT .ENDIF.&lt;/P&gt;&lt;P&gt;      ASSIGN COMPONENT l_col OF STRUCTURE &amp;lt;header&amp;gt; TO&lt;/P&gt;&lt;P&gt;&amp;lt;dynheader&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0. EXIT .ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE &amp;lt;dyndata&amp;gt; TO &amp;lt;dynheader&amp;gt; LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    APPEND &amp;lt;header&amp;gt; TO &amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;*Layout for ALV output&lt;/P&gt;&lt;P&gt;  lt_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;  lt_layout-no_colhead = 'X'..&lt;/P&gt;&lt;P&gt;  lt_layout-colwidth_optimize ='X'.&lt;/P&gt;&lt;P&gt;  lt_layout-window_titlebar = 'ALV GRID TRANSPOSED'.&lt;/P&gt;&lt;P&gt;*ALV Grid output for display&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      is_layout   = lt_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat = lt_fieldcat&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab    = &amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;venkat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: venkat  appikonda on Apr 16, 2008 11:52 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 Apr 2008 09:49:34 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-16T09:49:34Z</dc:date>
    <item>
      <title>row column</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641389#M876892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please provide with row to column vise versa coding.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Apr 2008 09:41:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641389#M876892</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-16T09:41:23Z</dc:date>
    </item>
    <item>
      <title>Re: row column</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641390#M876893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Following code will explain ur solution.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT  YMS_MAILROWCOLUMN NO STANDARD PAGE HEADING LINE-SIZE 500.

TYPE-POOLS : SLIS.

TABLES: MSEG , MKPF , QAMB , MAKT , MBEW , MARA , T001L , MVKE, ZSD_MOD,
        MARD,SOMLRECI1.

SELECT-OPTIONS : SO_WERKS FOR MSEG-WERKS OBLIGATORY ,
                 SO_VKORG FOR MVKE-VKORG ,
                 SO_BUDAT FOR MKPF-BUDAT OBLIGATORY ,
                 SO_MATNR FOR MSEG-MATNR ,
                 SO_FROM  FOR MSEG-LGORT ,
                 P_TO     FOR MSEG-LGORT ,
                 P_MAIL   FOR SOMLRECI1-RECEIVER.

DATA: RET_RATE LIKE KONP-KBETR.
DATA: CHANNEL  LIKE TVTWT-VTWEG.
DATA: BEGIN OF ABS OCCURS 0,
         BUDAT LIKE MKPF-BUDAT,
         WERKS LIKE MSEG-WERKS,
         LOC LIKE MSEG-LGORT,
         VALUE1 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE2 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE3 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE4 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE5 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE6 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE7 TYPE P VALUE '0.000' DECIMALS 3,
         VALUE8 TYPE P VALUE '0.000' DECIMALS 3,
      END OF ABS.
DATA : BEGIN OF MAIL OCCURS 0,
         BUDAT LIKE MKPF-BUDAT,
         WERKS LIKE MSEG-WERKS,
         LOC LIKE MSEG-LGORT,
         VALUE1(6) TYPE C VALUE '0.000',
         VALUE2(6) TYPE C VALUE '0.000',
         VALUE3(6) TYPE C VALUE '0.000',
         VALUE4(6) TYPE C VALUE '0.000',
         VALUE5(6) TYPE C VALUE '0.000',
         VALUE6(6) TYPE C VALUE '0.000',
         VALUE7(6) TYPE C VALUE '0.000',
         VALUE8(10) TYPE C VALUE '0.000',
      END OF MAIL.
DATA: WS_LOT LIKE QAMB-PRUEFLOS.
DATA: SL TYPE P DECIMALS 0.
DATA: WS_RATE LIKE MBEW-VERPR.
DATA: WS_VALUE(10) TYPE C." DECIMALS 3.
DATA: WS_CHANNEL(02) TYPE C.
DATA: WA_VKORG LIKE MVKE-VKORG.
DATA: WA_BWKEY LIKE MBEW-BWKEY.
DATA: T_VALUE TYPE P DECIMALS 2.
DATA: MOD_DATE(6) TYPE N.
DATA: BEGIN OF ITAB OCCURS 0,
         MBLNR LIKE MSEG-MBLNR,
         MJAHR LIKE MSEG-MJAHR,
         ZEILE LIKE MSEG-ZEILE,
         MATNR LIKE MSEG-MATNR,
         BUDAT LIKE MKPF-BUDAT,
         BWART LIKE MSEG-BWART,
         WERKS LIKE MSEG-WERKS,
         MENGE LIKE MSEG-MENGE,
         LOC   LIKE MSEG-LGORT,
         LIFNR LIKE MSEG-LIFNR,
         END OF ITAB.
DATA : FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
       EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.

START-OF-SELECTION.

  SELECT  MSEG~MBLNR MSEG~MJAHR
          MSEG~ZEILE MSEG~MATNR MKPF~BUDAT
          MSEG~BWART MSEG~WERKS MSEG~MENGE MSEG~LIFNR
          INTO CORRESPONDING FIELDS OF TABLE ITAB
          FROM MKPF INNER JOIN MSEG
               ON  MKPF~MBLNR = MSEG~MBLNR
               AND MKPF~MJAHR = MSEG~MJAHR
               AND MKPF~MANDT = MSEG~MANDT
          WHERE BUDAT IN SO_BUDAT
               AND MATNR IN SO_MATNR
               AND WERKS IN SO_WERKS
               AND BWART = '321'
               AND UMLGO IN P_TO.

  LOOP AT ITAB.
    WS_LOT = 0.
    SELECT SINGLE PRUEFLOS  INTO (WS_LOT) FROM QAMB
        WHERE MBLNR EQ ITAB-MBLNR AND
              MJAHR EQ ITAB-MJAHR AND
              ZEILE EQ ITAB-ZEILE AND
              TYP = '3'.
    IF SY-SUBRC NE 0.
      DELETE ITAB .
      CONTINUE.
    ENDIF.

    SELECT SINGLE * FROM QAMB
           WHERE PRUEFLOS EQ WS_LOT AND
           TYP = '1'.
    IF SY-SUBRC NE 0.
      DELETE ITAB .
      CONTINUE.
    ENDIF.

    SELECT SINGLE * FROM MSEG
            WHERE MBLNR EQ QAMB-MBLNR AND
                  MJAHR EQ QAMB-MJAHR AND
                  ZEILE EQ QAMB-ZEILE AND
                  WERKS IN SO_WERKS   AND
                  LGORT IN SO_FROM.
    IF SY-SUBRC NE 0.
      DELETE ITAB .
      CONTINUE.
    ENDIF.

    MOVE MSEG-LGORT TO ITAB-LOC.

    IF ITAB-WERKS = '1000'.
      IF ITAB-LIFNR EQ '0000100278' OR ITAB-LIFNR EQ '0000999999' OR ITAB-LIFNR EQ '0000105200'.
        ITAB-WERKS = 'PEIL'.
      ENDIF.
    ELSEIF ITAB-LOC = '1042' OR ITAB-LOC = '1043'.
      ITAB-WERKS = 'PEIL'.
    ENDIF.
    MODIFY ITAB.
  ENDLOOP.

  SORT ITAB BY LOC MATNR BUDAT MBLNR MJAHR.

  LOOP AT ITAB.
    SELECT SINGLE * FROM MARA WHERE MATNR EQ ITAB-MATNR.
    IF SY-SUBRC NE 0. DELETE ITAB. CONTINUE. ENDIF.

    SELECT SINGLE * FROM MAKT WHERE MATNR EQ ITAB-MATNR.
    IF SY-SUBRC NE 0.  DELETE ITAB .CONTINUE. ENDIF.

    IF ITAB-WERKS = '2000'.
      CLEAR: WA_BWKEY.

      WA_BWKEY = '2000'.

      SELECT SINGLE * FROM MBEW WHERE MATNR EQ ITAB-MATNR AND
                                        BWKEY = WA_BWKEY.

      IF SY-SUBRC NE 0. DELETE ITAB . CONTINUE. ENDIF.

    ELSE.
      SELECT SINGLE * FROM MBEW WHERE MATNR EQ ITAB-MATNR.
      IF SY-SUBRC NE 0. DELETE ITAB . CONTINUE. ENDIF.

    ENDIF.

    SELECT SINGLE * FROM MARD WHERE MATNR EQ ITAB-MATNR AND
                                    LGORT EQ '1200'.
    IF SY-SUBRC NE 0. MARD-LGPBE = SPACE. ENDIF.


    IF ITAB-LOC = '1042' AND MARA-MATKL NE 'AUTDEF'.
      DELETE ITAB. CONTINUE.
    ENDIF.
    IF MARA-MATKL = 'AUTDEF'.
      ITAB-LOC = '1042'.
      MODIFY ITAB.
    ENDIF.

    IF ITAB-WERKS EQ '1000'.
      IF  ITAB-LOC NE '1002'
      AND ITAB-LOC NE '1003'
      AND ITAB-LOC NE '1004'
      AND ITAB-LOC NE '1005'
      AND ITAB-LOC NE '1006'
      AND ITAB-LOC NE '1021'
      AND ITAB-LOC NE '1022'
      AND ITAB-LOC NE '1028'
      AND ITAB-LOC NE '1071'
      AND ITAB-LOC NE '1072'
      AND ITAB-LOC NE '1073'
      AND ITAB-LOC NE 'P000'
      AND ITAB-LOC NE '1611'
      AND ITAB-LOC NE 'Q000'
      AND ITAB-LOC NE 'A000'
      AND ITAB-LOC NE '1612'
      AND ITAB-LOC NE '1621'
      AND ITAB-LOC NE '1613'
      AND ITAB-LOC NE '1614'
      AND ITAB-LOC NE '1117'.
        DELETE ITAB. CONTINUE.
      ENDIF.
    ELSEIF ITAB-WERKS EQ '2000'.
      IF  ITAB-LOC NE '2001'
      AND ITAB-LOC NE '2002'
      AND ITAB-LOC NE '2003'
      AND ITAB-LOC NE '2004'
      AND ITAB-LOC NE '2005'
      AND ITAB-LOC NE '2006'
      AND ITAB-LOC NE '2007'
      AND ITAB-LOC NE '2100'
      AND ITAB-LOC NE '2101'
      AND ITAB-LOC NE '2102'
      AND ITAB-LOC NE '2180'
      AND ITAB-LOC NE '2210'
      AND ITAB-LOC NE '2400'
      AND ITAB-LOC NE '2N0N'
      AND ITAB-LOC NE 'M100'
      AND ITAB-LOC NE 'M101'.
        DELETE ITAB.CONTINUE.
      ENDIF.
    ELSEIF ITAB-WERKS EQ '3000'.
      IF  ITAB-LOC NE '3012'
      AND ITAB-LOC NE '3022'
      AND ITAB-LOC NE '3032'
      AND ITAB-LOC NE '3042'
      AND ITAB-LOC NE '3052'
      AND ITAB-LOC NE '3062'
      AND ITAB-LOC NE '3072'
      AND ITAB-LOC NE '3092'
      AND ITAB-LOC NE '3112'
      AND ITAB-LOC NE '3612'.
        DELETE ITAB.CONTINUE.
      ENDIF.
    ELSEIF ITAB-WERKS EQ '4000'.
      IF  ITAB-LOC NE '1052'
      AND ITAB-LOC NE '4058'
      AND ITAB-LOC NE '4055'.
        DELETE ITAB.CONTINUE.
      ENDIF.
    ELSEIF ITAB-WERKS EQ '5000'.
      IF  ITAB-LOC NE '5001'
      AND ITAB-LOC NE '5002'
      AND ITAB-LOC NE '5003'
      AND ITAB-LOC NE '5004'
      AND ITAB-LOC NE '5005'
      AND ITAB-LOC NE 'M101'
      AND ITAB-LOC NE '5009'
      AND ITAB-LOC NE '5010'.
        DELETE ITAB.CONTINUE.
      ENDIF.
    ELSEIF ITAB-WERKS EQ 'PEIL'.
      IF  ITAB-LOC NE '1200'
      AND ITAB-LOC NE 'D000'
      AND ITAB-LOC NE 'C000'
      AND ITAB-LOC NE '1042'
      AND ITAB-LOC NE '1043'.
        DELETE ITAB.CONTINUE.
      ENDIF.
    ENDIF.

    WS_RATE = 0.
    IF MBEW-VPRSV = 'V'.
      MOVE MBEW-VERPR TO WS_RATE.
    ELSEIF MBEW-VPRSV = 'S'.
      MOVE MBEW-STPRS TO WS_RATE.
    ENDIF.

    IF ITAB-WERKS = '1000' OR ITAB-WERKS = '3000' OR ITAB-WERKS = '4000' OR ITAB-WERKS = 'PEIL'.
      WA_VKORG = '1000'.
    ELSE.
      WA_VKORG = ITAB-WERKS.
    ENDIF.

** FROM SALES DATA.
    CALL FUNCTION 'ZSDF_GETPRDRATE'
      EXPORTING
        PM_MATNR = ITAB-MATNR
        PM_VKORG = WA_VKORG
        PM_DATE  = ITAB-BUDAT
      IMPORTING
        CHANNEL  = CHANNEL
        RET_RATE = RET_RATE
      EXCEPTIONS
        OTHERS   = 1.
    IF RET_RATE &amp;gt; 0.
      MOVE RET_RATE TO WS_RATE.
      MOVE CHANNEL  TO WS_CHANNEL.
    ELSE.
      MOVE '  '     TO WS_CHANNEL.
    ENDIF.

    IF WS_CHANNEL = '20' OR WS_CHANNEL = '21' OR WS_CHANNEL = '23'.

      SELECT SINGLE * FROM MVKE WHERE MATNR EQ ITAB-MATNR AND
                                      VTWEG IN ('20','21','23').
      IF MVKE-KONDM = '01'.
        WS_RATE = WS_RATE - ( WS_RATE * '0.30' ) .
        WS_RATE = WS_RATE * '0.9324'.
      ELSEIF MVKE-KONDM = '02'.
        WS_RATE = WS_RATE - ( WS_RATE * '0.4091' ).
        WS_RATE = WS_RATE * '0.9324'.
      ELSEIF MVKE-KONDM = '03'.
        WS_RATE = WS_RATE - ( WS_RATE * '0.3637' ).
        WS_RATE = WS_RATE * '0.9324'.
      ELSEIF MVKE-KONDM = '04'.
        WS_RATE = WS_RATE - ( WS_RATE * '0.20' ).
        WS_RATE = WS_RATE * '0.9324'.
      ENDIF.
    ENDIF.

    COMPUTE WS_VALUE = ITAB-MENGE * WS_RATE.

    WS_VALUE = WS_VALUE / 1000000.

    READ TABLE ABS WITH KEY BUDAT = ITAB-BUDAT.

    IF SY-SUBRC EQ 0.
      IF ITAB-WERKS EQ '1000'.
        ADD WS_VALUE TO ABS-VALUE1.
      ELSEIF ITAB-WERKS EQ '2000'.
        ADD WS_VALUE TO ABS-VALUE2.
      ELSEIF ITAB-WERKS EQ '3000'.
        ADD WS_VALUE TO ABS-VALUE3.
      ELSEIF ITAB-WERKS EQ '4000'.
        ADD WS_VALUE TO ABS-VALUE4.
      ELSEIF ITAB-WERKS EQ '5000'.
        ADD WS_VALUE TO ABS-VALUE5.
      ELSEIF ITAB-WERKS EQ '6000'.
        ADD WS_VALUE TO ABS-VALUE6.
      ELSEIF ITAB-WERKS EQ 'PEIL'.
        ADD WS_VALUE TO ABS-VALUE7.
      ENDIF  .
      ABS-VALUE8 = ABS-VALUE1
                 + ABS-VALUE2
                 + ABS-VALUE3
                 + ABS-VALUE4
                 + ABS-VALUE5
                 + ABS-VALUE6
                 + ABS-VALUE7.
      MODIFY ABS INDEX SY-TABIX.
      CLEAR ABS.
    ELSE.
      MOVE ITAB-BUDAT TO ABS-BUDAT.
      MOVE ITAB-LOC TO ABS-LOC.
      MOVE ITAB-WERKS TO ABS-WERKS.
      IF ITAB-WERKS EQ '1000'.
        MOVE WS_VALUE TO ABS-VALUE1.
      ELSEIF ITAB-WERKS EQ '2000'.
        MOVE WS_VALUE TO ABS-VALUE2.
      ELSEIF ITAB-WERKS EQ '3000'.
        MOVE WS_VALUE TO ABS-VALUE3.
      ELSEIF ITAB-WERKS EQ '4000'.
        MOVE WS_VALUE TO ABS-VALUE4.
      ELSEIF ITAB-WERKS EQ '5000'.
        MOVE WS_VALUE TO ABS-VALUE5.
      ELSEIF ITAB-WERKS EQ '6000'.
        MOVE WS_VALUE TO ABS-VALUE6.
      ELSEIF ITAB-WERKS EQ 'PEIL'.
        MOVE WS_VALUE TO ABS-VALUE7.
      ENDIF.
      ABS-VALUE8 = ABS-VALUE1
                 + ABS-VALUE2
                 + ABS-VALUE3
                 + ABS-VALUE4
                 + ABS-VALUE5
                 + ABS-VALUE6
                 + ABS-VALUE7.
      APPEND ABS.
      CLEAR ABS.
    ENDIF.
  ENDLOOP.

  LOOP AT ABS.
    MAIL-BUDAT = ABS-BUDAT.
    MAIL-LOC = ABS-LOC.
    MAIL-WERKS = ABS-WERKS.
    MAIL-VALUE1 = ABS-VALUE1.
    MAIL-VALUE2 = ABS-VALUE2.
    MAIL-VALUE3 = ABS-VALUE3.
    MAIL-VALUE4 = ABS-VALUE4.
    MAIL-VALUE5 = ABS-VALUE5.
    MAIL-VALUE6 = ABS-VALUE6.
    MAIL-VALUE7 = ABS-VALUE7.
    MAIL-VALUE8 = ABS-VALUE8.
    APPEND MAIL.
    CLEAR MAIL.
  ENDLOOP.

  SORT MAIL BY BUDAT.

  IF P_MAIL IS NOT INITIAL.
    PERFORM MAIL.
  ENDIF.

  FCAT-COL_POS    = 1.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'BUDAT'.
  FCAT-SELTEXT_L  = 'DATE'.
  FCAT-OUTPUTLEN  = 8.
  FCAT-JUST       = 'L'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 2.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE1'.
  FCAT-SELTEXT_L  = '1000'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 3.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE2'.
  FCAT-SELTEXT_L  = '2000'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 4.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE3'.
  FCAT-SELTEXT_L  = '3000'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 5.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE4'.
  FCAT-SELTEXT_L  = '4000'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 6.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE5'.
  FCAT-SELTEXT_L  = '5000'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 7.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE6'.
  FCAT-SELTEXT_L  = '6000'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 8.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE7'.
  FCAT-DO_SUM     = 'X'.
  FCAT-SELTEXT_L  = 'PEIL'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  FCAT-COL_POS    = 8.
  FCAT-TABNAME    = 'ABS'.
  FCAT-FIELDNAME  = 'VALUE8'.
  FCAT-SELTEXT_L  = 'TOTAL'.
  FCAT-DO_SUM     = 'X'.
  FCAT-OUTPUTLEN  = 10.
  FCAT-JUST       = 'R'.
  APPEND FCAT.
  CLEAR FCAT.

  EVENT-FORM = 'PDN'.
  EVENT-NAME = 'TOP_OF_PAGE'.
  APPEND EVENT.
  CLEAR EVENT.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = SY-CPROG
      IT_FIELDCAT        = FCAT[]
      IT_EVENTS          = EVENT[]
    TABLES
      T_OUTTAB           = ABS.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  PDN
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM PDN.

  DATA: HEADER TYPE SLIS_T_LISTHEADER WITH HEADER LINE,
        TEXT TYPE STRING,
        LOWD TYPE GSUDISP OCCURS 0 WITH HEADER LINE,
        HIGHD TYPE GSUDISP OCCURS 0 WITH HEADER LINE.

  CALL FUNCTION 'PDOT_DATE_CONVERT'
    EXPORTING
      FIELD = SO_BUDAT-LOW
    TABLES
      TEXTS = LOWD.

  CALL FUNCTION 'PDOT_DATE_CONVERT'
    EXPORTING
      FIELD = SO_BUDAT-HIGH
    TABLES
      TEXTS = HIGHD.

  IF SO_BUDAT-HIGH IS NOT INITIAL AND SO_BUDAT-LOW NE SO_BUDAT-HIGH.
    CONCATENATE 'Production Value For The Period : ' LOWD 'TO' HIGHD INTO TEXT SEPARATED BY SPACE.
  ELSE.
    CONCATENATE 'Production Value For The Date : ' LOWD INTO TEXT SEPARATED BY SPACE.
  ENDIF.

  HEADER-TYP = 'S'.
  HEADER-INFO = TEXT.
  APPEND HEADER.
  CLEAR HEADER.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = HEADER[].

ENDFORM.                    "ICUG
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  MAIL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM MAIL .

  DATA: OBJPACK   LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
  DATA: OBJHEAD   LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
  DATA: OBJBIN    LIKE ZDATA_TABLE OCCURS 10 WITH HEADER LINE.
  DATA: OBJTXT    LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
  DATA: RECLIST   LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
  DATA: DOC_CHNG  LIKE SODOCCHGI1.
  DATA: TAB_LINES LIKE SY-TABIX.
  DATA L_NUM(3).
  DATA : SUBJECT(200) TYPE C.
  DATA : SUB1(200) TYPE C.
  DATA : SUB(200) TYPE C.
  DATA : DATED TYPE GSUDISP OCCURS 0 WITH HEADER LINE,
         DATE1D TYPE GSUDISP OCCURS 0 WITH HEADER LINE,
         DATE2D TYPE GSUDISP OCCURS 0 WITH HEADER LINE.

  CALL FUNCTION 'PDOT_DATE_CONVERT'
    EXPORTING
      FIELD = SO_BUDAT-LOW
    TABLES
      TEXTS = DATED.

  CALL FUNCTION 'PDOT_DATE_CONVERT'
    EXPORTING
      FIELD = SO_BUDAT-HIGH
    TABLES
      TEXTS = DATE2D.

*     Mail Subject
  IF SO_BUDAT-HIGH IS INITIAL.
    CONCATENATE 'Production Details For The Date' DATED-GTEXT INTO SUBJECT SEPARATED BY SPACE.
  ELSE.
    CONCATENATE 'Production Details From' DATED-GTEXT 'TO' DATE2D-GTEXT INTO SUBJECT SEPARATED BY SPACE.
  ENDIF.

  DOC_CHNG-OBJ_DESCR = SUBJECT.

*     Mail Contents
  CLEAR SUB.
  IF SO_BUDAT-HIGH IS INITIAL.
    CONCATENATE 'Production Details For The Date' DATED-GTEXT INTO SUB SEPARATED BY SPACE.
  ELSE.
    CONCATENATE 'Production Details From' DATED-GTEXT 'To' DATE2D-GTEXT INTO SUB SEPARATED BY SPACE.
  ENDIF.
  OBJTXT = SUB.
  APPEND OBJTXT.

  CLEAR SUB.
  MOVE '-------------------------------------------------------------------------------' TO SUB.
  OBJTXT = SUB.
  APPEND OBJTXT.

  CLEAR SUB1.
  CONCATENATE 'Date......' SY-VLINE
              '1000.' SY-VLINE
              '2000.' SY-VLINE
              '3000.' SY-VLINE
              '4000.' SY-VLINE
              '5000.' SY-VLINE
              '6000.' SY-VLINE
              'PEIL.' SY-VLINE
              'TOTAL.....' SY-VLINE INTO SUB1 SEPARATED BY SPACE.
  OBJTXT = SUB1.
  APPEND OBJTXT.
  MOVE '-------------------------------------------------------------------------------' TO SUB.
  OBJTXT = SUB.
  APPEND OBJTXT.
  LOOP AT MAIL.
    CLEAR SUB.

    CALL FUNCTION 'PDOT_DATE_CONVERT'
      EXPORTING
        FIELD = MAIL-BUDAT
      TABLES
        TEXTS = DATE1D.

    CONCATENATE DATE1D-GTEXT SY-VLINE
                MAIL-VALUE1 SY-VLINE
                MAIL-VALUE2 SY-VLINE
                MAIL-VALUE3 SY-VLINE
                MAIL-VALUE4 SY-VLINE
                MAIL-VALUE5 SY-VLINE
                MAIL-VALUE6 SY-VLINE
                MAIL-VALUE7 SY-VLINE
                MAIL-VALUE8 INTO SUB SEPARATED BY SPACE.
    OBJTXT = SUB.
    APPEND OBJTXT.
  ENDLOOP.

*     Footer Message in the mail.
  MOVE '-------------------------------------------------------------------------------' TO SUB.
  OBJTXT = SUB.
  APPEND OBJTXT.
  CLEAR SUB.

  OBJTXT = SUB.
  APPEND OBJTXT.
  MOVE 'This is System Generated Message.' TO SUB.
  OBJTXT = SUB.
  APPEND OBJTXT.

*  CREATION OF THE DOCUMENT ATTACHMENT

  MOVE SUB1    TO OBJBIN-FIELD01.
  APPEND OBJBIN.

  LOOP AT MAIL.

    CLEAR OBJBIN.
    MOVE  DATE1D-GTEXT TO OBJBIN-FIELD01.
    MOVE  MAIL-VALUE1 TO OBJBIN-FIELD02.
    MOVE  MAIL-VALUE2 TO OBJBIN-FIELD03.
    MOVE  MAIL-VALUE3 TO OBJBIN-FIELD04.
    MOVE  MAIL-VALUE4 TO OBJBIN-FIELD05.
    MOVE  MAIL-VALUE5 TO OBJBIN-FIELD06.
    MOVE  MAIL-VALUE6 TO OBJBIN-FIELD07.
    MOVE  MAIL-VALUE7 TO OBJBIN-FIELD08.
    APPEND OBJBIN.
  ENDLOOP.

*  TARGET RECIPENT
  LOOP AT P_MAIL.
    CLEAR RECLIST.
    RECLIST-RECEIVER = P_MAIL-LOW.
    APPEND RECLIST.
    CLEAR RECLIST.
  ENDLOOP.

*  SENDING THE DOCUMENT
  CALL FUNCTION 'ZPM_SEND_MAIL_EXCEL_ATTACH'
    EXPORTING
      I_SUBJECT                  = SUBJECT
      I_ATTACH_FNMAE             = 'Production Details.XLS'
    TABLES
      RECEIVERS_LIST             = RECLIST
      DATA_TABLE                 = OBJBIN
      MAIL_CONTENT               = OBJTXT
    EXCEPTIONS
      TOO_MANY_RECEIVERS         = 1
      DOCUMENT_NOT_SENT          = 2
      DOCUMENT_TYPE_NOT_EXIST    = 3
      OPERATION_NO_AUTHORIZATION = 4
      PARAMETER_ERROR            = 5
      X_ERROR                    = 6
      OTHERS                     = 7.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    "MAIL&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Sankar M&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Apr 2008 09:45:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641390#M876893</guid>
      <dc:creator>p291102</dc:creator>
      <dc:date>2008-04-16T09:45:12Z</dc:date>
    </item>
    <item>
      <title>Re: row column</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641391#M876894</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi check this example ....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  Z_TRANSPOSEALV                                    .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type pools declaration for ALV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;*Declarations for ALV, dynamic table and col no for transpose&lt;/P&gt;&lt;P&gt;DATA:    l_col    TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;         l_structure   TYPE REF TO data,&lt;/P&gt;&lt;P&gt;         l_dyntable    TYPE REF TO data,&lt;/P&gt;&lt;P&gt;         wa_lvc_cat  TYPE lvc_s_fcat,&lt;/P&gt;&lt;P&gt;         lt_lvc_cat  TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;         lt_fieldcatalogue     TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         wa_fieldcat TYPE slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         lt_fieldcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;         lt_layout   TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;*Field symbols declarations&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS :&lt;/P&gt;&lt;P&gt;  &amp;lt;header&amp;gt;    TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;dynheader&amp;gt; TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;dyndata&amp;gt;   TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;ls_table&amp;gt;      TYPE ANY,&lt;/P&gt;&lt;P&gt;  &amp;lt;dynamictable&amp;gt;      TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;  &amp;lt;it_table&amp;gt; TYPE STANDARD TABLE.&lt;/P&gt;&lt;P&gt;*Input the name of the table&lt;/P&gt;&lt;P&gt;PARAMETERS p_table TYPE dd02l-tabname OBLIGATORY.&lt;/P&gt;&lt;P&gt;*Initialization event&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;*Start of selection event&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create internal table of dynamic type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE DATA l_dyntable TYPE STANDARD TABLE OF (p_table)&lt;/P&gt;&lt;P&gt;                       WITH NON-UNIQUE DEFAULT KEY.&lt;/P&gt;&lt;P&gt;  ASSIGN l_dyntable-&amp;gt;* TO &amp;lt;it_table&amp;gt;.&lt;/P&gt;&lt;P&gt;*select statement to select data from the table as input into&lt;/P&gt;&lt;P&gt;*our dynamic internal table.&lt;/P&gt;&lt;P&gt;*Here i have restricted only till 5 rows.&lt;/P&gt;&lt;P&gt;*You can set a variable and give no of rows to be fetched&lt;/P&gt;&lt;P&gt;*The variable can be set in your select statement&lt;/P&gt;&lt;P&gt; SELECT * INTO CORRESPONDING FIELDS OF TABLE &amp;lt;it_table&amp;gt;&lt;/P&gt;&lt;P&gt;                FROM (p_table) up to 5 rows.&lt;/P&gt;&lt;P&gt;*Fieldcatalogue definitions&lt;/P&gt;&lt;P&gt;  wa_lvc_cat-fieldname = 'COLUMNTEXT'.&lt;/P&gt;&lt;P&gt;  wa_lvc_cat-ref_table = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;  APPEND wa_lvc_cat TO lt_lvc_cat.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'COLUMNTEXT'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-ref_tabname = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-key  = 'X'..&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO lt_fieldcat.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE &amp;lt;it_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  DO sy-tfill TIMES.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For each line, a column 'VALUEx' is created in the fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Build Fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE sy-index TO wa_lvc_cat-fieldname LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'VALUE' wa_lvc_cat-fieldname&lt;/P&gt;&lt;P&gt;           INTO wa_lvc_cat-fieldname.&lt;/P&gt;&lt;P&gt;    wa_lvc_cat-ref_field = 'VALUE'.&lt;/P&gt;&lt;P&gt;    wa_lvc_cat-ref_table = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;    APPEND wa_lvc_cat TO lt_lvc_cat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Build Fieldcatalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-fieldname = wa_lvc_cat-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ref_fieldname = 'VALUE'.&lt;/P&gt;&lt;P&gt;    wa_fieldcat-ref_tabname = 'LVC_S_DETA'.&lt;/P&gt;&lt;P&gt;    APPEND wa_fieldcat TO lt_fieldcat.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create dynamic internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fieldcatalog = lt_lvc_cat&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      ep_table        = l_dyntable.  ASSIGN l_dyntable-&amp;gt;* TO&lt;/P&gt;&lt;P&gt;&amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create structure as structure of the internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE DATA l_structure LIKE LINE OF &amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN l_structure-&amp;gt;* TO &amp;lt;header&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create structure = structure of the internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE DATA l_structure LIKE LINE OF &amp;lt;it_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN l_structure-&amp;gt;* TO &amp;lt;ls_table&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create field catalog from our table structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_structure_name       = p_table&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat            = lt_fieldcatalogue&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      inconsistent_interface = 1&lt;/P&gt;&lt;P&gt;      program_error          = 2&lt;/P&gt;&lt;P&gt;      OTHERS                 = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.  DESCRIBE TABLE lt_fieldcatalogue.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the internal to display &amp;lt;dynamictable&amp;gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DO sy-tfill TIMES.&lt;/P&gt;&lt;P&gt;    IF sy-index = 1.&lt;/P&gt;&lt;P&gt;      READ TABLE lt_fieldcatalogue INTO wa_fieldcat INDEX 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For each field of it_table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ASSIGN COMPONENT 1 OF STRUCTURE &amp;lt;header&amp;gt; TO &amp;lt;dynheader&amp;gt;.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0. EXIT .ENDIF.&lt;/P&gt;&lt;P&gt;    READ TABLE lt_fieldcatalogue INTO wa_fieldcat INDEX sy-index.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Fill 1st column&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    &amp;lt;dynheader&amp;gt; = wa_fieldcat-seltext_m.&lt;/P&gt;&lt;P&gt;    IF &amp;lt;dynheader&amp;gt; IS INITIAL.&lt;/P&gt;&lt;P&gt;      &amp;lt;dynheader&amp;gt; = wa_fieldcat-fieldname.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*Filling the other columns&lt;/P&gt;&lt;P&gt;    LOOP AT &amp;lt;it_table&amp;gt; INTO &amp;lt;ls_table&amp;gt;.&lt;/P&gt;&lt;P&gt;      l_col = sy-tabix + 1.&lt;/P&gt;&lt;P&gt;      ASSIGN COMPONENT sy-index OF STRUCTURE &amp;lt;ls_table&amp;gt; TO &amp;lt;dyndata&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0. EXIT .ENDIF.&lt;/P&gt;&lt;P&gt;      ASSIGN COMPONENT l_col OF STRUCTURE &amp;lt;header&amp;gt; TO&lt;/P&gt;&lt;P&gt;&amp;lt;dynheader&amp;gt;.&lt;/P&gt;&lt;P&gt;      IF sy-subrc NE 0. EXIT .ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE &amp;lt;dyndata&amp;gt; TO &amp;lt;dynheader&amp;gt; LEFT-JUSTIFIED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    APPEND &amp;lt;header&amp;gt; TO &amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;*Layout for ALV output&lt;/P&gt;&lt;P&gt;  lt_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;  lt_layout-no_colhead = 'X'..&lt;/P&gt;&lt;P&gt;  lt_layout-colwidth_optimize ='X'.&lt;/P&gt;&lt;P&gt;  lt_layout-window_titlebar = 'ALV GRID TRANSPOSED'.&lt;/P&gt;&lt;P&gt;*ALV Grid output for display&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      is_layout   = lt_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat = lt_fieldcat&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab    = &amp;lt;dynamictable&amp;gt;.&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;venkat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: venkat  appikonda on Apr 16, 2008 11:52 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Apr 2008 09:49:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/row-column/m-p/3641391#M876894</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-16T09:49:34Z</dc:date>
    </item>
  </channel>
</rss>

