안녕하세요. 제가 지금 클래스 alv를 구현중인데요
스크린에 레이아웃도 다 설정하고
프로그램도 짜놓은 상태인데요
실행을 하면 화면이 나오질 않아요..
이유가 뭔지 잘 몰라서 그런데요
IF g_custom_container7 IS INITIAL.
CREATE OBJECT g_custom_container7
EXPORTING
container_name = 'CC0513'.
ENDIF.
IF grid7 IS INITIAL.
* create ALV grid
CREATE OBJECT grid7
EXPORTING
i_parent = g_custom_container7.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_hotspot_click FOR grid7.
* SET HANDLER event_receiver->handle_double_click FOR grid5.
SET HANDLER event_receiver->handle_toolbar FOR grid7.
SET HANDLER event_receiver->handle_user_command FOR grid7.
ENDIF.
CLEAR st_layout.
st_layout-zebra = 'X'.
PERFORM fieldcat_init_0513.
PERFORM set_grid_toolbar_0513.
PERFORM select_varient_0513.
CALL METHOD grid7->set_table_for_first_display
EXPORTING
i_save = 'U' "G_VARIANT_SAVE
i_default = 'X'
is_variant = g_variant
is_layout = st_layout
it_toolbar_excluding = it_excl_func
CHANGING
it_outtab = st_itm[]
it_fieldcatalog = it_fieldcat_alv.
f_first_0513 = 'X'.
지금 위 소스처럼 제가 구현을 했구요.
pbo모듈에 모듈로 정의 해서 위와같은 프로그램을 정의 했는데요
이 외에도 뭔가를 정의 해야 하는건가요???
왜 화면이 안나오는건지 너무 궁금합니다.
초보인 저로써는 이해가 잘 안가네요... 자세한 답변좀 부탁드릴께요.
댓글 7
-
아밥 잭
2010.08.24 01:15
-
쭈니
2010.08.24 01:17
답변감사합니다.
지금 제가 구현하는 방법을 제대로 정의를 못해서 죄송합니다.
일단 main화면은 있습니다. 그리고 신규 버튼을 눌렀을때 다른 screen으로 alv화면을 보여드리고 그 screen에서 입력하고
저장을 누르게 되면 cbo테이블에 저장이 되도록 하려고 합니다.
화면은 main화면도 alv이구요. 그 alv화면을 그대로 가져오되 신규버튼에는 입력란이 생기도록 하는것이지요.
제가 얘기한것이 이해가 되시는지는 모르겠으나, 다른 방법이라던지 왜 화면이 안나오는건지 알고싶구요.
버튼 눌렀을때 이벤트가 발생하는 현상이기때문에 그것이 pbo가 맞는건지 pai가 맞는건지도 궁금합니다.
답변좀 부탁드립니다.
-
쭈니
2010.08.24 01:21
네 main화면은 화면번호가 0506인데
제가 불러보고자 하는 화면은 0513입니다.
그래서 case에서 신규 버튼 눌렀을때 call screen '0513'.이렇게 정의 하였구요
그렇다면 이것에 대한 문제는 없는건가요?
-
아밥 잭
2010.08.24 01:25
일단은 경우의 수는 제가 확실히 몰라서요,,,,
만일, 같은 데이터를 같은 화면에 버튼을 이용해서 생성,편집을 하실거면 화면이 하나만 있으면됩니다,.
그런데 내용이 틀리면 화면을 하나더 만들어서 PAI에서 버튼 클릭 시 다른 화면을 호출하는 방식을 사용해야합니다.
혹시 전자라면 개발클래스 : SLIS에서 BCALV_EDIT_01 ~ BCALV_EDIT_08 를 참조하세요.
참조 : 버튼을 눌렀을 때 어떤 동작을 하게 하는것은 PAI입니다. 하지만 ALV를 뜨우는것은 PBO에 정의해야합니다.
감사합니다.
-
쭈니
2010.08.24 01:35
답변 감사합니다~
확인 해본 결과 it_fieldcat_alv 이곳엔 데이타가 다 들어가는것을 확인할수있었습니다.
아밥 잭님 말씀처럼 버튼을 눌렀을때 동작하고 띄워주는 상황이기때문에 pai에서도 이벤트를 해야 할거 같네요
-
아리사냥
2010.08.24 18:01
너무 막연한 질문같네요..
몇가지 다시 확인하자면..
1) 버튼 눌렀을때 스크린을 정상적으로 불러오는지 확인하셔야 하고.
2) Call 하는 스크린 0513 번의 container 가 있는지 확인하시고..
그 container의 명이 'CC0513'이 맞는지 확인하시기 바랍니다.
3) field cat list 의 field 들도 확인을 하셔야 하구요.
참고로.. 위의 소스만으로도 해당 스크린의 PBO와 상관없이 화면에 출력은 되어야 합니다.
-
쭈니
2010.08.24 20:14
아리사냥님 감사합니다.
확인 결과 container 명이 잘못 지정이 되었더라구요
cc_0513으로 되어있었더라구요... 제 불찰이지요... ㅠ.ㅠ
지금은 정상적으로 잘 나오고 있어요.. 휴
다른 부분에서는 문제가 없었네요
음,,,,지금 로직에서 안나오는 이유는 좀 막연하네요.
일단은 fieldcatalog값이 들어가는 it_fieldcat_alv에 값이 들어오는지 봐야할것 같고요.
실행하면서 call screen '화면번호' 은 당연히 하셨겠지요.
제가 보기에는 이부분은 이상이 없는것 같은데요.
좀 더 정보가 필요합니다,
감사합니다.