ALV 动态弹出框 自动根据字段匹配输入的字段类型
DATA lt_mass_sel_columns TYPE lvc_t_col.
DATA lv_mark.
DATA lv_change_ok.
DATA lv_fieldname TYPE fieldname.
DATA: lt_sval TYPE STANDARD TABLE OF sval.
DATA:ls_sval TYPE sval.
DATA:lv_rsp .
"CLEAR gv_error.
DATA:lt_filter TYPE lvc_t_fidx.
获取 句柄以后获取字段的属性 只有可编辑的字段可以输入 。并且把过滤的字段取出 ,把输入的数据更新到需需要的字段
***选中行
gr_valid->get_selected_columns(
IMPORTING
et_index_columns = lt_mass_sel_columns[]
).
***字段属性
gr_valid->get_frontend_fieldcatalog(
IMPORTING
et_fieldcatalog = gt_fcat_mass[]
).
CALL METHOD gr_valid->get_filtered_entries
IMPORTING
et_filtered_entries = lt_filter.
IF lines( lt_mass_sel_columns ) > 1.
MESSAGE TEXT-e15 TYPE 'I'.
EXIT.
ELSE.
READ TABLE lt_mass_sel_columns INTO DATA(ls_sec_col) INDEX 1.
***动态弹出框
IF sy-subrc EQ 0.
READ TABLE gt_fcat_mass INTO DATA(ls_cat) WITH KEY fieldname = ls_sec_col-fieldname.
IF sy-subrc EQ 0 AND ls_cat-edit = 'X'.
ls_sval-tabname = 'ZMMT0018D'.
ls_sval-fieldname = ls_sec_col-fieldname.
APPEND ls_sval TO lt_sval.
ELSE.
MESSAGE TEXT-e16 TYPE 'I'.
EXIT.
ENDIF.
ENDIF.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
* NO_VALUE_CHECK = ' '
popup_title = '' "'Set Vonder'
* START_COLUMN = '5'
* START_ROW = '5'
IMPORTING
returncode = lv_rsp
TABLES
fields = lt_sval
* EXCEPTIONS
* ERROR_IN_FIELDS = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
IF lv_rsp IS INITIAL.
READ TABLE lt_sval INTO ls_sval INDEX 1.
IF sy-subrc EQ 0.
LOOP AT gt_itab ASSIGNING FIELD-SYMBOL(<FS_ITAB>) WHERE chk = 'X'.
READ TABLE lt_filter INTO DATA(ls_filter) with KEY table_line = sy-tabix..
if sy-subrc ne 0."非过滤的数据
ASSIGN COMPONENT ls_sec_col-fieldname OF STRUCTURE <FS_ITAB> TO FIELD-SYMBOL(<lv_value>).
<lv_value> = ls_sval-value.
endif.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术