Quantcast
Viewing all articles
Browse latest Browse all 9760

Re: Rows to Column Conversion in ABAP

data : wa_zdemo likelineof it_zdemo,
       wa_zdemo1 likelineof it_zdemo.

data : gv_pos typei.
data : fname type string.

* Dynamic Table Declarations

  data : gt_dyn_table  typereftodata,
         gw_line       typereftodata,
         gw_dyn_fcat         type lvc_s_fcat,
         gt_dyn_fcat         type lvc_t_fcat.

* Field Symbols Declarations

field-symbols: <gfs_line>,<gfs_line1>,
                <gfs_dyn_table> typestandardtable,
                <fs1>.

 


* This would create structure part WW1301 WW1302 ....

gv_pos = gv_pos + 1.
gw_dyn_fcat-fieldname = 'PART'.
gw_dyn_fcat-outputlen = 5.
gw_dyn_fcat-tabname   = 'IT_DEMO'.
gw_dyn_fcat-COLTEXT   = 'PART'.
gw_dyn_fcat-col_pos   = gv_pos.
gw_dyn_fcat-key = 'X'.
gw_dyn_fcat-key_sel = 'X'.
append gw_dyn_fcat to gt_dyn_fcat.

loopat it_zdemo into wa_zdemo.
     gv_pos = gv_pos + 1.
     concatenate'WW' wa_zdemo-wweek into fname.
     gw_dyn_fcat-fieldname = wa_zdemo-wweek.
     gw_dyn_fcat-tabname   = 'IT_DEMO'.
     gw_dyn_fcat-COLTEXT   = fname.
     gw_dyn_fcat-outputlen = 10.
     gw_dyn_fcat-col_pos   = gv_pos.
     append gw_dyn_fcat to gt_dyn_fcat.
endloop.

* Create a dynamic internal table with this structure.

callmethod cl_alv_table_create=>create_dynamic_table
     exporting
       i_style_table             = 'X'
       it_fieldcatalog           = gt_dyn_fcat
     importing
       ep_table                  = gt_dyn_table
     exceptions
       generate_subpool_dir_full = 1
       others                    = 2.

    if sy-subrc eq0.
* Assign the new table to field symbol
     assign gt_dyn_table->* to<gfs_dyn_table>.
* Create dynamic work area for the dynamic table
     createdata gw_line likelineof<gfs_dyn_table>.
     assign gw_line->* to<gfs_line>.
      assign gw_line->* to<gfs_line1>.
   endif.

loopat it_zdemo into wa_zdemo.
* Avoid duplicate entries for key field PART.  
     READTABLE<gfs_dyn_table> INTO<gfs_line1> WITHKEY ('PART') = wa_zdemo-part.
     if sy-subrc = 0.
          CONTINUE.
     endif.
     assigncomponent'PART'ofstructure<gfs_line> to<fs1>.
     <fs1> = wa_zdemo-part.
     unassign <fs1>.
     loopat gt_dyn_fcat into gw_dyn_fcat.
         if gw_dyn_fcat-fieldname = 'PART'.
           continue.
         endif.
         readtable it_zdemo WITHkey part = wa_zdemo-part wweek = gw_dyn_fcat-fieldname INTO wa_zdemo1.
         if sy-subrc = 0.
            assigncomponent gw_dyn_fcat-fieldname ofSTRUCTURE<gfs_line> to<fs1>.
            <fs1> = wa_zdemo1-qty.
            unassign <fs1>.
         endif.
     endloop.
     append<gfs_line> to<gfs_dyn_table>.
     clear: <gfs_line>.
  endloop.

write :/.
      loopat gt_dyn_fcat into gw_dyn_fcat.
           write (10) : gw_dyn_fcat-coltext.
       endloop.
write :/.
  loopat<gfs_dyn_table> into<gfs_line>.
      loopat gt_dyn_fcat into gw_dyn_fcat.
           assigncomponent gw_dyn_fcat-fieldname ofSTRUCTURE<gfs_line> to<fs1>.
           write : <fs1>.
       endloop.
      write :/      .
  endloop.


Viewing all articles
Browse latest Browse all 9760

Trending Articles