ABAP 内表的定义,与PERFORM传值的定义

问题描述: 许多同学在内表定义还有很多种,其实掌握两种就好了;DATA的用法那么多,该怎么用?还有就是PERFORM创建之后,传值有什么讲究,老是参考定义不对劲。
此博客就是解决这两个问题

一,普通程序需要定义结构
1.全手动定义的结构

TYPES : BEGIN OF typ_alv ,
          aufnr TYPE   afpo-aufnr, "生产订单
          auart TYPE  aufk-auart,   "订单类型
          mes     TYPE  char200,
        END OF typ_alv .
DATA : gs_alv   TYPE typ_alv,  "alv报表的结构,传一行数据的
       gt_alv   TYPE TABLE OF typ_alv. "ALV内表

2.包含表或者结构另外加上自定义字段作为结构

DATA BEGIN OF typ_alv .
INCLUDE TYPE ztsd_kpsq ."包含自己创建表的所有字段
DATA     VKGRP    TYPE  VBAK-vkgrp.
DATA     del        TYPE      c. "删除标记
DATA END OF typ_alv .
DATA : gs_alv LIKE typ_alv,     ""alv报表的结构,传一行数据的
       gt_alv LIKE TABLE OF typ_alv. "ALV内表

现在很少定义带头的表了,因为它既可以是结构,也可以是内表,这样很容易混淆。比如:DATA gt_return LIKE bapi_matreturn2 OCCURS 0 WITH HEADER LINE.

二.DATA可以即时定义,建议在form中使用,很灵活。
1.SQL 语句中使用

"查询航班表的承运方为AA的数据
SELECT
     *
FROM sflight
WHERE carrid = 'AA'
INTO TABLE @DATA(lt_sflight) . "lt_sflight定义为含有SFLIGHT中所有字段的内表

SELECT SINGLE
     *
from sflight
where carrid = 'AA'
INTO  @DATA(ls_sflight) ."ls_sflight定义为含有SFLIGHT中所有字段的一行数据的工作区

2.LOOP 语句使用

  LOOP AT lt_sflight INTO DATA(ls_sflight)."ls_sflight根据lt_sflight自适应的工作区
   clear:ls_sflight。
  ENDLOOP.

3.READ 中的使用

READ TABLE lt_sflight INTO DATA(LS_sflight) WITH KEY ........

4.临时自适应的变量

 DATA(ilen) = strlen( IS_DATA )."查字段长度。

三.perform的使用方法

 PERFORM f_clientdata    TABLES   lt_extensionin    "填充CLIENTDATA
                                     lt_extensioninx
                            USING    ls_alv
                            CHANGING gw_clientdatax
                                     gw_clientdata
                                     gw_bapi_te_marax
                                     gw_bapi_te_mara .

FORM f_clientdata   TABLES   lt_extensionin     STRUCTURE bapiparex
                             lt_extensioninx   STRUCTURE   bapiparexx
                     USING   gs_alv            TYPE  zsmdm_matnr_detail
                    CHANGING gw_clientdatax    TYPE bapi_marax
                             gw_clientdata     TYPE bapi_mara
                             gw_bapi_te_marax  TYPE bapi_te_marax        "声明客户端层次物料数据
                             gw_bapi_te_mara   TYPE bapi_te_mara  .       "声明客户端层次物料数据
ENDFORM.                             

TABLES:把内表传入form中,内表值可以有变化
USING:只能传个一条数据的工作区进来,而且数据不能变化,强行变值,也传不出去。
CHANGING传一条数据的工作区进来,值可以变化。

FORM 传值变量的定义
TABLES: 一般参考结构:内表 STRUCTURE 结构。

USING /CHANGING
工作区 STRUCTURE 结构
工作区 LIKE 结构
工作区 TYPE 结构

这些都可以哟!

好了,分享使我快乐,我是寒武青锋
在这里插入图片描述
记得点赞

  • 27
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP面试大全 目录 1. 报表知识 6 1.1 基础知识 6 1.1.1 报表事件,有哪些? 6 1.1.2 报表选择画面 7 1.2 ALV报表 8 1.2.1 ALV报表实现的流程 8 1.2.2 显示ALV常用的两个FM 8 1.2.3 如何设置ALV中的热键 8 1.2.4 ALV显示中的小计 8 1.2.5 FM ALV 和 OO ALV的比较 8 1.3 WRITE LIST 8 2. 数据库知识 9 2.1 基础知识 9 2.1.1 ABAP数据字典有哪些对象或元素? 9 2.1.2 据库提交确认和数据库回滚取消语句 9 2.1.3 什么是LUW 9 2.1.4简述modify 、insert、update对数据库表做操作时的影响 9 2.1.5 要描述域、数据元素、表字段之间的关系 9 2.1.6数据字典有几种缓冲方式,适用范围? 9 2.2 ABAP和数据库 10 2.2.1 ABAP 数据表的主索引是什么?索引的好处与坏处?与建索引的注意事项! 10 2.2.2 ABAP透明表有哪几种数据类(data class)?对数据的存储有什么影响? 10 2.2.3 SAP中有几种表,他们的区别是什么? 10 2.2.4什么是簇表(cluster table)?举出知道的簇表。 10 2.2.5找数据库表,有哪些常用的方法。 10 2.2.6如何建立数据库锁对象,激活锁对象产生的Function Module的名字为什么,在何处查看锁表的情况? 10 2.2.7更新 FM 分为 V1 和 V2,那么首先会执行哪一种更新类型呢?每种类型又是以哪种模式(异步、同步或本地)执行的呢? 11 2.2.7使用OPEN SQL注意原则 11 2.3 与表相关 11 2.3.1 MM模块有哪些常用表格 11 2.3.2 HR模块知识:HR里面存储HR主数据主要用到了哪些表? 11 2.3.3 HR模块知识:HR程序在开发中常用的两个逻辑数据库是什么?分别对其进行描述 12 2.3.4 HR模块知识:HR模块里面,如何修改HR的信息类型,具体如何实现 12 2.3.5财务模块:财务模块开发中常用的表有哪些,简单举例说明: 12 2.3.6 PM 常用的TABLE 12 2.3.6 inner join 与 left-outer join的区别? 13 3. 权限相关 14 3.1 什么是权限对象(Authorization Objects)?在 ABAP 程序中使用哪条语句进行授权检查? 14 3.2 与权限对象有关的事务代码有哪些? 14 4. DIALOG 15 4.1 DIALOG 中的几个事件 15 4.2 何在TABLE CONTROL中实现选中一行或多行的效果 15 4.3 DIALOG 开发的常用几个控件是什么? 15 5. BDC 16 5.1 BDC录屏的事务代码 16 5.2 BDC与BAPI之间的区别 16 5.3 BDC录屏的注意事项 16 5.4谈谈BDC的运行模式和更新模式 16 6. 增强 17 6.1什么叫增强?有哪些方式进行增强? 17 6.1.1 User EXIT 17 6.1.2 Customer exit 17 6.1.3 BADI 17 6.1.4 Enhancement Spot 17 6.2如何建立增强? 17 6.3与增强相关的事务代码有哪些 18 6.4如何进行数据库表字段的增强?Append和Include的方式有何区别? 18 7. SMARTFORMS 19 7.1谈谈SmartForm中,Template和Table表格的区别 19 7.2 SMART FORM如何实现公司LOG打印,其步骤是什么? 19 7.3 smartform 中如何控制段落、单个字符输出格式? 19 8. RFC和 BAPI 20 8.1 RFC 20 8.1.1什么是RFC,有哪些通信模式? 20 8.1.2 RFC中涉及到常用的事务代码有哪些? 20 8.1.3根据调用方式的不同,RFC接口提供了什么样的服务? 20 8.1.4 RFC接口的具体功能包括哪些? 20 8.1.5在通过CALL FUNCTION语句进行远程功能调用的基本模式有哪些 20 8.1.6怎么创建一个支持远程调用的RFC 21 8.1.7怎么调用一个SAP标准RFC 21 8.1.8怎样建立RFC程序?RFC程序传递的参数都是传递值还是引用?如何建立函数组? 21 8.1.9怎么来维护这个DESTINATION(远程目标) 21 8.2 BAPI 21 8.2.1什么是BAPI?你使用过哪些BAPI实现什么功能? 21 8.2.2什么是业务对象类型?它包含哪些主件? 21 8.2.3如何创建一个BAPI? 22 8.2.4编写BAPI的注意事项有哪些? 22 8.2.5谈谈与BAPI相关的事务代码。 22 8.3 RFC 和BAPI的相同之处和不同之处 22 8.3.1 RFC和BAPI的区别? 22 9.其他 23 9.1 基础知识 23 9.1.1 CHECK、EXIT、RETURN命令的区别? 23 9.1.2初始化内表有几种方式? 23 9.1.3 一个程序如何调用另外一个程序 24 9.1.4 在一个程序中如何调用其他事物代码 24 9.1.5在进行画面跳转时,CALL SCREEN与LEAVE TO SCREEN的区别? 24 9.1.6 LOOP 循环和系统字段? 24 9.1.7 MESSAGE消息有哪些类型,含义?如何自定义MESSAGE消息类? 24 9.1.8 ABAP中,如何自定义异常类?如何捕捉异常? 24 9.1.9什么是事物变式?事务变式有什么用? 25 9.1.10 RANGE 25 9.1.11对于FIELD SYMBOL赋值将使用 25 9.1.12 Perform 调用子程序时,using ,tables,changing 3个参数分别有什么影响? 25 9.1.13如何在程序间传送数据? 25 9.2 延伸 26 9.2.1自定义搜索帮助有几种方式?如何实现 26 9.2.2怎么创建number range 26 9.2.3 function module中,如何给出错误消息? 26 9.2.4如何优化ABAP程序? 26 9.2.5前导零的处理方式 27 9.2.6 程序事件和系统事件 27 9.2.7如何建立一个外部数据库的连接 27 9.2.8怎样从文件服务器上读取文件?和写文件到文件服务器上? 27 9.2.9 SAP 包括哪些传输技术 27 9.2.10如何将内表数据转换成一个XML文件? 28 9.2.11怎么导出一个WSDL文件? 28 9.2.12怎么导入一个WSDL文件? 28 9.2.13创建后台程序的TCODE是什么,如何在程序里面调用后台程序 28 9.2.14 webservice 28 9.2.15什么叫BTE (Business Transaction Event),BTE的两种类型? 28 9.2.16现阶段接口开发使用的技术 29 9.2.17将一个RFM(Remote-Enabled Module)创建一个WEB SERVICE都有什么相关的事务代码? 29 9.2.18 esb使用 29 10.常用T-CODE 30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值