ecc6 測試ok!
report zalv_edit.
type-pools: slis.
*- fieldcatalog
data: it_fieldcat type lvc_t_fcat.
data: x_fieldcat type lvc_s_fcat.
data: x_layout type lvc_s_layo.
data: ls_edit type lvc_s_styl,
lt_edit type lvc_t_styl,
gr_alvgrid type ref to cl_gui_alv_grid .
data: begin of it_vbap occurs 0,
vbeln like vbap-vbeln,
posnr like vbap-posnr,
style type lvc_t_styl, "for disable
end of it_vbap.
data: ls_outtab like line of it_vbap.
select vbeln posnr
up to 100 rows
into corresponding fields of table it_vbap
from vbap.
data:l_pos type i value 1.
clear: l_pos.
l_pos = l_pos + 1.
x_fieldcat-seltext = 'vbeln'.
x_fieldcat-fieldname = 'vbeln'.
x_fieldcat-tabname = 'itab'.
x_fieldcat-col_pos = l_pos.
x_fieldcat-edit = 'x'.
x_fieldcat-outputlen = '10'.
x_fieldcat-ref_field = 'vbeln'.
x_fieldcat-ref_table = 'vbak'.
clear x_fieldcat.
l_pos = l_pos + 1.
x_fieldcat-seltext = 'posnr'.
x_fieldcat-fieldname = 'posnr'.
x_fieldcat-tabname = 'itab'.
x_fieldcat-col_pos = l_pos.
x_fieldcat-edit = 'x'.
x_fieldcat-outputlen = '5'.
clear x_fieldcat.
l_pos = l_pos + 1.
"第3步:設定第六行兩個單元都不能輸入
sy-tabix = 6.
ls_edit-fieldname = 'vbeln'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
ls_edit-style2 = space.
ls_edit-style3 = space.
ls_edit-style4 = space.
ls_edit-maxlen = 10.
insert ls_edit into table lt_edit.
ls_edit-fieldname = 'posnr'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
ls_edit-style2 = space.
ls_edit-style3 = space.
ls_edit-style4 = space.
ls_edit-maxlen = 6.
insert ls_edit into table lt_edit.
insert lines of lt_edit into table ls_outtab-style.
"第4步:將控制資料寫到內錶
modify it_vbap index sy-tabix from ls_outtab transporting style .
"設定第10行只有專案不能輸入
clear ls_outtab.
refresh lt_edit.
ls_edit-fieldname = 'posnr'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
ls_edit-style2 = space.
ls_edit-style3 = space.
ls_edit-style4 = space.
ls_edit-maxlen = 6.
insert ls_edit into table lt_edit.
insert lines of lt_edit into table ls_outtab-style.
sy-tabix = 10.
"將控制資料寫到內錶
modify it_vbap index sy-tabix from ls_outtab transporting style .
"第5步:設定控制字段
x_layout-stylefname = 'style'.
call function 'reuse_alv_grid_display_lvc'
exporting
i_callback_program = sy-repid
is_layout_lvc = x_layout
it_fieldcat_lvc = it_fieldcat
tables
t_outtab = it_vbap
exceptions
program_error = 1
others = 2.
if sy-subrc ne 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
可編輯單元格ALV
在使用alv顯示列表的過程中,我們可以使用it fieldcat引數設定某乙個欄位的可編輯狀態。但是,要設定具體的單元格的可編輯狀態對於對alv不是很了解的人來說是乙個頭大的問題。具體單元格可編輯狀態設定的主要思想 首先通過eidt引數設定列為可編輯狀態 其次對輸出內錶進行迴圈將不需要編輯的行設定為...
設定ALV單元格可編輯狀態
在使用alv顯示列表的過程中,我們可以使用it fieldcat引數設定某乙個欄位的可編輯狀態。但是,要設定具體的單元格的可編輯狀態對於對alv不是很了解的人來說是乙個頭大的問題。具體單元格可編輯狀態設定的主要思想 首先通過eidt引數設定列為可編輯狀態 其次對輸出內錶進行迴圈將不需要編輯的行設定為...
可編輯單元格的CListCtrl控制項
clistctrl 控制項生成之後,無論你單擊還是雙擊它的單元格,都沒有任何反應,如果我們需要像excel那樣雙擊乙個單元格後即可編輯該單元格的內容,那怎麼辦呢?乙個 方法就是雙擊單元格之後,在該單元格的地方生成乙個編輯框,然後讓輸入焦點落在該編輯框上,我們即可對該編輯框進行文字編輯,當輸入焦點從編...