最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

ABAP常用开发技术讲义

来源:动视网 责编:小OO 时间:2025-10-02 10:30:05
文档

ABAP常用开发技术讲义

基本数据类型REPORT(报表)报表程序的主要作用是从数据库中抓取数据通过整理陈列出来,给企业高层或具有相关需求的人员查看。如无特殊需求,此类程序一般不需客制screen、menu、title。        A、ABAPLIST(最简单的一种报表程序,显示在屏幕上的数据及格式都通过ABAP中的WRITE语句实现,开发工具:SE38)        B、ALVREPORT(TheALVGridControl(ALV=SAPListViewer)属于报表的一种高级形式,显示出来的报表整洁美观,具
推荐度:
导读基本数据类型REPORT(报表)报表程序的主要作用是从数据库中抓取数据通过整理陈列出来,给企业高层或具有相关需求的人员查看。如无特殊需求,此类程序一般不需客制screen、menu、title。        A、ABAPLIST(最简单的一种报表程序,显示在屏幕上的数据及格式都通过ABAP中的WRITE语句实现,开发工具:SE38)        B、ALVREPORT(TheALVGridControl(ALV=SAPListViewer)属于报表的一种高级形式,显示出来的报表整洁美观,具
基本数据类型

REPORT(报表)

报表程序的主要作用是从数据库中抓取数据通过整理陈列出来,给企业高层或具有相关需求的人员查看。如无特殊需求,此类程序一般不需客制screen、menu、title。

         A、ABAP LIST(最简单的一种报表程序,显示在屏幕上的数据及格式都通过ABAP中的WRITE语句实现,开发工具:SE38)

         B、ALV REPORT (The ALV Grid Control (ALV = SAP List Viewer)属于报表的一种高级形式,显示出来的报表整洁美观,具有很大的交互功能,屏幕上的数据及格式主要通过系统的FUNCTION实现,开发工具:SE38)

         C、SAPSCRIPT(属于商务报表,主要应用于商业用途或对外的报表设计,开发工具:SE38、SE71)

         D、SMARTFORM (属于商务报表,主要应用于商业用途或对外的报表设计,是SAPSCRIPT的升级版,包含了SAPSCRIPT的绝大多数功能,但开发起来比SAPSCRIPT更方便,快捷。开发工具:SE38、SMARTFORMS)

         E、QUERY (适用于简单的查询报表开发,无需具有ABAP编程知识,但又提供了写ABAP代码的功能,对于一些简单的、无太多计算逻辑或判断逻辑的报表,推荐用其开发,开发工具:SQ01、SQ02、SQ03)

         F、REPORT PAINTER(此类报表主要应用于FICO模块,比较少用,但功能也非常强大。)

常用T-CODE

SAP标准的例子程序:T-CODE(ABAPDOCU)

可以将事务代码分配给类型为Executable program(1)的单独程序,以后就将程序作为事务代码处理。通过T-CODE(SE38)或者菜单(Tools->ABAP Workbench->Development->other Tools->Transactions就可以了。

用SE93 查看和创建TCODE,然后将该TCODE 加到相应的角色里就可以放到左边的菜单里了。SAP菜单树:工具 -> ABAP 工作台 -> 开发 -> 其他工具 -> 事务

标准菜单:s000

SE38进入开发界面,Tools → ABAP Workbench → Development→ABAP Editor

SE80 对象导航器object navigator和workbench,Tools → ABAP Workbench → Overview → Object Navigator

SE11:数据字典ABAP Dictionary,Tools→ ABAP Workbench→ Development→ ABAP Dictionary

作用:Create a Table,Create a Domain,Create a Data Element

SE81以树状结构察看 应用模块(ca,fi…..) 其下包括 开发类Development class

/h debug模式          F8 test运行        F3 回退

语法检查快捷键: CTRL + F2      激活Activate CTRL + F3

运行报表:

整齐打印: shift + F1 默认不可插入字符,按键盘插入键即可插入字符

TABLES语句:TABLES .

声明程序所使用的table。

是ABAP/4词典对象的名称,同时也是创建的表工作区的名称。表工作区组件的顺序和名称与在ABAP/4词典中声明的对象相同。要在ABAP/4词典中创建对象,步骤:Tools->ABAP Workbench->Development->ABAP Dictionary。

表工作区提供一个接口,通过该接口可以将数据从数据库表加载到程序,或利用开放式SQL语句修改数据库表的内容。

要显示表的组件及其数据类型的列表,请在ABAP/4编辑器的命令行中(选择“编辑->其它功能->命令输入”)键入“SHOW”。

例子:

TABLES: SPFLI.

Select * FROM SPFLI. 

WRITE: SPFLI-MANDT, SPFLI-CARRID, SPFLI-CONNID, ......

ENDSelect.

示例中,TABLES语句创建表工作区SPFLI。SPFLI与ABAP/4词典中声明的数据库表SPFLI结构相同。在Select循环中,用属于数据库表SPFLI的行填充表工作区SPFLI。

domain是对table的技术上的定义说明,

date element是对table语意上的定义说明

顾名思义,DOMAIN 是 域。  用它可以定义TABLE ELEMENT(数据元素),

而组成 TABLE 中的  FIELD 则 要  通过 TABLE ELEMENT(数据元素)来定义。

    DOMAIN ---》TABLE ELEMENT ---》 FIELDS ---》TABLE

1.在Dictionary裡所定義的物件有tables,domains,及data elements.Domain 定義了table field的屬性

2.Fields不是獨立的物件,只能在tables裡maintain,table fields的使用必須先有對應的data elements存在

3. Data elements的使用必須先有對應的domain存在

4.Domain的定義可以不用參考其他的dictionary objects

建立一個Domain: Zmandt, 新增資料到table:zvbak

(1)SE11--ABAP Dictionary-->Domain

(2)SE80--Workbench->other objects->Dictionary->Domain

建一個Data Element

(1)SE80--Workbench->other objects->Dictionary->Data element

PBO(Process Before Output)与PAI(Process After Input)

occurs 指明的數量是有一點學問的. 

1.當你知道可能每次用Select命中或交換的紀錄數xxx時,可指明occurs   xxx.

  2.如用occurs 0聲明時, buffers由系統自動分配.

occurs  *,后面表示系统初始分配给此内表多少行,每次满时再多分配多少行,我们平常为了节约内存,一般直接用0.

数据类型(types)的种类

数据对象(data)的种类

单值对象(data)的声明:注意type和like的用法区别

例:注意type与like的用法

Report zyyxx_ex_data.

types my_type(10) type c.

data:  my_data1 type mytype value 'test',

       my_data2 like mydata1.

my_data2='data2'.

write: my_data1,my_data2.

定义对象并赋值:

work area对象的声明,data关键字

例1:先声明一个结构类型(types),然后声明work area

例2:直接声明一个work area,注意复制语句move-corresponding的用法

内表Internal Table

存储多行多列的结构型数据类型,相当于一个数据库table

Internal table数据类型(types)的声明

Internal table对象(data)的声明

根据已声明的internal table数据类型来声明table对象

 

内表是按行进行访问的。必须使用某个工作区域作为与表格互相传输数据的接口。

工作区域对内表的行必须是可转换的, 为了避免不一致,最好是工作区域与内表行有相同的数据类型。创建与内表兼容的工作区域的一种安全步骤是在说明内表和工作区域时使用相同的数据类型。

如果创建带表头行的内表,系统自动创建与内表行数据类型相同的工作区域。该工作区域称为表头行或表格工作区域,对内表的作用与由TABLES语句创建的数据库表格工作区域相同。表格工作区域和内表本身同名。

不带表头行的内表没有可以隐式使用的表格工作区域。要访问没有表头行的内表,必须在相应的ABAP/4语句中显式指定工作区域。

同时声明internal table数据类型和data对象

例子:两种方式定义内表对象:注意向内表中添加数据的append语句

常用系统参数:sy-subrc=0 有记录sy-subrc<>0 无记录。clear清空data对象,返回到初始值

SY-SUBRC :  系統執行某指令后,表示執行成功与否的變數,’0’ 表示成功

SY-UNAME:  當前使用者登入SAP的USERNAME;

SY-DATUM:  當前系統日期;

SY-UZEIT:    當前系統時間;

SY-TCODE:   當前執行程式的Transaction code

SY-INDEX :   當前LOOP循環過的次數

SY-TABIX:  當前處理的是internal table 的第几筆

SY-TMAXL: Internal table的總筆數

SY-SROWS: 屏幕總行數;

SY-SCOLS:  屏幕總列數;

SY-MANDT: CLIENT NUMBER

SY-VLINE:  畫豎線

SY-ULINE:  畫橫線

运算符

循环控制

数据库操作

SELECT 是一个循环式语法,必须有ENDSELECT标识循环结束,在SELECT和ENDSELECT中间可以对中间的数据进行处理。

SELECT INTO TABLE 是把数据一次性取到表中,如果你需要处理的话,再用LOOP AT 来处理。因为SELECT INTO TABLE 是一次读取数据,之后是在内存中处理数据,所以在数据量大、需要进行的处理少的时候效率比循环方式高。

例1:

TABLES VBAK.

DATA: WA LIKE VBAK.

SELECT * FROM VBAK INTO WA WHERE VBELN <= ‘5000’ ORDER BY VBELN.

WRITE: /SY-DBCNT,

        WA-VBELN.

ENDSELECT.

WRITE /SY-DBCNT.

WRITE ‘RECORDS FOUND’.

例2:

1)先自定义一个结构ST_SCARR,

2)以结构ST_SCARR定义一个工作区WA_SCARR, 

3)用”LIKE TABLE OF”从工作区WA_SCARR定义一个内表IT_SCARR. 

4)用SELELT语句从数据库表SCARR中读取数据. 

5)用”CORRESPONDING FIELDS OF TABLE ”给内表IT_SCARR字段进行同名输值. 

6)用”LOOP AT…TO…”把内表中的数据逐条传给工作区,最后对工作区的数据进行输出. 

TYPES: BEGIN OF ST_SCARR, 

           CARRID TYPE SCARR-CARRID, 

           CARRNAME TYPE SCARR-CARRNAME, 

           CURRCODE TYPE SCARR-CURRCODE, 

           URL TYPE SCARR-URL, 

       END OF ST_SCARR. 

DATA: WA_SCARR TYPE ST_SCARR, “wa

      IT_SCARR LIKE TABLE OF WA_SCARR. “itab 

SELECT CARRID CARRNAME CURRCODE URL 

        FROM SCARR 

        INTO CORRESPONDING FIELDS OF TABLE IT_SCARR. 

LOOP AT IT_SCARR INTO WA_SCARR. 

   WRITE: /1(3) WA_SCARR-CARRID, 

           5(20) WA_SCARR-CARRNAME, 

           26(5) WA_SCARR-CURRCODE, 

           32(30) WA_SCARR-URL. 

ENDLOOP.

Subroutines

 

Event Block

Report Programming

程序的模块化

*************************************************************

* macros

*

DEFINE xml.

  concatenate xmldata &1 into xmldata.

  write: / 'XML:', &1 color col_positive inverse.

END-OF-DEFINITION.

WRITE: /.

  xml ''.

日志

创建日志

      szal

添加message到日志对象

    

显示日志

    

保存日志

授权对象

    授权对象层次关系:授权对象分类->授权对象->授权对象字段

创建授权对象字段 SU20

创建对象 SU21 

选择对象类别

步骤:

su20权限字段

su21权限对象

su01创建用户

pfcg创建角色

su53查看权限对象

BAPI

SAP增强

Change request

文档

ABAP常用开发技术讲义

基本数据类型REPORT(报表)报表程序的主要作用是从数据库中抓取数据通过整理陈列出来,给企业高层或具有相关需求的人员查看。如无特殊需求,此类程序一般不需客制screen、menu、title。        A、ABAPLIST(最简单的一种报表程序,显示在屏幕上的数据及格式都通过ABAP中的WRITE语句实现,开发工具:SE38)        B、ALVREPORT(TheALVGridControl(ALV=SAPListViewer)属于报表的一种高级形式,显示出来的报表整洁美观,具
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top