기존에 테이블에 존재 하는 (ex) 생일 테이블을 불러와.
ALV로 나타내려 합니다.
.
총 2개의 ALV를 사용할것이고.. 테이블은 기존에 존재하는 테이블에서 생일 FIELD 만 꺼내와서
하나의 ALV 에는 태어난 월만 보여주고
하나의 ALV 에는 태어난 연도만 보여 주려고 합니다.
.
어떻게 해야 할까요??? 이리 생각 저리 생각해도 답이 안나오네요 ㅜㅜ
일단 기존 소스 는 이렇습니다....
*&---------------------------------------------------------------------*
*& Report Z_BIRTHDAY_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report z_birthday_1.
data : ok_code type sy-ucomm.
data : con1_ref type ref to cl_gui_custom_container,
grid1 type ref to cl_gui_alv_grid.
data : gt_fieldcat type lvc_t_fcat.
data : itab_br type table of ztkks01.
selection-screen begin of block bir with frame title text-001 no intervals.
parameter month radiobutton group radi.
parameter year radiobutton group radi.
selection-screen end of block bir.
parameter bir_1 like zbirthday-birthday.
start-of-selection.
select * from ztkks01 into table itab_br.
call screen 100.
*----------------------------------------------------------------------*
* MODULE init_con OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
module init_con output.
if con1_ref is initial.
create object con1_ref
exporting container_name = 'CON1'.
create object grid1
exporting
i_parent = con1_ref.
perform settin_catalog.
call method grid1->set_table_for_first_display
* EXPORTING
* i_structure_name = 'ZTKKS01'
changing
it_outtab = itab_br
it_fieldcatalog = gt_fieldcat.
endif.
endmodule. " init_con OUTPUT
include z_birthday_1_status_0100o01.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module status_0100 output.
set pf-status '100'.
set titlebar '100'.
endmodule. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module user_command_0100 input.
case ok_code.
when 'EXIT' or 'BACK' or 'CANC'.
leave program.
endcase.
endmodule. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module ini_100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form settin_catalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form settin_catalog .
data ls_fieldcat type lvc_s_fcat.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'BIRTH'.
ls_fieldcat-coltext = 'month'.
append ls_fieldcat to gt_fieldcat.
endform. " settin_catalog
현제 결과 ALV 에선 그냥 생년월일이 다 나오는 상황인데...
요걸 따로 구분해서 보이고 싶은데......
대책이 안서내요 ㅡㅜ 월별이야 정적으로 하드코딩 하면된다지만...
년별을 표시할땐;;;;;; 동적이라......@@;;
어떻게 해야 할까용??
댓글 6
-
kwon09
2007.04.13 17:45
-
bd
2007.04.13 18:18
제가 초보라 정확한 표현이 힘드네요 ..
-
이종원
2007.04.13 18:22
제가 이해력이 부족해서 그런지 모르지만 조금 이해하기 힘드네요.
다만 제 추측으로 날자 필드를 년으로 표현 월로 표현하고 싶다는 이야기인것 같은데...........
LS_FIELDCAT-EDIT_MASK를 쓰면 큰 문제없이 보여줄것 같구요.
LS_FIELDCAT-EDIT_MASK = '____'. 이렇게 하면 연도만 표현이 됩니다.
그러나 월로 표현은 힘들것 같네요. 무슨년도 무슨월인지 알아서 월의 가치가 있지 않을까 합니다.
LS_FIELDCAT-EDIT_MASK= '____:__' 이렇게 표현하는게 맞지 않을까 생각하네요.
월만 표현은 어렵네요.
필드값에 년 월 일값을 별도록 넣을수 있도록 하고 키값을 지정하는것이 또 하나의 방법일것 같군요..
-
e-abap
2007.04.13 18:24
1. 스크린에 custom contol을 2개 만들구요.
2. 그리드 2개를 만들어야 되고,
create object con1_ref
exporting container_name = 'CON1'.
con1과 관련된 소스와 유사하게 2번째 grid를 만들어주고,
create object con1_ref
exporting container_name = 'CON2'.
3. 인터널 테이블과 필드카타로그를 각각 구성해 주면 됩니다.
call method grid1->set_table_for_first_display
* EXPORTING
* i_structure_name = 'ZTKKS01'
changing
it_outtab = itab_br
it_fieldcatalog = gt_fieldcat.
이해가 어렵겠네요~
-
bd
2007.04.13 18:26
매번 감사 드림니다. e-abap 선배님들 ^^ 먼가 실마리를 잡은듯한 이느낌 @@
-
lanos
2007.04.15 07:27
감사합니다.
설명하신 내용이 좀 이해하기 좀 어렵습니다.
alv 2 개를 사용하는 문제는 grid 두개를 선언하여 사용하거나.
DOCKING 을 이용한 ALV 붙이기 를 진행하면 되지 않을까 생각됩니다.
개인적으로 데이타가 단순하다면 하나는 화면필드를 이용하고 하나는 ALV 이용하는 것이 낳을것 같습니다.