2011 Sep 17 10:53 AM
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
2011 Sep 17 11:24 AM
Hi Jahnavee ,
Loop on the internal table and use 'AT NEW', this will be more simple logic.
Thanks,
Muktar
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
2011 Sep 17 11:24 AM
Hi Jahnavee ,
Loop on the internal table and use 'AT NEW', this will be more simple logic.
Thanks,
Muktar
2011 Sep 17 12:00 PM
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
2011 Sep 17 12:22 PM
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
2011 Sep 18 4:50 AM
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
2011 Sep 19 5:18 AM
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
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |