我们在上节课中讲了个比较简单的代码, 重点在于理解语法基础 ,并不具有实际意义。
[ 2024 SAP顾问第01卷--ABAP基础初体验
](http://mp.weixin.qq.com/s?__biz=MzI0MjQ2OTUxNw==&mid=2247485241&idx=1&sn=f8d6e317bdba52586ccfdd752b3b65ae&chksm=e97a98dbde0d11cd360544821ce8d0dd1f4320d69b4b6ca8dde4328d12c791685ec6f7749cbe&scene=21#wechat_redirect)
这个课我们自己讲的实用的(当然还不够),只是让我们感受下代码的魅力。
首先我们先看看我们要实现什么功能。
我们要通过ABAP代码实现和上图一模一样的效果
我们先看下效果,再来讲如何实现 。
代码实现
可以看到,我们一共用了56行代码。
是不是看的不太懂了?不过没关系,把这节课讲完,我视频讲解基本要花4个小时。 我尽量带着大家能通过文字的方式来完成ALV报表 。
**(一) 第1部分
**
8~12行: 这个是定义一个结构。那么什么是结构呢?是一系列变量(上节课讲了)的组合,比如成绩单这个结构,姓名+课程+分数,如下图第一行。
13行: 根据结构 定义一个表格 ,用来存储内容(如下图橙色部分)
15~17行: 从SE16N后台表中捞取数据,填充上图橙色部分。
这段代码有必要解释下:
15 行 SELECT 固定用法,是捞取的意思
15 行 MATNR ERSDA MTART 代表捞取那些数据
16 行 INTO TABLE GT_OUT 代表,把捞取的结果放到 GT_OUT表里。
INTO 英语翻译就是到... 里面, TABLE 翻译就是表格的意思。GT_OUT 就是表格的名字
小贴士:这节课很多是固定的用法,我们理解的同时,记忆的成分也比较多
。我们手工敲三遍前面的代码,再推敲下,以后照葫芦画瓢即可。熟读唐诗三百首,不会作诗也会吟诗。
如果还是一知半解的话,可以找我做一对一培训吧。
** (二)第2部分 **
那么我们怎么把结果展示出来呢,用一个SAP自带的ALV函数叫 REUSE_ALV_GRID_DISPLAY_LVC( 43行 ), 来实现。
那么什么叫函数呢?比如:我们是农行的卡,在工行自动取款机上取款,我们只需要插入卡、输入密码和取款金额,-----输入。
出来现金------输出
中间过程,两家银行要相互结算,余额会自动减少,取款日志等我们是不知道怎么弄的, 函数就是只管输入和输出,至于中间怎么处理的咱不管 。
2.1 我们既然要把数据输出到屏幕,首先要有数据。 在第1部分中,我们用SELECT 取到
了数据,并且放到了GT_OUT表中,因此我们要把数据给到函数,见50行。
其他部分有一点点难,我们初学者可以不用理会,直接按上图即可。
我们在9~11行看到,列名都是英文的,因此要给一个中文名。
20~25 行: 照抄就可以
27~30 行: 我们仔细琢磨。首先27、28是把英文名对应一个中文名,29、30行,我们用默认值。
32~40 行: 和27~30行一样,我们有几列就复制几次,然后修改列名和对应的中文名。
这样就大功告成了。
我们再回顾下核心内容:
A: 取数:15~17行 , 结果放到GT_OUT表。
B: 把GT_OUT内容给到ALV报表函数 第50行
C: 给中文表头。27~30行
其他按照代码写就可以了,只需要修改上面说的三步。
我们再看下效果。
如果需要更深入得学习,扫描下面的图片加我吧。