首页 > 其他分享 >SAP ABAP 报表进度显示控件的使用详解试读版

SAP ABAP 报表进度显示控件的使用详解试读版

时间:2023-08-13 13:23:34浏览次数:41  
标签:控件 读取 试读 分块 订单 ABAP SAP

有些 SAP ABAP 报表包含了多个业务处理步骤,笔者这里举一个例子:

计算某个时间段内,系统所有销售订单的总金额。

SAP 大多数基于 ABAP 技术栈的销售订单设计,都是采取订单抬头(header) 和订单行项目(Line Item)的数据结构。订单的时间段维护在抬头结构上,一张订单可能包含多个行项目,每个行项目有一个金额字段。因此订单的总金额,是其行项目金额之和

订单的抬头结构和行项目结构,维护在两张不同的数据库表里。

打个比方,比如 SAP CRM,订单抬头结构在 CRMD_ORDERADM_H, 订单行项目在 CRMD_ORDERADM_I 这张表里。

CRMD 中的 D 意思是 Database,ADM 是 Administration 的缩写,H 是 Header,I 代表 Item.

因此上述需求的常规处理思路是:

  1. 从订单抬头结构数据库表中,读取出某个时间段内的所有抬头数据。

  2. 根据这些抬头数据,读取出所有的行项目数据。

  3. 在循环中遍历这些行项目数据,将行项目的金额字段进行累加。循环结束后,累加结果就是总金额。

如果某个时间段内系统的订单条目数非常大,比如说是1亿条,那么将这一亿条订单的抬头结构,全部从数据库表读取到 ABAP 应用层处理,可能会因为数据量过大的原因,造成应用程序异常中止退出。

详细原因笔者已经在之前的文章里详细介绍过了:

避免这种一次性把大量数据读取到 ABAP 应用服务器导致出错的解决方案之一,就是分而治之的思路,即分块读取,比如一次只读 1000 条数据到 ABAP 服务器,对这一千条数据进行金额累加之后,再读取下一千条。

分块读取的思路在笔者教程之前的步骤有所介绍:

采用分块读取会带来另一个问题:用户搞不清楚当前系统已经处理了多少块,还剩多少块没有处理。

面对这种情况,SAP 推荐的一个做法是使用 Function Module SAPGUI_PROGRESS_INDICATOR 在 SAPGUI 里显示一个交互式的进度提示控件。

ABAP 系统里这种进度提示控件比较有特色,并非我们在 Windows 操作系统里常见的那种水平进度条,而是一个钟表状的外观,如上图所示,实心被填充的扇形区域,代表已经完成的进度。当整个钟表的圆形完全被填充时,代表进度达到 100%.

本文余下部分介绍这个函数的具体用法。

效果如下 gif 所示:
4.gif

标签:控件,读取,试读,分块,订单,ABAP,SAP
From: https://www.cnblogs.com/sap-jerry/p/17626444.html

相关文章

  • 如何找到 SAP Fiori Elements 应用某个字段显示值具体的数据源试读版
    笔者将自己在SAP领域16年(2007~2023)的SAPUI5(Fiori)和OData开发的技术沉淀,进行了系统的归纳和总结,分别写成了三套由浅入深的学习教程,收到了不错的反响:零基础快速学习ABAP一套适合SAPUI5开发人员循序渐进的学习教程SAPOData开发实战教程-从入门到提高这三套......
  • 如何修改 Fiori Elements 工程包含的本地注解(annotations)文件试读版
    本教程前一篇文章:8.如何找到SAPFioriElements应用某个字段显示值具体的数据源,笔者试图解答我的知识星球里一个朋友的提问:在WebIde(SAPUI版本1.97.0)生成FioriElements的Overviewpage并发布后,再次在消费视图中修改UI注解后,本地运行该Overviewpage应用发现页面已经变动,......
  • SAP Fiori Elements 应用里的 ui5.yaml 文件详解试读版
    本教程第4篇文章,我们介绍了本地启动SAPFioriElements应用的三种模式。4.SAPFioriElements本地应用启动的三种模式辨析以默认方式即命令行yarnstart启动之后,项目文件夹里的ui5.yaml文件会默认被加载并解析。ui5.yaml这个文件,在本地开发FreestyleUI5时也会......
  • WPF自定义控件实战:自制上传文件显示进度按钮
    自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造。 目录按钮设置圆角按钮上传文件相关定义测试代码 话不多说直接看效果默认效果:上传效果:按钮设置圆角因为按钮本身没有CornerRadius属性,所......
  • Qt自定义控件之动画文本
    @TOC前言在Qt中,自定义控件可以让我们实现丰富的用户界面效果和交互体验。其中,动画文本是一种常见的效果,通过文本的动态变化可以吸引用户的注意力,增强用户体验。本文将介绍如何使用Qt实现一个动画文本的自定义控件,让你的应用程序更加生动活泼。一、动画文本的效果功能实现:基础功......
  • ABAP FB02 修改会计凭证的抬头文本/行项目文本的函数
    抬头: 项次: DATA:gt_accchgTYPETABLEOFaccchgWITHHEADERLINE.gt_accchg-fdname='BKTXT'."抬头文本-字段,也可以换其他字段gt_accchg-newval='测试抬头文本修改'."新的值APPENDgt_accchg.CALLFUNCTION'FI_DOCUMENT_CHANGE'......
  • 让Webbrowser、CDHtmlDialog中的控件显示为系统主题样式
    方法1:在HTML文件里加上如下代码<METAHTTP-EQUIV="MSThemeCompatible"CONTENT="Yes">方法3:在以CDHtmlDialog类为基类的头文件中加入如下代码(推荐)classCWebBrowserThemeDlg:publicCDHtmlDialog{STDMETHOD(GetHostInfo)(DOCHOSTUIINFO*pInfo){pInfo->dwFlags|......
  • WPF图形控件使用之-VisualBrush图形画刷
    VisualBrush 背景图 Background上画,线条(LineGeometry)、几何图形(RectangleGeometry)、椭圆(EllipseGeometry)、弧线(ArcSegment )、各种控件等,相对与DrawingBrush书写更简单一些。 属性说明备注Viewport(从左向右,从上向下,图像宽度放大比例,图像高度放大比例)放大背......
  • 文档控件DevExpress Office File API v23.1新版亮点 - 支持.NET MAUI
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......
  • C# chart控件实现扇形图的一种方式
     ///<summary>///绘制扇形图///</summary>///<paramname="count"></param>privatevoidPainAlam(intcount){Hashtableht=newHashtable();//第一次遍历所有警报,存入到哈希表里面,value设置为1。value为已出现报警的次数for(inti=0;i<......