REUSE_ALV_GRID_DISPLAY 펑션을 이용해서 맨위 두줄을 헤더로 쓰려고합니다.
헌데 그리드 방식은 안된다고들 하시는듯한데 정말 방법이 없습니까?
댓글 8
-
無念군
2009.01.29 02:38
-
아카드05
2009.01.29 03:10
제가 알기로는 REUSE_ALV_GRID_DISPLAY 펑션을 사용하려면 헤더는 한 줄만 지원 되는 것으로 알고 있습니다.
저희쪽 ALV 프로그램 중에 헤더가 두 줄로 표현된 프로그램을 들여다보니,
SALV를 사용해서 코딩되있구요,
DISPLAY SETTING 할 때 COLUMN SETTING에서
cl_salv_column_table 메서드의 set_row 파라메터(Set Row for Multirow Display)에 1, 2 값을 던져주는 방법을 쓰고 있습니다 .
ALV 초보다보니 용어가 익숙치 않네요..^^; 양해해주시구요, 참고하세요^^
남이 짜놓은 ALV 프로그램들 운영하게되서 생전첨보는 ALV강의 들으며 겨우 따라갔는데,
알고보니 강의에도 없던 SALV 천지라서 초난감입니다 ㅎㅎ;
빨리 익숙해져야할텐데...ㅜㅜ
-------------------------------------------------------------------------------------
FORM set_columns USING p_alv TYPE REF TO cl_salv_table.
DATA : lrf_columns TYPE REF TO cl_salv_columns_table.
lrf_columns = p_alv->get_columns( ).
IF g_dbclick = c__.
PERFORM set_fieldcatalog USING lrf_columns :
* field visible key color row col len just text quantity currency
c_kondm c__ c_x c__ '1' '01' '10' c_jm text-a01 c__ c__,
c_kondm2 c__ c_x c__ '2' '01' '10' c_jm c__ c__ c__.
ELSEIF g_dbclick = c_x.
PERFORM set_fieldcatalog USING lrf_columns :
* field visible key color row col len just text quantity currency
c_matnr-1 c__ c_x c__ '1' '01' '18' c_jm text-a14 c__ c__,
c_matnr2 c__ c_x c__ '2' '01' '18' c_jm c__ c__ c__.
ENDIF.
PERFORM set_fieldcatalog USING lrf_columns :
* field visible key color row col len just text quantity currency
c_title1 c__ c__ c__ '1' '02' '14' c_jm text-a02 c__ c__,
c_vrkme c__ c__ c__ '1' '03' '04' c_jm text-a15 c__ c__,
c_bodrct01 c__ c__ c__ '1' '04' '19' c_jr-1 text-a03 c_vrkme c__,
c_bodrct07 c__ c__ c__ '1' '05' '12' c_jl c__ c_vrkme c__,
c_bodrct04 c__ c__ c__ '1' '06' '19' c_jr-1 text-a04 c_vrkme c__,
c_bodrct08 c__ c__ c__ '1' '07' '12' c_jl c__ c_vrkme c__,
c_rate01 c__ c__ c__ '1' '08' '20' c_jl text-a05 c__ c__,
c_rate04 c__ c__ c__ '1' '09' '08' c_jl c__ c__ c__,
c_bodrctg c__ c__ c__ '1' '10' '19' c_jl text-a06 c_vrkme c__,
c_rateg1 c__ c__ c__ '1' '11' '08' c_jl c__ c__ c__,
c_bodrctu c__ c__ c__ '1' '12' '19' c_jl text-a07 c_vrkme c__,
c_rateu1 c__ c__ c__ '1' '13' '08' c_jl c__ c__ c__,
*
c_title2 c__ c__ c__ '2' '02' '14' c_jm c__ c__ c__,
c_konwa c__ c__ c__ '2' '03' '04' c_jm c__ c__ c__,
c_aodrct01 c__ c__ c__ '2' '04' '19' c_jr-1 text-a08 c__ c_konwa,
c_aodrct07 c__ c__ c__ '2' '05' '12' c_jr-1 text-a12 c__ c_konwa,
c_aodrct04 c__ c__ c__ '2' '06' '19' c_jr-1 text-a13 c__ c_konwa,
c_aodrct08 c__ c__ c__ '2' '07' '12' c_jr-1 text-a12 c__ c_konwa,
c_rate05 c__ c__ c__ '2' '08' '20' c_jr-1 text-a13 c__ c__,
c_rate08 c__ c__ c__ '2' '09' '08' c_jr-1 text-a12 c__ c__,
c_aodrctg c__ c__ c__ '2' '10' '19' c_jr-1 text-a04 c__ c_konwa,
c_rateg2 c__ c__ c__ '2' '11' '08' c_jr-1 text-a16 c__ c__,
c_aodrctu c__ c__ c__ '2' '12' '19' c_jr-1 text-a04 c__ c_konwa,
c_rateu2 c__ c__ c__ '2' '13' '08' c_jr-1 text-a16 c__ c__.
ENDFORM. " set_columns
-------------------------------------------------------------------------------------
FORM set_fieldcatalog USING prf_columns
TYPE REF TO cl_salv_columns_table
p_fieldname TYPE lvc_fname
p_visible
p_key
p_color
p_row
p_col
p_len
p_just
p_text
p_qfield
p_cfield.
DATA : lrf_column TYPE REF TO cl_salv_column_table.
DATA : l_short TYPE scrtext_s,
l_medium TYPE scrtext_m,
l_long TYPE scrtext_l.
DATA : ls_color TYPE lvc_s_colo.
l_short = l_medium = l_long = p_text.
TRY.
prf_columns->set_column_position(
columnname = p_fieldname
position = p_col ).
TRY.
prf_columns->set_color_column( c_color ).
CATCH cx_salv_data_error. "#EC NO_HANDLER
ENDTRY.
lrf_column ?= prf_columns->get_column( p_fieldname ).
lrf_column->set_long_text( l_long ).
lrf_column->set_medium_text( l_medium ).
lrf_column->set_short_text( l_short ).
lrf_column->set_row( p_row ).
lrf_column->set_output_length( p_len ).
lrf_column->set_alignment( p_just ).
IF p_visible = c_x.
lrf_column->set_visible( if_salv_c_bool_sap=>false ).
ENDIF.
IF p_key = c_x.
lrf_column->set_key( abap_true ).
ENDIF.
IF p_qfield IS NOT INITIAL.
lrf_column->set_quantity_column( p_qfield ).
ENDIF.
IF p_cfield IS NOT INITIAL.
lrf_column->set_currency_column( p_cfield ).
ENDIF.
IF p_color = c_x.
* ls_color-col = col_negative.
* ls_color-int = 0.
* ls_color-inv = 0.
* lrf_column->set_color( ls_color ).
ENDIF.
CATCH cx_salv_not_found. "#EC NO_HANDLER
ENDTRY.
ENDFORM. " set_fieldcatalog
-------------------------------------------------------------------------------------
-
카츠
2009.01.29 04:37
아카드05님이 올려주신건 너무 어렵네요 ㅜㅜ..
헤더에 꼭 넣을필요없이 검색 조건인 select-options의 기간값을
표시만 해주면 되는데
검색해보니 top-of-page를 써서 할수있다고해서
일단 연습삼아
top-of-page.
write : / '연습'.
해봤는데 전혀 안나옵니다.
뭐가 잘못된걸까요?
-
아밥퍼
2009.01.29 17:11
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
위의 함수를 이용하면 됩니다.
위의 키워드를 치고 사용처 리스트를 클릭해보면
소스에서 사용한 예제를 볼 수 있을 것입니다.
-
지의
2009.01.29 17:30
SLIS 프로그램 중에 BCALV_GRID_01 를 보시면 컬럼과 버튼 사이에 Flights 라고 보이실 겁니다.
이거 만드셔서 Select-options 에 값을 넣어주면 되겠네요.
참고하세요.
-
카츠
2009.01.30 00:16
예제프로그램 뒤지던중 예상외로 간단히 해결했습니다.
data : g_grid_title TYPE lvc_title. 선언해주고
i_grid_title = g_grid_title만 펑션콜에 추가해주면 되더군요..
g_grid_title에는 변수값도 들어가고 text도 들어가지더군요.
해결할수있게 도와주신분들 정말 감사드리고 몇일 늦었지만 새해 복 많이들 받으세요 ^^
-
낭랑18세
2009.02.04 23:40
방법이 없습니다~ 그리드 데신에 list 를 사용하시면 됩니다^^ -
양키
2010.06.10 03:07
SLIS class를 다 뒤져밧지만 없는거 같아요. ^^
없는거로 알고 있습니다 +_+..
리스트로 출력 하시는걸 추천 드립니다..