2017-09-25 172 views
2

我正在使用類cl_gui_alv_grid創建ALV輸出網格。一個輸出表的列的通過使用fieldcatalog的相應記錄定義爲一個複選框:將ALV輸出網格中的複選框標記爲選中

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

enter image description here

對於包含複選框的列的所有記錄,它們都設置未選中。我的問題是我可以實現什麼邏輯,以便對於某些行,當顯示ALV時將複選框設置爲選中狀態。

回答

4

如果您希望根據alv網格中最初顯示的數據設置複選框,只需在條件匹配的情況下使用abap_true(='X')填充outtab複選框字段。如果你想而不是使用fieldcatalog的複選框參數,你會看到'X'選中,''未選中。

如果你想根據用戶輸入設置的複選框,之後便編輯了ALV網格的某些字段,請使用以下ALV網格事件來改變outtab:

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,現在可以。謝謝 –

相關問題