오늘은 REUSE_ALV_HIERSEQ_LIST_DISPLAY 로 고민하고 있습니다.
파라메터로 넘기는 is_keyinfo 에 대한 내용인데요.
작업중인 프로그램은 현재 처리중인 전표에 대한 정보를 표시해 줍니다.
함수 REUSE_ALV_HIERSEQ_LIST_DISPLAY 를 사용해서
HEADER 테이블과 ITEM 테이블을 넘겨주고 있죠.
다음의 5가지 항목이 하나의 key 가 됩니다.
- 고객처 , 운송경로 , 출하포인트 , 적재그룹 , 납기
즉, 위의 5개 항목이 같은 명세들이 위의 헤더 밑에 표시 되게 되며,
5개중에서 다른 정보가 들어 있다면
다시 새로운 헤더가 생성 되어, 밑에 명세들이 다시 출력 됩니다.
현재 각각의 5개 항목은
is_keyinfo 구조 안의 각 header01 ~ header05 , item01 ~ item05 항목에 넣어 놨습니다.
예)
is_keyinfo-header01 = 'KUNNR'.
is_keyinfo-item01 = 'KUNNR'.
....
...
is_keyinfo-item05 ...
여기서 문제는, 헤더에 한 항목을 추가 하면서 발생하게 되는데요..
is_keyinfo ( 타입 slis_keyinfo_alv ) 을 보니, header01 ~ header05 까지 밖에 없고 header06 이 없는겁니다.
***
자료를 찾아보니 CLASS CL_SALV_FUNCTIONS 를 이용하면
data: ibinding type salv_t_hierseq_binding.
data: xbinding type salv_s_hierseq_binding.
을 사용해서 내부 테이블에 헤더-명세 관계를 APPEND 해 나갈 수 있는 것 같더군요.
xbinding-master = 'CARRID'.
xbinding-slave = 'CARRID'.
append xbinding to ibinding.
cl_salv_hierseq_table=>factory(
exporting t_binding_level1_level2 = ibinding
.....
문제는 CL_SALV_FUNCTIONS 는 Netweaver 2004 이후부터 지원이 되고, 저희쪽 시스템은 이전 버젼이라
상기의 클래스 인터페이스가 없다는겁니다..
그리하여 질문은 ALV 의 Hierarchical Sequential List 를 이용함에 있어
복수의(6개 이상) 헤더-명세 관계를 어떻게 지정해야 되는지를 여쭙고싶습니다.
혹은, is_keyinfo 에 대한 저의 이해가 부족했다면 염치없지만 설명을 부탁드립니다.
댓글 2
-
해처리
2009.10.16 16:43
-
JiruMi
2009.10.16 18:10
해처리님 // 답변 감사드립니다.
답변이 안 달릴 줄 알았던 게시물에 답글이 달리니 너무 고맙네요.
결국 현재 상황으로 헤더-명세의 관계를 6개 이상 지정하는것은 불가능 할까요?
해처리님의 답변도 좋은 방법이네요.
비슷한 맥락입니다만. 현재, "5개의 항목"를 판단해서 서로 일치하는 레코드 들에 대하여 각각 새로운 공통의 키(정수형)를 부여 하는 방식으로
-> 결국 기존의 5key 를 없애고 새롭게 추가한 key 1개 만을 사용
해서 어제 저녁에 수정을 한 후, 테스트 중에 있습니다..
성공하면 질문 닫도록 하겠습니다 :)
키를 조합한 필드를 하나 생성해서 사용하면 어떨까요?
예를 들어서 "COMPOSITE" 이라는 필드를 하나 만들고 고객처 , 운송경로 , 출하포인트 , 적재그룹 , 납기를 concatenate해서 넣으면
is_keyinfo-header01 = 'COMPOSITE'.
is_keyinfo-item01 = 'COMPOSITE'.
이렇게 하나만 사용해도 돼지 않을까요?