안녕하십니까?
도움 항상 감사 드립니다.
다름이 아니라,
아래와 같이 alv로 디스플레이 시켰습니다.
KUNAG | MATNR | KDMAT | WAERK | ZFCIVNO | FKIMG | NETWR | SBINUM | SBIQTY | SBINETWR | |||
고객 | 자재명 | 고객자재명 | 화폐 | 인보이스번호 | 매출수량 | 매출금액 | SBI 문서번호 | SBI 수량 | SBI 금액 | 남은수량 | 남은금액 | |
+ | 100000 | X-01 | 1234 | EUR | 9900010 | 1000 | 1000000 | 500 | 500000 | 500 | 500000 |
여기서 + 버튼을 클릭 하면 아래와 같이 상세내역을 볼수 있게 하고 싶습니다.
고객 | 자재명 | 고객자재명 | 화폐 | 인보이스번호 | 매출수량 | 매출금액 | SBI 문서번호 | SBI 수량 | SBI 금액 | 남은수량 | 남은금액 |
100000 | X-01 | 1234 | EUR | 9900010 | 1000 | 1000000 | 71111 | 200 | 200000 | 800 | 800000 |
71112 | 200 | 200000 | 600 | 600000 | |||||||
71113 | 100 | 100000 | 500 | 500000 |
고수님들의 많은 도움 부탁 드리겠습니다.
감사합니다.
댓글 3
-
storyroom.net™
2008.10.29 23:45
-
보나
2008.10.29 23:49
tables : vbak, vbap.
TYPE-POOLS : slis.
DATA : t_fcat TYPE slis_t_fieldcat_ALV.
DATA : w_fcat TYPE slis_fieldcat_ALV,
x_layout TYPE slis_layout_ALV.
TYPES : BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln,
erdat TYPE vbak-erdat,
netwr TYPE vbak-netwr,
expand(1),
END OF ty_vbak.
TYPES : BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
arktx TYPE vbap-arktx,
werks TYPE vbap-werks,
END OF ty_vbap.
* HEADER
DATA : t_vbak TYPE ty_vbak OCCURS 0.
* ITEM
DATA : t_vbap TYPE ty_vbap OCCURS 0.
DATA : w_keyinfo TYPE slis_keyinfo_ALV.
w_keyinfo-header01 = 'VBELN'.
w_keyinfo-item01 = 'VBELN'.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
START-OF-SELECTION.
SELECT vbeln erdat netwr
FROM vbak
INTO TABLE t_vbak
where vbeln in s_vbeln.
SELECT vbeln posnr arktx werks
FROM vbap INTO TABLE t_vbap
FOR ALL ENTRIES IN t_vbak
WHERE vbeln = t_vbak-vbeln.
SORT t_vbak BY vbeln.
SORT t_vbap BY vbeln.
w_fcat-col_pos = 1.
w_fcat-fieldname = 'VBELN'.
w_fcat-tabname = 'T_VBAK'.
w_fcat-REPTEXT_DDIC = '주문번호'.
APPEND w_fcat TO t_fcat.
w_fcat-col_pos = 2.
w_fcat-fieldname = 'ERDAT'.
w_fcat-tabname = 'T_VBAK'.
w_fcat-REPTEXT_DDIC = '생성일'.
APPEND w_fcat TO t_fcat.
w_fcat-col_pos = 3.
w_fcat-fieldname = 'NETWR'.
w_fcat-tabname = 'T_VBAK'.
w_fcat-REPTEXT_DDIC = '정가'.
APPEND w_fcat TO t_fcat.
w_fcat-col_pos = 4.
w_fcat-fieldname = 'POSNR'.
w_fcat-tabname = 'T_VBAP'.
w_fcat-REPTEXT_DDIC = '순번'.
APPEND w_fcat TO t_fcat.
w_fcat-col_pos = 5.
w_fcat-fieldname = 'ARKTX'.
w_fcat-tabname = 'T_VBAP'.
w_fcat-REPTEXT_DDIC = 'Short text'.
APPEND w_fcat TO t_fcat.
w_fcat-col_pos = 6.
w_fcat-fieldname = 'WERKS'.
w_fcat-tabname = 'T_VBAP'.
w_fcat-REPTEXT_DDIC = 'Plant'.
APPEND w_fcat TO t_fcat.
*** 펼치기 접기
x_layout-expand_fieldname = 'EXPAND'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
is_layout = x_layout
it_fieldcat = t_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
i_tabname_header = 'T_VBAK'
i_tabname_item = 'T_VBAP'
* I_STRUCTURE_NAME_HEADER =
* I_STRUCTURE_NAME_ITEM =
is_keyinfo = w_keyinfo
* IS_PRINT =
* IS_REPREP_ID =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab_header = t_vbak
t_outtab_item = t_vbap
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
보나
2008.10.29 23:50
A - 헤더
B - 디테일
인 경우 두줄 ALV 소스입니다.
하지만 저도 위의 소스의 펑션을 사용하기보다는,
stroyroom 님 말씀처럼 alv 한화면에서 뿌리기 보다는 해당 라인을 더블클릭시 창을 띄워서 상세내역을 보여주는
패턴을 이용합니다...
보통 저런건 alv 한화면에서 뿌리기 보다는 해당 라인을 더블클릭시 창을 띄워서 상세내역을 보여주는
패턴으로 가는데요....
굳이 하신다고 하면 sub sum 기능을 잘 사용하면 저런건 공짜로 될것 같습니다.
상세 내역을 뿌려놓고 매출금액까지를 subsum 한 상태를 기본으로 화면 디스플레이를 하면 되겠지요...