ALV F4帮助, 选值保存到ALV。

TYPE-POOLS:slis.

CLASS lcl_event_receiver DEFINITION DEFERRED.
DATA: gt_fcat TYPE lvc_t_fcat,
gs_fcat TYPE lvc_s_fcat,
gt_f4 TYPE lvc_t_f4,
gs_f4 TYPE lvc_s_f4,
gs_event TYPE slis_alv_event,
gt_event TYPE slis_t_event,
gs_layout TYPE lvc_s_layo,
gs_glay TYPE lvc_s_glay. DATA: event_receiver TYPE REF TO lcl_event_receiver,
go_grid TYPE REF TO cl_gui_alv_grid. DATA: BEGIN OF gs_data ,
pernr TYPE persno,
nachn TYPE nachn,
gesch TYPE gesch,
END OF gs_data,
gt_data LIKE TABLE OF gs_data. DATA: BEGIN OF gs_f4value,
gesch TYPE gesch,
ztext TYPE text,
END OF gs_f4value,
gt_f4value LIKE TABLE OF gs_f4value. *————————————————————————————————————————*
* CLASS LCL_EVENT_RECEIVER DEFINITION
*———————————————————————————————————————-*
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_f4 FOR EVENT onf4 OF cl_gui_alv_grid
IMPORTING e_fieldname
e_fieldvalue
es_row_no
er_event_data
et_bad_cells
e_display.
ENDCLASS.
*———————————————————————————————————————-*
* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*———————————————————————————————————————-*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_f4.
PERFORM f_f4_help USING e_fieldname
es_row_no.
er_event_data->m_event_handled = 'x' .
PERFORM refresh_table_alv.
ENDMETHOD.
ENDCLASS. START-OF-SELECTION.
PERFORM f_get_data.
PERFORM f_show_data. FORM f_get_data .
SELECT pernr nachn FROM pa0002 INTO CORRESPONDING FIELDS OF TABLE gt_data
WHERE begda LE sy-datum AND endda GE sy-datum.
CLEAR gs_f4value.
gs_f4value-gesch = .
gs_f4value-ztext = '男'.
APPEND gs_f4value TO gt_f4value.
CLEAR gs_f4value.
gs_f4value-gesch = .
gs_f4value-ztext = '女'.
APPEND gs_f4value TO gt_f4value.
ENDFORM. FORM f_show_data .
DEFINE %%fcat.
CLEAR gs_fcat.
gs_fcat-fieldname = &.
gs_fcat-scrtext_l = &.
IF & = 'GESCH'.
gs_fcat-edit = 'X'.
gs_fcat-f4availabl = 'X'.
ENDIF.
APPEND gs_fcat TO gt_fcat.
END-OF-DEFINITION.
%%fcat: 'PERNR' '人员编号',
'NACHN' '姓名',
'GESCH' '性别'.
gs_event-name = 'CALLER_EXIT'.
gs_event-form = 'F_CALLER_EXIT'.
APPEND gs_event TO gt_event.
gs_glay-edt_cll_cb = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-cprog
i_callback_pf_status_set = 'PF_STATUS_SET'
it_fieldcat_lvc = gt_fcat
it_events = gt_event
i_grid_settings = gs_glay
TABLES
t_outtab = gt_data.
ENDFORM. FORM f_caller_exit USING e_grid TYPE slis_data_caller_exit.
gs_f4-fieldname = 'GESCH'.
gs_f4-register = 'X'.
* gs_f4-getbefore = 'X'.
* gs_f4-chngeafter = 'X'.
INSERT gs_f4 INTO TABLE gt_f4.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = go_grid.
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_f4 FOR go_grid.
CALL METHOD go_grid->register_f4_for_fields
EXPORTING
it_f4 = gt_f4[].
ENDFORM. FORM f_f4_help USING e_fieldname TYPE lvc_fname es_row_no TYPE lvc_s_roid.
DATA: lt_ddshretval TYPE STANDARD TABLE OF ddshretval,
ls_ddshretval TYPE ddshretval. CHECK e_fieldname = 'GESCH'.
REFRESH lt_ddshretval. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'GESCH' "
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'GESCH'
value_org = 'S'
callback_program = sy-repid
TABLES
value_tab = gt_f4value
return_tab = lt_ddshretval
EXCEPTIONS
parameter_error =
no_values_found =
OTHERS = . IF sy-subrc = AND lt_ddshretval IS NOT INITIAL .
CLEAR ls_ddshretval.
READ TABLE lt_ddshretval INTO ls_ddshretval INDEX .
IF ls_ddshretval-fieldval IS NOT INITIAL.
CLEAR gs_data.
READ TABLE gt_data INTO gs_data INDEX es_row_no-row_id.
gs_data-gesch = ls_ddshretval-fieldval.
MODIFY gt_data FROM gs_data INDEX es_row_no-row_id
TRANSPORTING gesch.
ENDIF.
ENDIF.
ENDFORM. FORM refresh_table_alv .
DATA: ls_stbl TYPE lvc_s_stbl.
ls_stbl-row = 'X'."
ls_stbl-col = 'X'.
CALL METHOD go_grid->refresh_table_display
EXPORTING
is_stable = ls_stbl.
ENDFORM. FORM pf_status_set USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS_ALV'.
ENDFORM.

ABAP ALV F4帮助的更多相关文章

  1. 【ABAP系列】SAP ABAP ALV里日期类型的F4帮助

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP ALV里日期类 ...

  2. 【ABAP系列】SAP ABAP ALV合计或者小计 添加自定义文本

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV合计或者小计 ...

  3. 【ABAP系列】SAP ABAP ALV中设置CHECKBOX同时选中事件

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中设置CHE ...

  4. 【ABAP系列】SAP ABAP ALV设置背景图片

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP abap ALV设置背景图片 ...

  5. 【ABAP系列】SAP ABAP ALV中的TOP_OF_PAGE添加任意图标

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中的TOP_ ...

  6. ABAP ALV 颜色设置(行,列,单元格)

    BCALV_EDIT_03 http://blog.sina.com.cn/s/blog_a87b19300102who3.html 关于ALV表格颜色,这种需求在项目中会经常用到. 列颜色 列的颜色 ...

  7. ABAP ALV表头的实现

    ABAP实现ALV表头的DEMO: 效果: 源代码: *&------------------------------------------------------------------- ...

  8. ABAP ALV单个单元格状态编辑

    *&---------------------------------------------------------------------* *& Report  ZPPR0024 ...

  9. ABAP ALV DEMO示例源码

    关于ALV表格颜色,感觉这种需求在项目中用到的时候不是很多,但是前一段时间面试的时候,面试官问了我关于ALV单元格颜色的问题. 以前了解过一点,回答的不是很好,后来百度了一下,大概了解了一些,今天工作 ...

随机推荐

  1. POJ 2631 Roads in the North (求树的直径)

    Description Building and maintaining roads among communities in the far North is an expensive busine ...

  2. Java多线程入门Ⅱ

    线程的让步 线程让出自己占用的CPU资源 线程让出资源,不指定让给谁 线程让出资源,指定让给谁 方法1: public static void yield(); 线程实现交替打印 import jav ...

  3. idea 中使用 出现 svn: E155036

    在idea中使用svn  checkout时  svn出现如上错误. 原因本地的工作副本太旧.command line进入本地工作副本的根目录,执行svn upgrade后 重启idea就可以了.

  4. luogu4035 [JSOI2008]球形空间产生器

    如果单按照距离相等的话既是高次也没有半径,所以因为给了 \(n+1\) 组点就想到两两做差. 假如一组点是 \(\{a_i\}\) 一组是 \(\{b_i\}\),我们能轻易地得出 \[\sum_{i ...

  5. Git x SVN 当前工作流程

    git-svn 当前工作流程 @ixenos 2018-12-27 21:37:47 前言:用惯了git,再用svn简直反人类,所以……还是用git-svn过渡一下 (由于远程还没有dev,直接坑爹地 ...

  6. 【贪心+二分】codeforces D. Magazine Ad

    codeforces.com/contest/803/problem/D [题意] 给定一个字符串,字符串里可能有空格和连字符‘-’,空格和连字符的意义是一样的,都表示:能在那个位置把字符串分成两部分 ...

  7. spring security3.1升级到4.1问题(1)访问/j_spring_security_check 404

    升级完后,发现登录不进去,把post改成get好了,但是系统的提交表单功能都不能用了,也是解决了很长时间,最后找到了根本原因. spring sercurity 4.0 csrf保护是默认开启的,cs ...

  8. tree(poj 1741)

    题意:给一颗n个节点的树,每条边上有一个距离v(v<=1000).定义d(u,v)为u到v的最小距离.给定k值,求有多少点对(u,v)使u到v的距离小于等于k. /* 照着点分治模板敲了敲,有很 ...

  9. 最长链(codevs 1814)

    题目描述 Description 现给出一棵N个结点二叉树,问这棵二叉树中最长链的长度为多少,保证了1号结点为二叉树的根. 输入描述 Input Description 输入的第1行为包含了一个正整数 ...

  10. 2016 Multi-University Training Contest 2 solutions BY zimpha

    Acperience 展开式子, \(\left\| W-\alpha B \right\|^2=\displaystyle\alpha^2\sum_{i=1}^{n}b_i^2-2\alpha\su ...