ALV GRID显示

2020-09-03 05:02发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 如果我在ALV中按下...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

如果我在ALV中按下ADD输入按钮,我希望所有字段都处于可编辑模式(请注意:在此之前,某些字段为不可编辑模式)我正在使用ALV重用网格显示方法。 您能提供这种方法的解决方案吗?

2条回答
路亽曱_Ryan
2020-09-03 05:40

找到以下示例代码。 在菜单画板上,在应用程序工具栏中创建"编辑"按钮。

报告ZALVDYNAMICEDIT。
类型库:SLIS。
数据:I_MARA MARA类型表,
W_MARA类型M​​ARA,
I_FIELDCAT类型SLIS_T_FIELDCAT_ALV,
W_FIELDCAT类型SLISV_FIELD。
选择开始。
执行GETDATA。
执行字段目录。
执行显示。
*&------------------ -------------------------------------------------- -*
*&表格GETDATA
*&------------------------------------ --------------------------------- *
*文字
* ------- -------------------------------------------------- ------------- *
*-> p1文本
* <-p2文本
* -------------- -------------------------------------------------- ------ *
FORM GETDATA。
选择*从MARA到表I_MARA最多10行。
ENDFORM。
*&------------ -------------------------------------------------- ------- *
*&表格FIELDCATALOG
*&------------------------------ --------------------------------------- *
*文字
*- -------------------------------------------------- ------ ------------- *
*-> p1文本
* <-p2文本
* -------------- -------------------------------------------------- ------ *
FORM FIELDCATALOG。
呼叫功能'REUSE_ALV_FIELDCATALOG_MERGE'
导出
* I_PROGRAM_NAME =
* I_INTERNAL_TABNAME =
I_STRUCTURE_NAME ='MARA'
* I_CLIENT_NEVER_DIS ='X'
* I_INCLNAME =
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = I_FIELDCAT
*例外情况
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
*其他= 3

IF SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。

ENDFORM。
*& -------------------------------------------------- ------------------- *
*&表格DISPLAY
*&------------------ -------------------------------------------------- -*
*文本
* --------------------------------------- ------------------------------- *
*-> p1文本
* <-p2文本
* ---------------------------------------------- ---------------- -------- *
表单显示。
调用功能'REUSE_ALV_GRID_DISPLAY'
导出
* I_INTERFACE_CHECK =''
* I_BYPASSING_BUFFER =''
* I_BUFFER_ACTIVE =' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET ='FORM_MENU'
I_CALLBACK_USER_COMMAND ='USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE ='
* I_CALLBACK_HTML_TOP_OF_LIST = br> * I_STRUCTURE_NAME =
* I_BACKGROUND_ID =''
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT
* IT_EXCLUDING =
* IT_SPECIAL br> * IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT ='X'
* I_SAVE =''
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HE br> * I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
*导入
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_OUT_A = B > *例外情况
* PROGRAM_ERROR = 1
*其他= 2

如果SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。
< br> ENDFORM。
使用RT_EXTAB类型SLIS_T_EXTAB的FORM FORM_MENU。
SET PF-STATUS'MENU'。
ENDFORM。
FORM USER_COMMAND使用R_UCOMM像SY-UCOMM
的RS_SELFIELD类型SLIS_SELFIELD。 >案例R_UCOMM。
当'&F3'时。
保留到屏幕0。
当'EDIT'时。
进行编辑。
结束。
ENDFORM。 -------------------------------------------------- ------------------ *
*&FEDIT表格
*&------------------- -------------------------------------------------- *
*文字
* ---------------------------------------- ------------------------------ *
*-> p1文本
* <-p2文本< br> * ----------------------------- ----------------------------------------- *
表格编辑。
将I_FIELDCAT插入W_FIELDCAT。
W_FIELDCAT-EDIT ='X'。
从W_FIELDCAT修改I_FIELDCAT。
清除W_FIELDCAT。
ENDLOOP。
进行显示。
ENDFORM。 p>

一周热门 更多>