日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【实用】ABAP ALV单元格修改信息提示

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【实用】ABAP ALV单元格修改信息提示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ABAP日常開發中經常會用到ALV OO(CL_GUI_ALV_GRID)進行清單顯示,其中對指定單元格進行操作也是日常必備技能,比如下圖中的需求,對指定單元格的“原因代碼”列進行修改,校驗值的有效性,給出如下所示的提示框,若校驗不通過,恢復原值。

類的定義與實現

CLASS?lcl_event_receiver?DEFINITION.
??PUBLIC?SECTION.
????METHODS?:?handle_data_changed
?????????????????FOR?EVENT?data_changed?OF?cl_gui_alv_grid
?????????????????IMPORTING?er_data_changed.
ENDCLASS.??

CLASS?lcl_event_receiver?IMPLEMENTATION.
??METHOD?handle_data_changed.
????PERFORM?data_changed??USING?er_data_changed.
??ENDMETHOD.????????????????????"handle_data_changed
ENDCLASS.??

校驗代碼

FORM?DATA_CHANGED??USING????P_ER_DATA_CHANGED
???????????????????TYPE?REF?TO?CL_ALV_CHANGED_DATA_PROTOCOL.
??DATA?:?LS_MODI????????TYPE?LVC_S_MODI.?
??DATA?:?L_MSSG?TYPE?CHAR100.? ??


*CELL?MODIFY
??LOOP?AT?P_ER_DATA_CHANGED->MT_GOOD_CELLS?INTO?LS_MODI.
????CASE?LS_MODI-FIELDNAME.


??????WHEN?'ZCAUSE'.
????????CLEAR?GT_LIST.
????????READ?TABLE?GT_LIST?INDEX?LS_MODI-ROW_ID.
????????IF?LS_MODI-VALUE?IS?NOT?INITIAL?.
??????????SELECT?SINGLE?*
????????????FROM?ZMM001
????????????WHERE?ZCAUSE?=?LS_MODI-VALUE.
??????????IF?SY-SUBRC?NE?0.
????????????CLEAR?L_MSSG.
????????????CONCATENATE?LS_MODI-VALUE??'原因代碼不存在.'??INTO?L_MSSG.
????????????PERFORM?WS_MSG?USING?'E'?L_MSSG?TEXT-001 .
????????????CALL?METHOD?P_ER_DATA_CHANGED->MODIFY_CELL
??????????????EXPORTING
????????????????I_ROW_ID????=?LS_MODI-ROW_ID
????????????????I_FIELDNAME?=?LS_MODI-FIELDNAME
????????????????I_VALUE?????=?GT_LIST-ZCAUSE.

????????????CONTINUE.
??????????ELSE.
????????????GT_LIST-ZCAUSE?=?LS_MODI-VALUE.
??????????ENDIF.
????????ELSE.
??????????CLEAR?L_MSSG.
??????????CONCATENATE?LS_MODI-VALUE '原因代碼不能為空.'??INTO?L_MSSG.
??????????PERFORM?WS_MSG?USING?'E'?L_MSSG?TEXT-002 .
??????????CALL?METHOD?P_ER_DATA_CHANGED->MODIFY_CELL
????????????EXPORTING
??????????????I_ROW_ID????=?LS_MODI-ROW_ID
??????????????I_FIELDNAME?=?LS_MODI-FIELDNAME
??????????????I_VALUE?????=?GT_LIST-ZCAUSE.

??????????CONTINUE.
????????ENDIF.

????ENDCASE.

????MODIFY?GT_LIST?INDEX?LS_MODI-ROW_ID.
??ENDLOOP.

*"Alv?Style
??PERFORM?MAKE_ALV_STYLE.

*Refresh.
??PERFORM?REFRESH_TABLE_DISPLAY?USING?G_GRID.

*Refresh
??CALL?METHOD?CL_GUI_CFW=>FLUSH.
ENDFORM.????????????????????"?data_changed

消息提示框

*&---------------------------------------------------------------------*
*&??????Form??WS_MSG
*&---------------------------------------------------------------------*
FORM?WS_MSG??USING??P_TYPE??P_TEXT??P_TITLE.
??CALL?FUNCTION?'WS_MSG'
????EXPORTING
??????MSG_TYPE?=?P_TYPE
??????TEXT?????=?P_TEXT
??????TITL?????=?P_TITLE.
ENDFORM.????????????????????"?WS_MSG

?

?

總結

以上是生活随笔為你收集整理的【实用】ABAP ALV单元格修改信息提示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。