2015-09-08 77 views
1

我正在使用CL_GUI_ALV_GRID類來顯示錶。我希望能夠編輯表格(添加新行和刪除所有行),但我不希望現有行是可編輯的。這意味着:ALV網格鎖定特定行

我有5條記錄要顯示,我希望能夠刪除並添加新記錄,但我不希望用戶編輯5個現有記錄(我希望他能夠刪除它們)。

這可能嗎?

回答

2

默認情況下,當您調用'LVC_FIELDCATALOG_MERGE'功能模塊爲CL_GUI_ALV_GRID生成字段目錄時,單元格不可編輯。

您必須設置該欄將被編輯設置的「編輯」屬性是這樣的:

... 
data: it_fieldcat type lvc_t_fcat, 
     wa_fieldcat like line of it_fieldcat. 

call function 'LVC_FIELDCATALOG_MERGE' 
    EXPORTING 
    i_structure_name = 'ZSTRUCT' 
    CHANGING 
    ct_fieldcat  = it_fieldcat. 

loop at it_fieldcat into wa_fieldcat. 
    wa_fieldcat-edit = 'X'. " ---->Here is set the editable column 
    modify it_fieldcat from wa_fieldcat. 
endloop. 

如果你不想被編輯的細胞不設置該屬性做。

但爲了更好的參考檢查程序'BCALV_EDIT_03'和'BCALV_EDIT_04'的完整示例。

希望它有幫助。

enter image description here

+0

我已經知道了,問題是我怎麼能「鎖定」現有行。例如,查看事務su01的角色選項卡。您無法編輯已經應用的角色。你可以刪除它們。 –

+0

@thefiloe那麼,你的問題不是很清楚,因爲事務'SU01'不使用CL_GUI_ALV_GRID'。另一方面,如果您檢查程序「SAPLSUU5」,特別是dynpro'103',那麼傳統的表格控制方案需要通過表格來管理數據。我還沒有做過這樣的解決方案,但這裏有一個鏈接可以幫助您http://help.sap.com/saphelp_470/helpdata/en/9f/dbac5e35c111d1829f0000e829fbfe/content.htm。如果你堅持CL_GUI_ALV_GRID,那麼編程'BCALV_EDIT_04'是你最好的選擇。希望能幫助到你。 –