前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP之显示当前查询进度

ABAP之显示当前查询进度

作者头像
百里丶落云
发布2022-12-18 17:45:59
1.4K0
发布2022-12-18 17:45:59
举报
文章被收录于专栏:享~方法

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

HELLO ,这里是百里,一个学习中的ABAPER ,在工作中会出现数据量非常大的情况,比如接口,比如大型常用的ALV报表.这时,用户往往会体验非常差. 在web端一般会有个提示说什么等待啊,百分比啊等等.总之就是给用户更好的交互.要不就卡在一个界面对用用户来说体验非常差. 那么就讲到今天的内容,显示当前查询进度.

为什么要显示查询进度

记得在前端时候学过一个知识,就是说用户的等待时间不会超过3秒.意思就是说,当某个界面卡了3秒以上,用户机会觉得体验非常差.如果我们在等待数据中增加一个动画效果,或者提示内容的话虽然解决不了卡的问题,但是给用的体验相对而言还是不错的.在SAP中我们可以通过调用系统函数的方式进行实现该功能,显示当前查询的进度.

语法介绍

代码语言:javascript
复制
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 
EXPORTING
text = lv_text.

我们在选择屏幕界面,ALV过账界面,按钮,数据下发等等使用时均可以使用该函数.

案例

我们这里拿VBAP表做一个简单的例子,这个例子是展示当前循环的行数,当循环完成时我们提示一个导入成功 .

数据准备

代码语言:javascript
复制
TABLES :vbap .  
  
  
data: gw_Data TYPE vbap .  
data: gt_Data TYPE table of vbap .  
  
data : lv_pect TYPE p .  
  
select *  from  vbap into CORRESPONDING FIELDS OF table gt_Data .  
  
data(lv_line) = lines( gt_data ) .

创建子例程

代码语言:javascript
复制
FORM frm_show_progress   USING pv_text lv_mes.  
  
DATA : lv_text TYPE c LENGTH 20.  
  
IF pv_text IS INITIAL.  
  
lv_text = TEXT-001.  
  
ELSE.  
  
lv_text = pv_text.  
  
ENDIF.  
  
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'  
  
EXPORTING  
  
text = lv_text && '/' && lv_mes.  
IF lv_text = lv_mes.  
  MESSAGE '导入成工' TYPE 'I' .  
  
ENDIF.  
  
ENDFORM.

调用子例程

我们这里直接在 START-OF-SELECTION . 中进行调用,当然还有很多中情况, 一般在选择屏幕阶段可能会非常多.

代码语言:javascript
复制
LOOP AT gt_Data into data(gs_Data) .  
  
  
lv_pect = sy-tabix  .  
  
PERFORM frm_show_progress  USING lv_pect lv_line.  
  
  
ENDLOOP.

通过循环内表数据我们过去对应的行数,可以在GET_DAta 的界面进行显示该函数 .

结果

总共3685个数据,在循环中的数据在一直变动. 当然百分比也可以,具体的自己写逻辑,这里只讲述一个用法.

image.png
image.png

当数据全部执行完毕后,显示导入成功.

image.png
image.png

技术总结

今天讲述的内容,可以说是经常使用,因为在SAP中数据量是非常大的,我们难免会有等待的情况,增加了该函数在代码中可以给用户更好的感官.多少可以让用户知道,我还要等多久.

百里鸡汤

看了本书,是法医推荐的,叫做蛤蟆先生去看心理医生.

困惑是学习过程的第一阶段,这说明固有知识的局限开始被打破了。你要直面新的信息,这些新的信息会挑战你现有的观念和行为模式。由此产生的焦虑是让你改变的动力,很可能也会开启你的 创造力 .

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要显示查询进度
  • 语法介绍
  • 案例
    • 数据准备
      • 创建子例程
        • 调用子例程
        • 结果
        • 技术总结
        • 百里鸡汤
        相关产品与服务
        腾讯云 BI
        腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档