2017-09-25 14 views
2

등급 cl_gui_alv_grid을 사용하여 ALV 출력 그리드를 생성합니다. 그들은 모두 설정되어 체크 박스를 포함하는 컬럼의 모든 레코드선택한대로 ALV 출력 그리드의 확인란을 선택하십시오

ls_fcat-checkbox = 'X'. 
ls_fcat-edit = 'X'. 

enter image description here

: 출력 테이블의 열 중 하나는 fieldcatalog의 해당 레코드를 사용하여 체크 박스로서 정의된다 선택되지 않은 내 질문은 ALV를 표시 할 때 일부 행의 경우 확인란을 선택으로 설정하기 위해 구현할 수있는 논리입니다.

답변

4

처음 표시되는 데이터에 따라 alv 표에 설정하려면 조건이 일치하면 outtab 체크 박스 필드에 abap_true (= 'X')를 채우십시오. 이 아닌 경우 fieldcatalog의 checkbox 매개 변수를 사용하면 체크 표시가 'X'로 표시되고 체크 표시되지는 않습니다.

당신이 그들이 ALV 그리드의 일부 필드를 편집 한 후, 사용자의 입력에 따라 체크 박스를 설정하려면, outtab 변경할 ALV 그리드 이벤트를 다음을 사용 : 나는 또한 내가 만든 몇 가지 의견을 발견

METHODS: 
     handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid 
     IMPORTING er_data_changed, 

     handle_data_changed_finished FOR EVENT data_changed_finished OF cl_gui_alv_grid, "executed only if no errors, outtab holds changed data 

이 이벤트를 처리해야 할 때

*&---------------------------------------------------------------------* 
*&  Method handle_data_changed 
*&---------------------------------------------------------------------* 
*  raised when at least one cell is modified in the ALV 
*  - modified entries are not stored in gt_outtab yet, but er_data_changed object 
*  - mt_good_cells holds every changed field thats valid according to type declaration 
*----------------------------------------------------------------------* 
*&---------------------------------------------------------------------* 
*&  Method handle_data_changed_finished 
*&---------------------------------------------------------------------* 
*  - raised when data validation is valid 
*  - NOW outtab holds valid changed data 
*----------------------------------------------------------------------* 
+0

예, ALV가 표시된 첫 번째 순간을 확인하여 표시하고 싶습니다. 나는 outtab를 채웠다. 그리고 그것은 지금 ok이다. 고맙습니다 –