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

display column data into row as per input

Former Member
0 Likes
713

Hello All,

I have internal Table Like this

Field 1 Field2

1 601

1 602

1 603

1 604

1 605

1 606

1 607

1 608

1 609

1 610

2 611

2 612

2 613

2 614

2 615

2 616

2 617

2 618

2 619

2 620

And its out put like

Field1 Field2

-


1 601 602 603

604 605 606

607 608 609

610

2 611 612 613

614 615 616

617 618 619

620

I have written code as Below, But its not working.

Kindly help me for this. Thanks in Advance.

types: begin of ty_taba,

flag(2) type c,

series(8) type c,

end of ty_taba.

data: it_taba type standard table of ty_taba initial size 0,

wa_taba type ty_taba.

types: begin of ty_tabb,

flag(2) type c,

series1(8) type c,

series2(8) type c,

series3(8) type c,

end of ty_tabb.

data: it_tabb type standard table of ty_tabb initial size 0,

wa_tabb type ty_tabb.

data: flag_0,flag_1, flag_2.

loop at it_taba into wa_taba.

on change of wa_taba-flag.

wa_tabb-flag = wa_taba-flag.

endon.

if op = '01'.

wa_tabb-series1 = wa_taba-series.

endif.

if op = '02'.

if flag_0 = 'X'.

wa_tabb-series1 = wa_taba-series.

clear : flag_0.

Endif.

if flag_1 = 'X'.

wa_tabb-series2 = wa_taba-series.

clear : flag_1.

Endif.

endif.

if flag_2 = 'X'.

wa_tabb-series3 = wa_taba-series.

clear : flag_2.

endif.

if flag_1 <> ' '.

flag_0 = 'X'.

endif.

if flag_0 = ' '.

flag_1 = 'X'.

endif.

if flag_1 <> ' '.

flag_0 = 'X'.

flag_2 = 'X'.

endif.

break-point.

collect wa_tabb into it_tabb.

clear : wa_tabb,wa_taba.

endloop.

loop at it_tabb into wa_tabb.

write:/3 wa_tabb-flag, 8 wa_tabb-series1, 20 wa_tabb-series2,32 wa_tabb-series3.

endloop.

clear wa_tabb.

top-of-page.

write:/3 'Key', 25 'Series'.

write:/ sy-uline(175).

Edited by: jahnavee trivedi on Sep 17, 2011 12:00 PM

Edited by: jahnavee trivedi on Sep 17, 2011 12:05 PM

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
687

Hi Jahnavee ,

Loop on the internal table and use 'AT NEW', this will be more simple logic.

Thanks,

Muktar

Hi Jahnavee ,

Loop on the internal table and use 'AT NEW', this will be more simple logic.

Thanks,

Muktar

5 REPLIES 5
Read only

Former Member
0 Likes
688

Hi Jahnavee ,

Loop on the internal table and use 'AT NEW', this will be more simple logic.

Thanks,

Muktar

Read only

0 Likes
687

Hello,

Its not use of at new

but its about i need 1 column into more then 1 column.

Like

1

2

3

4

5

6

7

8

9

10

and as output i need it like

1 2 3

4 5 6

7 8 9

10

Read only

0 Likes
687

Alrite now I get it, so how many colums does your internal table have and how many colums do you want in your output.

otherwise if you want to display based on unique field1... try this.


  lv_count = 1.
  LOOP AT int_test.
    AT NEW field1.
      lv_count = 1.
    ENDAT.
    IF lv_count = 1.
      WRITE: / int_test-field1,
               int_test-field2.
    ELSE.
      WRITE: int_test-field2.
    ENDIF.
    lv_count = lv_count + 1.
  ENDLOOP.

Thanks,

Muktar

Read only

0 Likes
687

Hi

Check the below code and make the changes if required:


TYPES: BEGIN OF ty_taba,
flag(2) TYPE c,
series(8) TYPE c,
END OF ty_taba.
DATA: it_taba TYPE STANDARD TABLE OF ty_taba INITIAL SIZE 0,
wa_taba TYPE ty_taba.

TYPES: BEGIN OF ty_tabb,
flag(2) TYPE c,
series(8) TYPE c,
series2(8) TYPE c,
series3(8) TYPE c,
END OF ty_tabb.

DATA: it_tabb TYPE STANDARD TABLE OF ty_tabb INITIAL SIZE 0,
wa_tabb TYPE ty_taba.

wa_taba-flag = '1'.
wa_taba-series = '601'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '602'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '603'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '604'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '605'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '606'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '607'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '608'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '609'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '1'.
wa_taba-series = '610'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '611'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '612'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '613'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '614'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '615'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '616'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '617'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '618'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '619'.
APPEND wa_taba TO it_taba.

wa_taba-flag = '2'.
wa_taba-series = '620'.
APPEND wa_taba TO it_taba.

DATA: lv_flag TYPE char1,

      lv_cnt  TYPE i,
      lv_pos TYPE i VALUE 3.


SORT it_taba BY flag series.

LOOP AT it_taba INTO wa_taba.
  wa_tabb = wa_taba.
  AT NEW flag.
    lv_flag = 'X'.
    WRITE AT lv_pos wa_tabb-flag.
  ENDAT.

  IF lv_flag = 'X'.
    lv_pos = lv_pos + 5.
    WRITE AT lv_pos wa_tabb-series.
    lv_pos = lv_pos + 5.
    CLEAR lv_flag.
    lv_cnt = lv_cnt + 1.

  ELSE.
    lv_cnt = lv_cnt + 1.
    WRITE AT lv_pos wa_tabb-series.
    lv_pos = lv_pos + 5.
  ENDIF.



  AT END OF flag.
    NEW-LINE.
    lv_cnt = 0.
    lv_pos = 3.
    lv_flag = ' '.
  ENDAT.
  IF lv_cnt = 3.
    NEW-LINE.
    lv_cnt = 0.
    lv_pos = 3.
    lv_flag = ' '.
  ENDIF.
*if lv_flag <> 'X'.
*endif.


ENDLOOP.
CLEAR wa_tabb.

TOP-OF-PAGE.
  WRITE:/3 'Key', 16 'Series'.
  WRITE:/ sy-uline(175).

Shiva

Read only

0 Likes
687

hi ,

Check below logic :

TYPES  : BEGIN OF w_tab ,
        flg TYPE i ,
        series   TYPE   i ,
     END OF w_tab .

TYPES  : BEGIN OF w_tab2 ,
   flg TYPE i ,
   series   TYPE   i ,
END OF w_tab2 .


TYPES  : BEGIN OF w_tab1 ,
        flg TYPE i ,
        series1   TYPE   i ,
       series2   TYPE   i ,
       series3   TYPE   i ,
       series4   TYPE   i ,
       series5   TYPE   i ,
       series6   TYPE   i ,
       series7   TYPE   i ,
       series8   TYPE   i ,
       series9   TYPE   i ,
       series10   TYPE   i ,
       END OF w_tab1 .


DATA : it_tab TYPE STANDARD TABLE OF w_tab WITH HEADER LINE .
DATA : it_tab1 TYPE STANDARD TABLE OF w_tab1 WITH HEADER LINE .

DATA : itab TYPE  w_tab2 .


it_tab-flg  = '1' .
it_tab-series = '601' .
APPEND it_tab.
CLEAR it_tab .


it_tab-flg  = '1' .
it_tab-series = '602' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '603' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '604' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '605' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '606' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '607' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '608' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '609' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '1' .
it_tab-series = '610' .
APPEND it_tab.
CLEAR it_tab .


it_tab-flg  = '2' .
it_tab-series = '611' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '612' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '613' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '614' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '615' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '616' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '617' .
APPEND it_tab.
CLEAR it_tab .


it_tab-flg  = '2' .
it_tab-series = '618' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '619' .
APPEND it_tab.
CLEAR it_tab .

it_tab-flg  = '2' .
it_tab-series = '620' .
APPEND it_tab.
CLEAR it_tab .

DATA : cnt  TYPE i VALUE 1 .
DATA : wa_index TYPE sy-tabix .


SORT  it_tab BY  flg  series .


LOOP AT it_tab INTO itab  .

  IF cnt > 10  .

    cnt  = 1 .

  ENDIF.



  IF  cnt <= '10' .

    IF cnt  = 1 .


      it_tab1-flg  = itab-flg .
      it_tab1-series1 = itab-series  .
      APPEND it_tab1.
      CLEAR it_tab1 .


    ELSEIF cnt = 2 .

      DESCRIBE TABLE it_tab1 LINES wa_index .


      it_tab1-series2 = itab-series  .

      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series2.

    ELSEIF cnt = 2 .

      it_tab1-series3 = itab-series  .

      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series3.

    ELSEIF cnt = 4 .

      it_tab1-series4 = itab-series  .

      MODIFY it_tab1 INDEX wa_index TRANSPORTING series4.


    ELSEIF cnt = 5 .

      it_tab1-series5 = itab-series  .
      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series5.


    ELSEIF cnt = 6 .

      it_tab1-series6 = itab-series  .
      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series6.


    ELSEIF cnt = 7 .

      it_tab1-series7 = itab-series  .

      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series7.


    ELSEIF cnt = 8 .

      it_tab1-series8 = itab-series  .

      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series8.


    ELSEIF cnt = 9 .

      it_tab1-series9 = itab-series  .

      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series9.


    ELSEIF cnt = 10 .

      it_tab1-series10 = itab-series  .

      MODIFY it_tab1 INDEX  wa_index TRANSPORTING series10.




    ENDIF.
  ELSE .

    CLEAR :  cnt  ,itab .


  ENDIF.


  cnt = cnt  + 1 .


ENDLOOP.

R