TYPE-POOLS:slis。 " ALV声明 *数据声明 * ---------------- 类型:t_ekko的开始, ebeln TYPE ekpo-ebeln, ebelp TYPE ekpo-ebelp, Statu TYPE ekpo-statu, aedat TYPE ekpo-aedat, matnr TYPE ekpo-matnr, menge TYPE ekpo-menge, meins TYPE ekpo-meins , netpr类型ekpo-netpr, peinh类型,ekpo-peinh, field_style TYPE lvc_t_styl," FOR DISABLE t_ekko的结尾。
数据:it_ekko类型标准表t_ekko 初始大小0, wa_ekko类型t_ekko。
* ALV数据声明 数据:fieldcatalog类型slis_t_fieldcat_alv WITH HEADER LINE。 数据:it_fieldcat TYPE lvc_t_fcat," slis_t_HEADcat > wa_fieldcat TYPE lvc_s_fcat,
gd_tab_group TYPE slis_t_sp_group_alv, gd_layout TYPE lvc_s_layo," slis_layout_alv, gd_repid LIKE sy-repid。
*&------------------------------------- -------------------------------- * *&表单set_specific_field_attributes *&----- -------------------------------------------------- -------------- * *使用特定字段属性填充FIELD_STYLE表 * -------------------- -------------------------------------------------- * 形式为set_specific_field_attributes。 数据ls_stylerow TYPE lvc_s_styl。 数据lt_styletab TYPE lvc_t_styl。
*填充具有样式属性的样式变量(FIELD_STYLE) * * NETPR字段/column已在字段目录中设置为可编辑... *如果'NETPR' *大于10,以下代码将其设置为禁用(仅显示)。 LOOP AT it_ekko INTO wa_ekko 。 IF wa_ekko-netpr GT10。
嗨,
在ALV中编辑一行-
按钮上的可编辑按钮
在上述主题中查看我的回复
此致
Lekha。
创建动态节点时,请将其存储在组件控制器的全局变量中,然后在需要的地方使用此。ev。
编辑:Lekha 于2009年12月28日上午11:25
嗨,
这很简单,请遵循以下方法:
编写以下代码,以保留可编辑的字段:
希望这对您有所帮助。
Pooja
*&---------------------------------- ----------------------------------- *
*&报告ZDEMO_PROG1
> wa_fieldcat TYPE lvc_s_fcat,
# p#*&
*&--------------------------------- ------------------------------------ *
*&
*&
*&------------------------------------------------ --------------------- *
报告ZDEMO_PROG1。
表格:ekko。
TYPE-POOLS:slis。 " ALV声明
*数据声明
* ----------------
类型:t_ekko的开始,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
Statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins ,
netpr类型ekpo-netpr,
peinh类型,ekpo-peinh,
field_style TYPE lvc_t_styl," FOR DISABLE
t_ekko的结尾。
数据:it_ekko类型标准表t_ekko 初始大小0,
wa_ekko类型t_ekko。
* ALV数据声明
数据:fieldcatalog类型slis_t_fieldcat_alv WITH HEADER LINE。
数据:it_fieldcat TYPE lvc_t_fcat," slis_t_HEADcat
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE lvc_s_layo," slis_layout_alv,
gd_repid LIKE sy-repid。
****** ****************************************************** ***************
*开始选择。
开始选择。
PERFORM data_retrieval。
P ERFORM set_specific_field_attributes。
PERFORM build_fieldcatalog。
PERFORM build_layout。
PERFORM display_alv_report。
*&------------------ -------------------------------------------------- -*
*&表格BUILD_FIELDCATALOG
*&------------------------------------ --------------------------------- *
*为ALV报告建立Fieldcatalog
* --- -------------------------------------------------- ----------------- *
FORM build_fieldcatalog。
wa_fieldcat-fieldname ='EBELN'。
wa_fieldcat-scrtext_m ='购买订单'。
wa_fieldcat-col_pos =0。
wa_fieldcat-outputlen =10。
wa_fieldcat-emphasize ='X'。
wa_fieldcat-key ='X'。
将wa_fieldcat附加到it_fieldcat。 >清除wa_fieldcat。
wa_fieldcat-fieldname ='EBELP'。
wa_fieldcat-scrtext_m ='PO项目'。
wa_fieldcat-col_pos =1。
将wa_fieldcat附加到it_fieldcat。
CLEAR wa_fieldcat。
wa_fieldcat-fieldname ='STATU'。
wa_fieldcat-scrtext_m ='Status'。
wa_f ieldcat-col_pos =2。
附加wa_fieldcat到it_fieldcat。
清除wa_fieldcat。
wa_fieldcat-fieldname ='AEDAT'。
wa_fieldcat-scrtext_m ='项目更改日期'。
wa_fieldcat-col_pos =3。
在wa_fieldcat追加到it_fieldcat。
清除wa_fieldcat。
wa_fieldcat-fieldname ='MATNR'。
wa_fieldcat-scrtext_m ='材料编号'。
wa_fieldcat -col_pos =4。
追加wa_fieldcat到it_fieldcat。
清除wa_fieldcat。
wa_fieldcat-fieldname ='MENGE'。
wa_fieldcat-scrtext_m ='PO数量'。
wa_fieldcat- col_pos =5。
追加wa_fieldcat到it_fieldcat。
清除wa_fieldcat。
wa_fieldcat-fieldname ='MEINS'。
wa_fieldcat-scrtext_m ='订购单位'。
wa_fieldcat-col_pos =6。
追加wa_fieldcat到it_fieldcat。
清除wa_fieldcat。
wa_fieldcat-fieldname ='NETPR'。
wa_fieldcat-scrtext_m ='净价'。
wa_fieldcat-edit = 'X'。 "将整个列设置为可编辑
wa_fieldcat-col_pos =7。
wa_fieldcat-outputlen =15。
wa_fieldcat-datatype ='CURR'。
将wa_fieldcat附加到it_fieldcat。
清除wa_fieldcat。
wa_fieldcat-fieldname ='PEINH'。
wa_fieldcat-scrtext_m ='价格单位'。
wa_fieldcat-col_pos =8。
追加wa_fieldcat到它_fieldcat。
清除wa_fieldcat。< br> ENDFORM。" BUILD_FIELDCATALOG
*&--------------------------------- ------------------------------------ *
*&表格BUILD_LAYOUT
*&- -------------------------------------------------- ------------------ *
* ALV网格报表的构建布局
* ----------------- -------------------------------------------------- --- *
FORM build_layout。
*设置字段属性(即输入/输出)的布局字段
gd_layout-stylefname ='FIELD_STYLE'。
gd_layout-zebra ='X'。
> ENDFORM。 " BUILD_LAYOUT
*&------------------------------------- -------------------------------- *
*&表格DISPLAY_ALV_REPORT
*&----- -------------------------------------------------- -------------- *
*使用ALV网格显示报告
* ---------------------- ------------------------------------------------ * < br> FORM display_alv_report。
gd_repid = sy-repid。
*调用函数'REUSE_ALV_GRID_DISPLAY'
调用功能'REUSE_ALV_GRID_DISPLAY_LVC'
导出
i_callback_program = gd_repid USER_COMMAND'
is_layout_lvc = gd_layout
it_fieldcat_lvc = it_fieldcat
i_save ='X'
表格
t_outtab = it_ekko
例外情况
program_error = 1
其他= 2. < br> IF sy-subrc <> 0.
*消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
*带SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
ENDIF。
ENDFORM。" DISPLAY_ALV_REPORT
*&-------------------------------- ------------------------------------- *
*& 表格DATA_RETRIEVAL
*&------------------------------------------- -------------------------- *
*从EKPO表中检索数据并填充itab it_ekko
* ------ -------------------------------------------------- -------------- *
FORM数据检索。
SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
最多10个行
从ekpo
入 表it_ekko的对应字段。
ENDFORM。 " DATA_RETRIEVAL
*&------------------------------------- -------------------------------- *
*&表单set_specific_field_attributes
*&----- -------------------------------------------------- -------------- *
*使用特定字段属性填充FIELD_STYLE表
* -------------------- -------------------------------------------------- *
形式为set_specific_field_attributes。
数据ls_stylerow TYPE lvc_s_styl。
数据lt_styletab TYPE lvc_t_styl。
*填充具有样式属性的样式变量(FIELD_STYLE)
*
* NETPR字段/column已在字段目录中设置为可编辑...
*如果'NETPR'
*大于10,以下代码将其设置为禁用(仅显示)。
LOOP AT it_ekko INTO wa_ekko 。
IF wa_ekko-netpr GT10。
ls_stylerow-fieldname ='EBELN'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED。
将ls_stylerow插入表wa_ekko-field_style中。 。
从wa_ekko修改it_ekko。
ls_styler ow-fieldname ='EBELP'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED。
将ls_stylerow插入表wa_ekko-field_style。
从wa_ekko修改it_ekko。
ls_stylerow-field ='U'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED。
将ls_stylerow插入表wa_ekko-field_style。
从wa_ekko修改it_ekko。 => MC_STYLE_ENABLED。
将ls_stylerow插入表wa_ekko-field_style。
从wa_ekko修改it_ekko。
ls_stylerow-fieldname ='MATNR'。
ls_stylerow-style = cl_gui_alv_grid => ERT_MC_STYLE_ENABLED 将ls_stylerow插入表wa_ekko-field_style中。
从wa_ekko中修改it_ekko。
ls_stylerow-fieldname ='MENGE'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED。
将ls_style <插入到表中。 br>从wa_ekko修改it_ekko。
ls_stylerow-fieldname ='MEINS'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLE D.
将ls_stylerow插入表wa_ekko-field_style中。
从wa_ekko修改it_ekko。
ls_stylerow-fieldname ='NETPR'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED到
INSERT中。 表wa_ekko-field_style。
从wa_ekko修改it_ekko。
ls_stylerow-fieldname ='PEINH'。
ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED。
将ls_stylerow插入表wa_ekrow中。 从wa_ekko修改it_ekko。
* ls_stylerow-style = cl_gui_alv_grid => MC_STYLE_ENABLED。
"将字段设置为Disabled
* APPEND现在已被INSERT命令替换,因为它会出错< br> *如果未按正确的顺序添加条目
**将ls_stylerow插入wa_ekko-field_style。
*将ls_stylerow插入表wa_ekko-field_style。
*从wa_ekko中修改it_ekko。
ENDIF。< br> ENDLOOP。
最终形式。 " set_specific_field_attributes
* -------------------------------------- -------------------- *
* FORM USER_COMMAND *
* ------------------ ---------------------------------------- *
*-> R_UCOMM *
*-> RS_SELFIELD *
* ------------------------------------- --------------------- *
FORM用户命令使用r_ucomm像sy-ucomm
rs_selfield TYPE slis_selfield。
**任何更改 您在屏幕上输入的内容现在将存储在
** **构造ALV的原始内部表(it_ekko)
*检查功能代码
CASE r_ucomm。
当'&DATA_SAVE '。"甚至是您想要的事件
在it_ekko循环到wa_ekko。
*处理表的每一行,包括新值
ENDLOOP。
ENDCASE。
ENDFORM。
一周热门 更多>