메뉴 건너뛰기

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.


 


 

번호 제목 글쓴이 날짜 조회 수
4187 <img src=1.gif>SALV HIERSEQ에서 필드 구분자 넣는 방법.. 은미짱 2009.11.12 1692
4186 <img src=3.gif>SALV HIERSEQ에서 컬럼 OUTPUT LENGTH 설정.. [3] 은미짱 2009.11.11 1391
4185 <img src=2.gif>혹시 as/400 db데이터를 sap으로 가지고 오는 방법 아시는분 계신가요 [2] 처서련 2009.11.11 1061
4184 <img src=2.gif>프로그램 실행시 'CNDP' 덤프가 나는데 이유를 잘 모르겠습니다 원인과 해결책을 부탁드립니다. [2] file rune 2009.11.10 2411
4183 <img src=3.gif>0을 값으로 나눌때 생기는 에러 해결 어떻게 해야 하나요 ??? [8] 마늘맛쿨피스 2009.11.10 1840
4182 <img src=2.gif>[T-CODE]T-CODE의 변경일 생성일을 알수 있는 테이블이 어케 되나요? [2] 드라곤 2009.11.10 1378
4181 <img src=2.gif>[User-exit] BOM ( check bom data before saving ) [3] 찬호사랑 2009.11.10 2325
4180 <img src=2.gif>bom/routing BAPI 질문드립니다. [4] 신수도 2009.11.10 1810
4179 <img src=2.gif>코멘트가 있어 삭제가 안되네.. [1] 버미! 2009.11.09 984
4178 <img src=3.gif>소수점 이하 0 지우기 (소수점 값이 없는 부분만 ) [5] 짭군 2009.11.09 7863
4177 [re] <img src=2.gif>소수점 이하 0 지우기 (소수점 값이 없는 부분만 ) kkamui 2009.11.09 3782
4176 [BW] AT SELECTION-SCREEN 기능관련해서 문의드립니다.. [3] BW궁금 2009.07.28 991
4175 <img src=2.gif>유지보수뷰에서 통화키 파서블엔트리로 어떻게 띄우나요? [2] 99avenue 2009.11.07 2626
4174 <img src=3.gif>특수문자 입력하는 방법이 있습니까? [3] 삼색볼펜 2009.11.07 1695
4173 <img src=2.gif>webdynpro에서 word 파일 출력시 한글 깨짐 현상 오류 [1] 규리 2009.11.06 1880
4172 <img src=3.gif>PARAMETERS 구문으로 LISTBOX만들기.. [6] 와퍼 2009.11.06 2844
4171 <img src=3.gif>값이 있는 항목만 유동적으로 나타내기 [2] hogun 2009.11.05 1120
4170 <img src=3.gif>종렬로 되어있는 데이터를 인터널테이블에 횡렬로 채우기 [3] hogun 2009.11.05 1227
» [re] <img src=2.gif>종렬로 되어있는 데이터를 인터널테이블에 횡렬로 채우기 [1] kkamui 2009.11.07 1286
4168 [re] <img src=2.gif>종렬로 되어있는 데이터를 인터널테이블에 횡렬로 채우기 [2] 요요 2009.11.05 1763