Senario

STPO 의 BOM Items 를 활용해 Level 별로 count 하는 Cursor 를 만들어 BOM Item 을 Level 별로 구분 짓는데 구분자로 사용해서 Item 들을 Level 별로 구분지어 출력 하는 예제


1. CURSOR (1) : BOM ITEM 을 레벨 별로 COUNT

OPEN SURCOR @DATA(dbcur1) FOR
SELECT stlnr, zstufe, COUNT(*) AS count
FROM stpo
WHERE stlnr = '00402270'
GROUP BY stlnr, zstufe
ORDER BY stlnr, zstufe .


2. CURSOR (2) : BOM Item 전체 Select

OPEN SURCOR @DATA(dbcur2) FOR
SELECT *
FROM stpo
WHERE stlnr = '00402270'
ORDER BY stlnr .


3. Structure & Internal Table

DATA : BEGIN OF ls_stpo,
stlnr type stpo-stlnr,
zstufe type stpo-zstufe,
count type i,
END OF ls_stpo.

DATA : stpo_tab TYPE TABLE OF stpo.


4. CURSOR (1) 를 활용해 Level 별 Item List 만들기

DO.

FETCH NEXT CURSOR @dbcur1 INTO @ls_stpo.

IF sy-subrc <> 0 . " INTO 가 안되면 EXIT
EXIT.
ENDIF.

cl_demo_output=>next_seection( | { ls_stpo-stlrn }, { ls_stpo-zstufe }, { ls_stpo-count } | )

FETCH NEXT CURSOR @dbcur2 INTO TABLE @stpo_tab PACKAGE SIZE @ls_stpo-count " 쪼개 담을 단위를 위에 dbcur1 에서 받은값으로 활용

cl_demo_output=>write( stpo_tab ).

ENDDO.


5. CURSOR 끝내기


CLOSE CURSOR : @dbcur1, @dbcur2.


6. 리스트 출력


cl_demo_output => display( ).



  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기