*=====================================================================
*& Report ZPM_RP_01_TB
*=====================================================================
REPORT zpm_rp_01_tb.

======================================================================
* Tables
======================================================================
TABLES:zpm003.
======================================================================
* Constants
======================================================================

======================================================================
* Types
======================================================================
TYPE-POOLS : abap,slis,icon.
======================================================================
* Internal Tables/work areas
======================================================================
DATA:BEGIN OF gt_out OCCURS 0,
swerk LIKE zpm003-swerk, “工厂
name1 LIKE zpm003-name1, “工厂名称
zzfgs LIKE zpm003-zzfgs, “分公司
butxt LIKE zpm003-butxt, “分公司名称
bukrs LIKE zpm003-bukrs, “公司代码
butxt_d LIKE zpm003-butxt_d, “公司代码名称
sel(1) TYPE c,
END OF gt_out.
DATA: fieldcat TYPE lvc_t_fcat WITH HEADER LINE.
DATA:gt_excel LIKE TABLE OF alsmex_tabline,
gw_excel LIKE alsmex_tabline.
DATA:BEGIN OF gt_upload OCCURS 0,
swerk LIKE zpm003-swerk, “工厂
name1 LIKE zpm003-name1, “工厂名称
zzfgs LIKE zpm003-zzfgs, “分公司
butxt LIKE zpm003-butxt, “分公司名称
bukrs LIKE zpm003-bukrs, “公司代码
butxt_d LIKE zpm003-butxt_d, “公司代码名称
END OF gt_upload.
======================================================================
* Data declarations
======================================================================
DATA: wa_layout TYPE lvc_s_layo,
gt_events TYPE slis_t_event WITH HEADER LINE,
gs_event LIKE LINE OF gt_events.
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
DATA:gv_file TYPE rlgrap-filename.
DATA: ref_grid TYPE REF TO cl_gui_alv_grid.
———————————————————————-
* CLASS lcl_event_receiver DEFINITION
———————————————————————-
*
———————————————————————-
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS handle_modify
FOR EVENT data_changed_finished OF cl_gui_alv_grid
IMPORTING e_modified et_good_cells.

    METHODS:handle_f4FOR EVENT onf4 OF cl_gui_alv_gridIMPORTING e_fieldnamees_row_noer_event_dataet_bad_cells.

ENDCLASS. “LCL_EVENT_RECEIVER DEFINITION
———————————————————————-
* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
———————————————————————-
*
———————————————————————-
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_modify.
DATA stbl TYPE lvc_s_stbl.
DATA:WA_OUT LIKE gt_out.
LOOP AT gt_out INTO WA_OUT.
SELECT SINGLE NAME1
INTO wa_out-NAME1
FROM T001W
WHERE WERKS = WA_out-SWERK.
MODIFY gt_out FROM WA_OUT.
ENDLOOP.
* 稳定刷新
stbl-row = ‘X’.” 基于行的稳定刷新
stbl-col = ‘X’.” 基于列稳定刷新
CALL METHOD ref_grid->refresh_table_display
EXPORTING
is_stable = stbl.
ENDMETHOD. “HANDLE_MODIFY
———————————————————————————————
METHOD handle_f4.
* 窗口时间参数的自定义f4检索帮助
PERFORM f4_help_zsjcs USING e_fieldname
es_row_no.
* 设置后,alv稳定刷新
PERFORM refresh_table_alv.
ENDMETHOD. “HANDLE_F4

ENDCLASS. “LCL_EVENT_RECEIVER IMPLEMENTATION
DATA gt_event_receiver TYPE REF TO lcl_event_receiver .
—————————————————————
*DEFINATION
—————————————————————
DEFINE fill_field.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = &1.
FIELDCAT-SCRTEXT_L = &2.
FIELDCAT-CFIELDNAME = &3.
FIELDCAT-OUTPUTLEN = &4.
FIELDCAT-EDIT = &5.
APPEND FIELDCAT.
END-OF-DEFINITION.
======================================================================
* Range declarations
======================================================================

======================================================================
* Input Selection Screen
======================================================================
SELECTION-SCREEN BEGIN OF SCREEN 9000 TITLE text-001 AS WINDOW.
PARAMETERS: p_swerk LIKE zpm003-swerk, “工厂
p_name1 LIKE zpm003-name1, “工厂名称
p_zzfgs LIKE zpm003-zzfgs, “分公司
p_butxt LIKE zpm003-butxt. “分公司名称
SELECTION-SCREEN END OF SCREEN 9000.
======================================================================
* Initialization
======================================================================
INITIALIZATION.

======================================================================
* At Selection Screen
======================================================================
AT SELECTION-SCREEN.

======================================================================
* At Selection Screen Output
======================================================================
AT SELECTION-SCREEN OUTPUT .

======================================================================
* AT SELECTION-SCREEN ON VALUE-REQUEST
======================================================================
*at selection-screen on value-request for p_ksgru.

======================================================================
* Start of Selection
======================================================================
START-OF-SELECTION.
PERFORM frm_get_data.
======================================================================
* End of Selection
======================================================================
END-OF-SELECTION.
PERFORM frm_display_data.
&———————————————————————
*& Form FRM_GET_DATA
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM frm_get_data .
SELECT swerk name1 zzfgs butxt bukrs butxt_d
INTO CORRESPONDING FIELDS OF TABLE gt_out
FROM zpm003.
ENDFORM.
&———————————————————————
*& Form FRM_DISPLAY_DATA
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM frm_display_data .
PERFORM frm_layout.
PERFORM frm_fill_field.
PERFORM frm_alv_display.
ENDFORM.
&———————————————————————
*& Form FRM_LAYOUT
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM frm_layout .
CLEAR: wa_layout.”它用来定义ALV报表的整体属性
wa_layout-cwidth_opt = ‘X’.”优化列宽选项是否设置
wa_layout-box_fname = ‘SEL’.
ENDFORM.
&———————————————————————
*& Form FRM_FILL_FIELD
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM frm_fill_field .
fieldcat-fieldname = ‘SWERK’.
fieldcat-scrtext_l = ‘工厂’.
fieldcat-cfieldname = ”.
fieldcat-outputlen = ‘20’.
fieldcat-edit = ”.
fieldcat-F4AVAILABL = ‘X’.
APPEND fieldcat.
CLEAR fieldcat.
fill_field ‘NAME1’ ‘工厂名称’ ” ‘20’ ”.
fill_field ‘ZZFGS’ ‘分公司’ ” ‘20’ ”.
fill_field ‘BUTXT’ ‘分公司名称’ ” ‘20’ ”.
fill_field ‘BUKRS’ ‘公司代码’ ” ‘20’ ”.
fill_field ‘BUTXT_D’ ‘公司代码名称’ ” ‘20’ ”.
ENDFORM.
&———————————————————————
*& Form FRM_ALV_DISPLAY
&———————————————————————
* text
———————————————————————-
* –> p1 text
* <– p2 text
———————————————————————-
FORM frm_alv_display .
gt_eventS-name = ‘CALLER_EXIT’. “slis_ev_caller_exit_at_start事件
gt_eventS-FORM = ‘FM_BUTTON’.
APPEND gt_eventS.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = ‘USER_COMMAND’
i_callback_pf_status_set = ‘PF_STATUS’
is_layout_lvc = wa_layout
it_fieldcat_lvc = fieldcat[]
i_default = ‘X’
i_save = ‘A’
it_events = gt_events[]
TABLES
t_outtab = gt_out[]
EXCEPTIONS
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. ” FRM_ALV_DISPLAY
FORM pf_status USING lt_extab.
SET PF-STATUS ‘MENU’.
ENDFORM.
&———————————————————————
*& Form user_command
&———————————————————————
* text
———————————————————————-
* –>UCOMM text
* –>RS_SELFIELD text
———————————————————————-
FORM user_command USING ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield. “#EC CALLED
CASE ucomm.
WHEN ‘CHANGE’.
PERFORM frm_change_function.
WHEN ‘DELETE’.
PERFORM frm_delete_function.
WHEN ‘CREATE’.
PERFORM frm_create_function.
WHEN ‘SAVE’.
PERFORM frm_save_function.
WHEN ‘IMPORT’.
PERFORM frm_import_function.
ENDCASE.
rs_selfield-refresh = ‘X’.
rs_selfield-col_stable = ‘X’.
rs_selfield-row_stable = ‘X’.
ENDFORM. “user_command
&———————————————————————
*& Form fm_button
&———————————————————————
* text
———————————————————————-
* –>E_GRID text
———————————————————————-
FORM fm_button USING e_grid TYPE slis_data_caller_exit.

CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’
IMPORTING
e_grid = ref_grid.
* 设置enter事件
CALL METHOD ref_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.

CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR ref_grid.

DATA: lv_event_receiver TYPE REF TO lcl_event_receiver,
lt_f4 TYPE lvc_t_f4,
ls_f4 TYPE lvc_s_f4.
ls_f4-fieldname = ‘SWERK’. “窗口时间参数(需要定义F4帮助按钮的字段)
ls_f4-register = ‘X’.
ls_f4-getbefore = ‘X’.
ls_f4-chngeafter = ‘X’.
INSERT ls_f4 INTO TABLE lt_f4.

CREATE OBJECT lv_event_receiver.
SET HANDLER lv_event_receiver->handle_f4 FOR ReF_grid.

CALL METHOD ReF_grid->register_f4_for_fields
EXPORTING
it_f4 = lt_f4[].
ENDFORM. “FM_BUTTON
&———————————————————————
*& Form REFRESH_TABLE_ALV
&———————————————————————
* 设置后,alv稳定刷新
———————————————————————-
FORM refresh_table_alv .
DATA: stbl TYPE lvc_s_stbl.
*
stbl-row = ‘X’.” 基于行的稳定刷新
stbl-col = ‘X’.” 基于列稳定刷新
CALL METHOD REF_grid->refresh_table_display
EXPORTING
is_stable = stbl.

ENDFORM. ” REFRESH_TABLE_ALV
&———————————————————————
*& Form F4_HELP_ZSJCS
&———————————————————————
* 窗口时间参数的自定义f4检索帮助
———————————————————————-
FORM f4_help_zsjcs USING p_fieldname TYPE lvc_fname
p_row_no TYPE lvc_s_roid.

DATA: lt_return TYPE STANDARD TABLE OF ddshretval,
ls_return TYPE ddshretval.

DATA:BEGIN OF LT_T001W OCCURS 0,
WERKS LIKE T001W-WERKS,
NAME1 LIKE T001W-name1,
END OF LT_T001W.
IF p_fieldname = ‘SWERK’.

SELECT name1 WERKSINTO CORRESPONDING FIELDS OF TABLE LT_T001WFROM T001W.
SORT LT_T001W BY werks.
DELETE ADJACENT DUPLICATES FROM LT_T001WCOMPARING werks.

ENDIF.
CALL FUNCTION ‘F4IF_INT_TABLE_VALUE_REQUEST’
EXPORTING
retfield = ‘WERKS’ “lt内表里面的字段
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = ‘SWERK’ “画面上绑定字段
value_org = ‘S’
callback_program = sy-repid
TABLES
value_tab = LT_T001W “需要显示帮助的值内表
return_tab = lt_return “返回值
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE gt_out INDEX p_row_no-row_id.
IF gt_out-swerk IS INITIAL.
READ TABLE lt_return INTO ls_return INDEX 1.
gt_out-swerk = ls_return-fieldval.
MODIFY gt_out INDEX p_row_no-row_id
TRANSPORTING swerk.
ENDIF.
ENDIF.
ENDFORM. ” F4_HELP_

ALV中的回车事件相应及添加F4帮助相关推荐

  1. SAP ABAP alv中设置回车事件

    * 添加这段刷新代码   READ TABLE t_data_hz INDEX rs_selfield-tabindex.    " 将变动内容更新到内表   DATA: lr_grid T ...

  2. angularjs中按回车事件_浅谈angularjs中响应回车事件

    下面这个示例在输入框键入回车键或者点击按钮时,将输入框的值置为"Hello World!":(黄色背景内容为响应回车事件涉及到的代码) angularjs-demo test va ...

  3. wxpython textctrl_wxpython中Textctrl回车事件无效的解决方法

    wxPython的TextCtrl如何切换自动换行?解决了.参照wxPython自带Demo里面的例子,是把已经生成的wx.TextCtrl的Style参数取出来,然后重新Init一个新的wx.Tex ...

  4. angularjs中按回车事件_在AutoCAD中巧用空格键或回车键,制图效率高

    AutoCAD在很多行业都有应用,学会AutoCAD多少有些用处.下面介绍以下关于应用空格键或回车键的几个常用技巧,懂得应用的话,制图效率会提升. (1)巧用空格键与回车键重复上一个命令 在完成一个制 ...

  5. ALV (三)、 Function ALV (工具栏和事件)

    ALV工具栏自带很多很好用的功能,但是我们有时候也会想添加一些自己的功能,这种时候一般有两种方法: 1.copy标准的GUI Status,然后在这个基础上添加新的按钮即可, 标准的GUI Statu ...

  6. enter对应的keycode_vue 添加enter回车事件

    问题所在:今天遇到一个需求,给el-button组件添加点击事件,之前对这块一直一知半解,所以特此总结一下 解决方法: Vue 允许为 v-on 在监听键盘事件时添加按键修饰符,所以对一个普通的Vue ...

  7. OO ALV中的data_changed、data_changed_finished事件介绍

    Alv grid/OO ALV中有两个事件(Event):data_changed和ata_changed_finished. 第一个事件在可编辑字段的数据发生变化时触发,可用来检查数据的输入正确性, ...

  8. alv回车_ALV回车事件

    ALV不能直接在GUI 状态里响应回车事件,需要自己定义,写代码. REUSE_ALV_GRID_DISPLAY_LVC.png data定义: DATA:GT_EVENT TYPE SLIS_T_E ...

  9. 在asp.net中为Web用户控件添加属性和事件

    在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的 ...

最新文章

  1. 创建模板_UG中如何创建属于自己的编程模板界面?
  2. 原创 | 从席卷全球的“刷脸”乱象,看国内人脸识别立法方向
  3. Android中与Intent相关的还有,Android中Intent的相关用法
  4. 【RecyclerView】 九、为 RecyclerView 设置不同的布局样式
  5. JQuery对象和JS对象区别与转换|| 事件绑定 入口函数 样式控制
  6. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码
  7. 高级UI-画笔Paint
  8. 前端学习(3214):state的一个简洁方式
  9. 理解浏览器是如何加载及渲染网页的
  10. springboot转发http请求_网易后端实习生分享:Springboot异常和错误处理规范
  11. AnnotationUtils
  12. vrpie在Visio Studio 中无法调试的问题
  13. 判断Sbo的Matrix中是否存在相同数据行
  14. 关于MATLAB中使用latex语法
  15. 大脑是如何塑造你的感觉?
  16. 富士通服务器远程控制,iRMC远程管理功能
  17. Linux深度学习框架安装
  18. win7 计算机不显示u盘启动不了,Win7系统下bios中找不到U盘启动项如何解决
  19. 聊聊如何做技术战略规划
  20. Python多线程操作

热门文章

  1. 改进的判定条件覆盖讲解和真值表书写
  2. 2021-06-03 一只小小白K 期许未来!
  3. ITIL 4Foundation题目-6
  4. 从Hadoop到Spark和Flink,大数据处理框架十年激荡发展史
  5. converting character set: invalid arguements
  6. 软件设计原则之里氏替换原则、依赖倒置原则
  7. canvas制作圆型印章
  8. 论开学第三个月干了点啥
  9. 自从学会了用python解析视频,都不用去找下载按钮在哪了,是真的方便
  10. 阻容感基础10:电感器分类(4)-变压器