2013-07-02 61 views
0

專家。我是Web Dynpro的初學者。web dynpro alv某些單元格的複選框列將可編輯,部分不可編輯取決於某些條件

我有ALV表。問題是我希望複選框列的某些單元格可以編輯,某些單元格將根據某些屬性不可編輯。

我讓下一個步驟,以達到所要求的結果是:

1)添加屬性READONLY(爲相應的節點(屬性CHECK型WDY-BOOLEAN已經添加型WDY-BOOLEAN))。

2)然後在我的代碼中檢查我的表中的行的一些條件,並分配屬性READONLY值abap_true或abap_false。

3)然後我就按照節點綁定表(表充滿絕對正確的(我CONTROLE它在調試器))

4)配置我的ALV:

" create an instance of ALV component 

    " get reference to the ALV model 


    DATA: 

    lo_table_settings TYPE REF TO if_salv_wd_table_settings, 
    lo_column_settings TYPE REF TO if_salv_wd_column_settings, 
    lo_column TYPE REF TO cl_salv_wd_column. 

    lo_column_settings ?= lv_value. 
    lo_table_settings ?= lv_value. 

    lo_column = lv_value->if_salv_wd_column_settings~get_column('CHECK'). 



    DATA lr_checkbox TYPE REF TO cl_salv_wd_uie_checkbox. 

" create checkbox 

    CREATE OBJECT lr_checkbox 
    EXPORTING 
    checked_fieldname = 'CHECK'. 


    " make our table is editable 

    lo_table_settings->set_read_only(abap_false). 



lo_column = lo_column_settings->get_column('CHECK'). 

**Creating UI Elmenent 'INPUT FIELD' to make the column editable 

DATA: lr_input_field TYPE REF TO cl_salv_wd_uie_input_field. 
CREATE OBJECT lr_input_field EXPORTING value_fieldname = 'CHECK'. 


    lr_checkbox->set_read_only_fieldname(value = 'READONLY'). 
    lv_value->if_salv_wd_column_settings~delete_column(ID = 'READONLY'). 

但它不工作。 checbox列的所有單元格都是可編輯的,我沒有得到checbox列的非可編輯單元格(儘管根據我的字段'READONLY',我必須看到一些單元格可編輯,有些不可編輯)。

回答

0

爲了使現場一個編輯或只讀,只是「使用現場的值給A的只讀屬性」的問題。

所以,據我所知,你有一列是複選框,並且希望某些行可編輯,和其他人是隻讀的。

要做到這一點,你就不會需要創建輸入字段,你需要做的唯一的事情就是讓複選框列引用,並設置其只讀屬性綁定到該領域中的數據結構。

如果仍然不能正常工作,請檢查您的數據,每條記錄的只讀字段的值是否是「」,如果是,那麼當然,在檢查的每一個細胞都可以編輯。

相關問題