메뉴 건너뛰기

SAP 한국 커뮤니티

>itab1


>KEY    |   항목    |    항목값  |


>____________________________


>A        |     a1     |      b1       |


>A        |     a2     |      b2       |


>A        |     a3     |       b3      |


> B              :               :


>____________________________            형태를 key 값이 같은 항목과 항목값을



>===>



>itab2


>           |    a1     |       a2     |       a3      |


> ---------------------------------------


>A         |    b1      |      b2     |       b3      |  가로 형태로 채워야합니다.



>B



>둘다 인터널 테이블입니다.



>필드심볼로 루프돌려서 이래저래하는데 잘 안되네요                                                              








요요님 답글이 달려 답글 달기는 민망하지만 무식한 방법도 있어 답글 답니다.


필드 심볼은 정확한 데이터를 몰라 패쓰.... ^^;;


 


CONSTANTS : c_a TYPE c VALUE 'A',
            c_b TYPE c VALUE 'B'.


FIELD-SYMBOLS : <field> TYPE ANY,
                <value> TYPE ANY.


DATA : l_field TYPE char30,
       l_index TYPE num2.


* 원천 자료
DATA : BEGIN OF itab OCCURS 0 ,
         key   TYPE char1 ,
         cell  TYPE char3,
         value TYPE char3,
       END OF itab.


* 작업참조
DATA : itab_1 LIKE itab OCCURS 0 WITH HEADER LINE.


* 변환 자료
DATA : BEGIN OF itab2 OCCURS 0,
        key    TYPE char1,
        cell01 TYPE char3,
        cell02 TYPE char3,
        cell03 TYPE char3,
        cell04 TYPE char3,
        cell05 TYPE char3,
        cell06 TYPE char3,
        cell07 TYPE char3,
        cell08 TYPE char3,
        cell09 TYPE char3,
        cell10 TYPE char3,
       END OF itab2,
       ls_tab2 LIKE itab2.


DATA : l_key   TYPE char1,
       l_cell  TYPE char3,
       l_value TYPE char3.


DEFINE _fill_up.
  itab-key   = &1.
  itab-cell  = &2 .
  itab-value = &3.
  append itab. clear itab.
END-OF-DEFINITION.


*&--------------------------------------------------------
PARAMETERS : p_num TYPE numc2 DEFAULT 10 OBLIGATORY.



*&--------------------------------------------------------
START-OF-SELECTION.


  CHECK p_num LE 10 .
  DO p_num TIMES .
    l_index = sy-index.
* A 키 자료 생성
    l_key = c_a.
    CONCATENATE c_a l_index INTO l_cell.
    CONCATENATE c_b l_index INTO l_value.
    _fill_up l_key l_cell l_value.
* B 키 자료 생성
    l_key = c_b.
    CONCATENATE c_a l_index INTO l_cell.
    CONCATENATE c_b l_index INTO l_value.
    _fill_up l_key l_cell l_value.
  ENDDO .


  SKIP 2.
  LOOP AT itab.
    WRITE :/05 itab-key   COLOR 2,
               itab-cell  COLOR 2,
               itab-value COLOR 2.
  ENDLOOP. " LOOP AT ITAB.
  SKIP 2.
* 작업 정렬
  SORT itab.
  itab_1[] = itab[].


* 작업기준 자료 생성 - 키
  DELETE ADJACENT DUPLICATES FROM itab_1
                        COMPARING key .
* 중복자료 제거
  DELETE ADJACENT DUPLICATES FROM itab
                        COMPARING key cell value.


  CLEAR l_index.
  LOOP AT itab_1 . " 키 기준 테이블


    LOOP AT itab WHERE key EQ itab_1-key .
*     키반영
      ls_tab2-key = itab-key.  " 키반영


*     필드별
      CASE itab-cell.
        WHEN 'A01'.
*          CONCATENATE 'ITAB2-CELL' l_index INTO l_field.
*          ASSIGN (l_field) TO <field>.
*          <field> = itab-value.
          ls_tab2-cell01 = itab-value.
        WHEN 'A02'.
          ls_tab2-cell02 = itab-value.


        WHEN 'A03'.
          ls_tab2-cell03 = itab-value.


        WHEN 'A04'.
          ls_tab2-cell04 = itab-value.


        WHEN 'A05'.
          ls_tab2-cell05 = itab-value.


        WHEN 'A06'.
          ls_tab2-cell06 = itab-value.


        WHEN 'A07'.
          ls_tab2-cell07 = itab-value.


        WHEN 'A08'.
          ls_tab2-cell08 = itab-value.


        WHEN 'A09'.
          ls_tab2-cell09 = itab-value.


        WHEN 'A10'.
          ls_tab2-cell10 = itab-value.


      ENDCASE. " CASE ITAB-CELL.


    ENDLOOP. "  LOOP AT itab WHERE key EQ itab_1-key .


*    ITAB2 자료 반영
    APPEND ls_tab2 TO itab2. CLEAR : ls_tab2, itab2.


  ENDLOOP. "  LOOP AT ITAB_1 .


*
  DESCRIBE TABLE itab2 LINES sy-tfill .
  WRITE :/05 ' 생성 건수 : ' COLOR 4,
             sy-tfill        COLOR 7.
  SKIP.
  LOOP AT itab2 .
    WRITE :/05 itab2-key    COLOR 2,
               itab2-cell01 COLOR 2 ,
               itab2-cell02 COLOR 2 ,
               itab2-cell03 COLOR 2 ,
               itab2-cell04 COLOR 2 ,
               itab2-cell05 COLOR 2 ,
               itab2-cell06 COLOR 2 ,
               itab2-cell07 COLOR 2 ,
               itab2-cell08 COLOR 2 ,
               itab2-cell09 COLOR 2 ,
               itab2-cell10 COLOR 2 .
  ENDLOOP.


 


 

번호 제목 글쓴이 날짜 조회 수
4172 <img src=3.gif>PARAMETERS 구문으로 LISTBOX만들기.. [6] 와퍼 2009.11.06 2752
4171 <img src=3.gif>값이 있는 항목만 유동적으로 나타내기 [2] hogun 2009.11.05 1115
4170 <img src=3.gif>종렬로 되어있는 데이터를 인터널테이블에 횡렬로 채우기 [3] hogun 2009.11.05 1223
» [re] <img src=2.gif>종렬로 되어있는 데이터를 인터널테이블에 횡렬로 채우기 [1] kkamui 2009.11.07 1278
4168 [re] <img src=2.gif>종렬로 되어있는 데이터를 인터널테이블에 횡렬로 채우기 [2] 요요 2009.11.05 1759
4167 <img src=3.gif>ABAP에서 BADI와 BTE에 대해서 자세하게 설명 좀 해주세요~~ [3] 권장원 2009.11.05 1841
4166 <img src=2.gif>BDC로 입력 시 , 테이블 컨트롤 page down하는 방법 [7] file 에비앙 2009.11.05 1450
4165 <img src=3.gif>field exit 관한 질문입니다..보고 검토 쫌 부탁드립니다. [2] 아밥고지를 찾아서 2009.11.04 1323
4164 <img src=3.gif>구구단 코딩에서 잘 모르겠는 부분이 있어서 알려주세요 [3] 나도sap 2009.11.04 1775
4163 <img src=1.gif>ALV 컬럼텍스트 길이에 대해서 질문이 있습니다. file rune 2009.11.04 1790
4162 <img src=2.gif>salv관련 F4뜨게 하는것 관련 질문입니다. [2] 야생수컷 2009.11.04 1786
4161 <img src=3.gif>mk03을 call transaction하려고 합니다. [4] 토니 2009.11.04 1950
4160 <img src=2.gif>배치 job으로 조회된 데이타 text 로 지정한 디렉토리로 다운로드 하는 프로그램 아시는분 [2] 2009.11.04 1235
4159 <img src=2.gif>BAPI PR Release 시 Lock 걸리는 문제 [2] 비와바람 2009.11.03 1344
4158 <img src=2.gif>SELECT문에 대한 질문입니다. ㅠㅜ [3] 마늘맛쿨피스 2009.11.03 1220
4157 <img src=2.gif>[요청]sap화면에서 브라우저를 띄울수 있는 방법 좀 부탁드립니다. [2] 원니컴 2009.11.03 1805
4156 <img src=3.gif>인터널 테이블 간단히 아래로 복사하는 방법없을까요? [2] 아밥고지를 찾아서 2009.11.03 905
4155 SAP ECC 6.0에서 타시스템의 WEB Service 호출하는 방법 및 사례를 구합니다. SkyDream 2009.11.03 2354
4154 <img src=3.gif>레이아웃(스크린) 버튼 클릭시 에러가 납니다. [5] file 도움이 2009.11.03 1298
4153 <img src=3.gif>Web Dynpro for JAVA를 하기 위해서는? [6] 대장군 2009.11.02 1209