2007 Feb 23 5:30 PM
Hi gurus... In my internal table i have 3 columns and it;s having suppose rows between 1 to 52... max is 52. I want to Conver the 52 rows in to colums... I.e one column for 1 row. Also I want to create as many columns as number of rows are there....
Please guide me
Suhas
2007 Feb 23 6:24 PM
Hi,
Above mention code is correct... On top of that another technique...
Create an internal table with 52 columns,,, then loop at your main it... if it's 1st row... add data to 1st column... then collect it inot IT... like wise it will move for as many record are there ...
Darshan
Hi gurus... In my internal table i have 3 columns and it;s having suppose rows between 1 to 52... max is 52. I want to Conver the 52 rows in to colums... I.e one column for 1 row. Also I want to create as many columns as number of rows are there....
Please guide me
Suhas
2007 Feb 23 6:10 PM
Hi,
You need to create the Dynamic Internal table for this one ..
type-pools : abap.
field-symbols: <dyn_table> type standard table,
<dyn_wa>,
<dyn_field>.
data: dy_table type ref to data,
dy_line type ref to data,
xfc type lvc_s_fcat,
ifc type lvc_t_fcat.
selection-screen begin of block b1 with frame.
parameters: p_table(30) type c default 'T001'.
selection-screen end of block b1.
start-of-selection.
perform get_structure.
perform create_dynamic_itab. **********Creates a dyanamic internal table**********
perform get_data.
perform write_out.
form get_structure.
data : idetails type abap_compdescr_tab,
xdetails type abap_compdescr.
data : ref_table_des type ref to cl_abap_structdescr.
* Get the structure of the table.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( p_table ).
idetails[] = ref_table_des->components[].
loop at idetails into xdetails.
clear xfc.
xfc-fieldname = xdetails-name .
xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length.
xfc-decimals = xdetails-decimals.
append xfc to ifc.
endloop.
endform.
form create_dynamic_itab.
* Create dynamic internal table and assign to FS
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = ifc
importing
ep_table = dy_table.
assign dy_table->* to <dyn_table>.
* Create dynamic work area and assign to FS
create data dy_line like line of <dyn_table>.
assign dy_line->* to <dyn_wa>.
endform.
form get_data.
* Select Data from table.
select * into table <dyn_table>
from (p_table).
endform.
Write out data from table.
loop at <dyn_table> into <dyn_wa>.
do.
assign component sy-index
of structure <dyn_wa> to <dyn_field>.
if sy-subrc <> 0.
exit.
endif.
if sy-index = 1.
write:/ <dyn_field>.
else.
write: <dyn_field>.
endif.
enddo.
endloop.
Regards
Sudheer
2007 Feb 23 6:24 PM
Hi,
Above mention code is correct... On top of that another technique...
Create an internal table with 52 columns,,, then loop at your main it... if it's 1st row... add data to 1st column... then collect it inot IT... like wise it will move for as many record are there ...
Darshan
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |