화면이랑 에러화면 까지 첨부해요
이제 화면은 되는데 두번째 그림처럼 자꾸 에러화면이 같이 뜨네요 ㅠㅠㅠㅠ
도와주세요 ㅠ
며칠전에 질문 올렸던건데 또 안되서요 ㅠ
그때 답변주셔서 해결했었는데 첨부터 하니깐 안되네요 ㅠㅠㅠ제대로 된게 아니였었나봐요 ㅠ
다시 올려요 ㅠㅠ 뭐가 문제인지 전혀 모르겠네요
같이 메쏘드 만든 data_change는 타는데 f4메쏘드만 안탑니다
도와주십숑 ㅠ
==
***************************************************************
* LOCAL CLASSES: Definition
****************************************************************
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS : handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed,
handle_on_f4
FOR EVENT onf4 OF cl_gui_alv_grid
IMPORTING sender
e_fieldname
e_fieldvalue
es_row_no
er_event_data
et_bad_cells
e_display.
ENDCLASS. "(LCL_EVENT_RECEIVER DEFINITION)
****************************************************************
* LOCAL CLASSES: Implementation
****************************************************************
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_data_changed.
PERFORM data_changed USING er_data_changed.
ENDMETHOD. "handle_data_changed
METHOD handle_on_f4.
PERFORM on_f4 USING e_fieldname
es_row_no
er_event_data
et_bad_cells.
ENDMETHOD. "handle_on_f4
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
선언 다하구
==그때 이부분 추가 했었어요
fo
rm SETTING_EVENT_HANDLER .
CREATE OBJECT g_event_receiver.
SET HANDLER g_event_receiver->handle_data_changed FOR g_grid.
SET HANDLER g_event_receiver->handle_on_f4 FOR g_grid.
PERFORM grid_f4 CHANGING gt_f4.
CALL METHOD g_grid->register_f4_for_fields
EXPORTING
it_f4 = gt_f4.
CALL METHOD g_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD g_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
다하고
필드카테고리에두
WHEN 'DCLASS'.
ls_fcat-edit = 'X'.
ls_fcat-coltext = '대분류'.
ls_fcat-col_pos = 5.
ls_fcat-f4availabl = 'X'.
이거까지 다 했는데 뭐가 문제죠? ㅠㅠㅠㅠㅠ
메시지는 팝업창으로
No input help is available
이게 뜨는데 이 메시지는
어떤 함수의 f4_set에 들어있는거 같아요 ㅠㅠㅠ
도와주세요 ㅠ
댓글 6
-
hooa
2011.03.26 02:15
-
오렌지겅주님
2011.03.26 02:19
그 로직도 넣었어요 ㅠㅠ
-
아밥맨
2011.03.26 02:36
gt_f4 구성한 FORM
grid_f4 CHANGING gt_f4. 내용좀 보여주세요.
-
오렌지겅주님
2011.03.28 19:49
FORM f4_class CHANGING p_class.
DATA : BEGIN OF lt_f4 OCCURS 0,
dclass LIKE zbasis-dclass,
text1(12) TYPE c,
END OF lt_f4.
DATA : lt_ret LIKE TABLE OF ddshretval WITH HEADER LINE.
" OCCURS 0 WITH HEADER LINE.
MOVE : 'O' TO lt_f4-dclass,
'OA' TO lt_f4-text1.
APPEND lt_f4. CLEAR lt_f4.
MOVE : 'S' TO lt_f4-dclass,
'Server' TO lt_f4-text1.
APPEND lt_f4. CLEAR lt_f4.
MOVE : 'D' TO lt_f4-dclass,
'Disk' TO lt_f4-text1.
APPEND lt_f4. CLEAR lt_f4.
MOVE : 'N' TO lt_f4-dclass,
'Network' TO lt_f4-text1.
APPEND lt_f4. CLEAR lt_f4.
MOVE : 'W' TO lt_f4-dclass,
'Work station' TO lt_f4-text1.
APPEND lt_f4. CLEAR lt_f4.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'DCLASS'
window_title = 'DCLASS'
value_org = 'S'
TABLES
value_tab = lt_f4
return_tab = lt_ret
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
ELSE .
MOVE lt_ret-fieldval TO p_class.
ENDIF.
ENDFORM. " F4_CLASS
요기요ㅠ 근데 화면에서 f4는 뜨는데 자꾸 no value 그 메시지도 같이 뜨네요
메시지 캡쳐해서 올릴꼐요 ㅠㅠ 좀 봐주세요 ㅠ
-
아밥맨
2011.03.28 20:17
1. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' 이 펑션을 Fom F4_CLASS말고 아래 Fom ON_F4 에 넣어주세요.
FORM on_f4 USING p_fieldname TYPE lvc_fname
p_es_row_no TYPE lvc_s_roid
p_er_event_data TYPE REF TO cl_alv_event_data
p_et_bad_cells TYPE lvc_t_modi.
< 여기에 F4IF_INT_TABLE~ 호출>
ENDFORM.
2. 위에서 F4IF_INT_TABLE 호출 전에 p_er_event_data->m_event_handled = 'X'. 를 추가해주세요.
이는 스탠다드 F4를 타지 말라는 의미입니다.
No input help is available이라는 메시지가 나오는것은
sap 이 gt_outtab-dclass의 참조타입(top에서 정의한)에 정의된 파서블엔트리를 띄우려고 하는데
gt_outtab-dclass에 정의된 파서블엔트리가 없기때문에 뱉는 메시지입니다.
현재 F4를 오렌지겅주님이 임의로 만들고 있는것이기 때문에 위 스탠다드 F4기능은 필요없으니
p_er_event_data->m_event_handled = 'X' 로 위 F4기능을 죽여주는것입니다.
-
오렌지겅주님
2011.03.28 20:30
오 ~~ 2번의 문제였던거 같아요
에러 메시지 해결했습니다 !! 아밥맨님 감사드려요 !!
그리구 하나만 더 물어봐도 될까요?
1번에서 왜 위치를 변경해주라는 것인지 잘 모르겠습니다...
위치 변경 하는거랑 안하는거랑 어떤 차이인지좀 알려주세요 !!!!><
CALL METHOD g_grid->register_f4_for_fields 수행전에
gs_f4-fieldname = 'DCLASS'.
gs_f4-register = 'X'.
APPEND gs_f4 TO gt_f4.
로 f4 field 등록하시고
Form on_f4 using ~~~ 에 f4에 띄울 팝업 엔트리 로직넣으심 됩니다.