前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ALV之选择屏幕按钮设定

ALV之选择屏幕按钮设定

作者头像
百里丶落云
发布2022-12-22 14:06:28
1.3K0
发布2022-12-22 14:06:28
举报
文章被收录于专栏:享~方法

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

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

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

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

技术解析

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

代码语言:javascript
复制
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数据界面 .

数据准备

代码语言:javascript
复制
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.

定义屏幕个数

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

代码语言:javascript
复制
SELECTION-SCREEN:FUNCTION KEY 1.  
SELECTION-SCREEN:FUNCTION KEY 2.

定义子例程

代码语言:javascript
复制
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.

调用子例程

代码语言:javascript
复制
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
image.png

点击按钮1

image.png
image.png

点击按钮2

image.png
image.png

技术总结

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

百里鸡汤

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

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

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

wallhaven-28w7vg.jpg
wallhaven-28w7vg.jpg
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要增加选择屏幕按钮
  • 技术解析
  • 实例
    • 数据准备
      • 定义屏幕个数
        • 定义子例程
          • 调用子例程
          • 结果
          • 技术总结
          • 百里鸡汤
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档