ALV之选择屏幕按钮设定

879 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情

HELLO,这里是百里,一个学习中的ABAPER,在工作中,我们会经常绘制ALV报表,或者通过ALV进行制造某些功能。我们在选择屏幕节目内可以设定一些按钮从而实现某些功能。 比如经常使用的下载模板啊,上传数据啊等等这些都是可以在选择屏幕界面实行的。那么今天,就讲一下如何在选择屏幕界面增加屏幕按钮。

为什么要增加选择屏幕按钮

使用该功能时要先了解,为什么我需要在选择屏幕的界面增加按钮呢. 一般情况是在是数据导入的时候.我们需要给用户提供一个可参考的模板,从而让用户进行按照我们指定的规则进行数据导入.故而在选择屏幕界面增加按钮 .

技术解析

我们主要使用函数scrfields ,通过调用其中数据内容,从而封装对应的参数,如名称,图标,功能等等

TABLES :sscrfields . 

SELECTION-SCREEN:FUNCTION KEY 1.  
SELECTION-SCREEN:FUNCTION KEY 2.
CASE sscrfields-ucomm.  
*   下载模版  
    WHEN 'FC01'.  
    代码
    WHEN OTHERS.  
  ENDCASE.
  
  wa_textfield-icon_id   = '图标代码'.  
  wa_textfield-icon_text = '按钮名称'(000).  
  sscrfields-functxt_01  = wa_textfield.
  

实例

我们今天讲述的案例是在选择屏幕界面内容可以增加两个按钮,分别是按钮一,和按钮二,点击按钮一时,跳出'S'类型提示,我是按钮一. 点击按钮二时,跳出弹窗按钮二. 选择执行时这提示.我是alv数据界面 .

数据准备

TABLES: sscrfields .  
  
CONSTANTS: cos_template TYPE w3objid VALUE 'ZSDC010A',  
           cos_fiename  TYPE string VALUE 'forecast by item code导入模板.XLS',  
           cos_split    TYPE c VALUE ';'.  
DATA: wa_textfield TYPE smp_dyntxt.

定义屏幕个数

注意这里屏幕个数最多只有九个,也就是说你的选择屏幕界面只能有九个功能按键.

SELECTION-SCREEN:FUNCTION KEY 1.  
SELECTION-SCREEN:FUNCTION KEY 2.

定义子例程

FORM selection_screen_button_event .  
  CASE sscrfields-ucomm.  
*   下载模版  
    WHEN 'FC01'.  
     MESSAGE '我是按钮1' TYPE 'S' .  
     " PERFORM download_template(zall_f01) USING cos_template cos_fiename IF FOUND.  
    WHEN OTHERS.  
  ENDCASE.  
ENDFORM.  
  
  
  
  
FORM selection_screen_button_event1 .  
  CASE sscrfields-ucomm.  
*   下载模版  
    WHEN 'FC02'.  
      MESSAGE '我素按钮2' TYPE 'I' .  
    WHEN OTHERS.  
  ENDCASE.  
ENDFORM.  
  
  
FORM selection_screen_add_button .  
  wa_textfield-icon_id   = '@49@'.  
  wa_textfield-icon_text = '下载模板'(000).  
  sscrfields-functxt_01  = wa_textfield.  
ENDFORM.  
  
  
  
FORM selection_screen_add_button1 .  
  
  wa_textfield-icon_id   = '@50@'.  
  wa_textfield-icon_text = '导入执行'(000).  
  sscrfields-functxt_02  = wa_textfield.  
  
  
ENDFORM.

调用子例程

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.  
  PARAMETERS p_file LIKE rlgrap-filename.  
  
SELECTION-SCREEN END OF BLOCK b2.  
  
INITIALIZATION.  
* 选择界面按钮添加图标、文字  
  PERFORM selection_screen_add_button.  
  PERFORM selection_screen_add_button1.  
  
  
AT SELECTION-SCREEN.  
* 处理选择屏幕的按钮  
  PERFORM selection_screen_button_event.  
  PERFORM selection_screen_button_event1.

结果

如图,我们在选择界面增加了两个按钮,分别是下载模板和导入执行,对应的问自己和图标我们都可以自己设定 image.png 点击按钮1 image.png 点击按钮2

image.png

技术总结

今天讲的内容是,如何在选择屏幕的界面上增加按钮,一般的作用使用于模板下载,权限检查及数据上载等功能.或者数据检查也可以.注意的是我们的按钮在选择屏幕界面只能有9个,一定要注意alv界面的生命周期,如果写的不对,对应的按钮是出不来的.

百里鸡汤

晨钟暮鼓催人急,燕去雁来促我忙。菊灿疏篱情寂寞,

枫红曲岸事仿徨。千金一刻莫空度,老大无成空自伤

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.

wallhaven-28w7vg.jpg