搜档网
当前位置:搜档网 › ABAP初学实例

ABAP初学实例

ABAP初学实例
ABAP初学实例

在这里我给初学者示范一个实例,讲讲abap开发报表的简单过程。程序的正确与否我们不与讨论,我们只关心这个程序的编写过程。

首先,在任何程序的开始阶段,我们都要确定将会用到的表。我们所讲的这个程序是查询采购订单是否完成的。将会用到以下三个表:EKKO,EKPO,EKET。

程序的开头为:

PROGRAM TEST.

TABLES: EKKO,EKET,EKPO.

现在我们已经定义了所要用到的表,接下来的工作就是定义内表和数据。内表是用来存储我们从上述三个表中查询到的数据。相关定义如下:

DATA: BEGIN OF ITAB OCCURS 0,

EBELN LIKE EKKO-EBELN,

MENGE LIKE EKPO-MENGE,

WEMNG LIKE EKET-WEMNG,

END OF ITAB.

现在我们已经定义完了内表ITAB。接着我们该定义数据了。数据就像C语言里的常量。其相关定义如下:

DATA: MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

WEMNG LIKE EKET-WEMNG,

EBELN LIKE EKPO-EBELN.

到这里我们已经把程序里要用到的数据和内表都定义好了。接着我们要做的工作就是选择屏幕。所谓选择屏幕是指程序运行时,你要从屏幕上输入的内容。比如说一个程序运行时,你输入一个物料号,就可以得到该物料的当前的库存数,那你就要编写一个屏幕以供查询者输入查询的条件。其相关定义如下:

SELECT-OPTIONS: EBELN1 FOR EKKO-EBELN,

BEDAT FOR EKKO-BEDAT,

EKGRP FOR EKKO-EKGRP.

PARAMETERS: R1 RADIOBUTTON GROUP RADI,

R2 RADIOBUTTON GROUP RADI,

R3 RADIOBUTTON GROUP RADI.

现在我们已经完成了程序的前期准备,接着就开始真正的到表里查询我们需要的相关数据了。其代码如下:

SELECT K~EBELN

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM EKKO AS K

WHERE K~EBELN IN EBELN1

AND K~BEDAT IN BEDAT

AND K~EKGRP IN EKGRP.

LOOP AT ITAB.

SELECT SUM( MENGE ) INTO ITAB-MENGE

FROM EKPO

WHERE EBELN EQ ITAB-EBELN.

MODIFY ITAB.

ENDLOOP.

LOOP AT ITAB.

SELECT SUM( WEMNG ) INTO ITAB-WEMNG

FROM EKET

WHERE EBELN EQ ITAB-EBELN.

MODIFY ITAB.

ENDLOOP.

然后我们需要定义输出界面。把我们查询到的数据输出时要有一个输出的格式,这样大家看起来才会方便。代码如下:

TOP-OF-PAGE .

WRITE: /'采购凭证号',22 '物料号码',

47 '采购订单数量',77 '收到货物数量',

95 '完成标志'.

ULINE AT /1(130).

END-OF-PAGE .

START-OF-SELECTION.

最后就是把我们查到的数据输出了。其实我举的这个程序到这一步时穿插了

一些查询,所以比较长。代码如下:

IF R1 = 'X'.

LOOP AT ITAB.

SELECT S~MATNR S~MENGE P~WEMNG S~EBELN

INTO (MATNR, MENGE, WEMNG, EBELN)

FROM EKPO AS S INNER JOIN EKET AS P

ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN WHERE S~EBELN = ITAB-EBELN.

IF ITAB-MENGE > ITAB-WEMNG.

WRITE: /2 EBELN,23 MATNR,41 MENGE,

71 WEMNG,97 '否'.

ULINE AT /1(130).

CLEAR: EBELN,MATNR,MENGE,WEMNG.

ENDIF.

ENDSELECT.

ENDLOOP.

ELSEIF R2 = 'X'.

LOOP AT ITAB.

SELECT S~MATNR S~MENGE P~WEMNG S~EBELN

INTO (MATNR, MENGE, WEMNG, EBELN)

FROM EKPO AS S INNER JOIN EKET AS P

ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN WHERE S~EBELN = ITAB-EBELN.

IF ITAB-MENGE <= ITAB-WEMNG.

WRITE: /2 EBELN,23 MATNR,41 MENGE,

71 WEMNG,97 '是'.

ULINE AT /1(130).

CLEAR: EBELN,MATNR,MENGE,WEMNG.

ENDIF.

ENDSELECT.

ENDLOOP.

ELSE.

LOOP AT ITAB.

SELECT S~MATNR S~MENGE P~WEMNG S~EBELN

INTO (MATNR, MENGE, WEMNG, EBELN)

FROM EKPO AS S INNER JOIN EKET AS P

ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN WHERE S~EBELN = ITAB-EBELN.

IF ITAB-MENGE > ITAB-WEMNG.

WRITE: /2 EBELN, 23 MATNR,41 MENGE,

71 WEMNG,97 '否'.

ULINE AT /1(130).

CLEAR: EBELN,MATNR,MENGE,WEMNG.

ENDIF.

ENDSELECT.

ENDLOOP.

ENDIF.

LOOP AT ITAB.

IF R3 = 'X' AND ITAB-MENGE <= ITAB-WEMNG.

SELECT S~MATNR S~MENGE P~WEMNG S~EBELN

INTO (MATNR, MENGE, WEMNG, EBELN)

FROM EKPO AS S INNER JOIN EKET AS P

ON S~EBELP = P~EBELP AND S~EBELN = P~EBELN WHERE S~EBELN = ITAB-EBELN.

WRITE: /2 EBELN,23 MATNR,41 MENGE,

71 WEMNG,97 '是'.

ULINE AT /1(130).

CLEAR: EBELN,MATNR,MENGE,WEMNG.

ENDSELECT.

ENDIF.

ENDLOOP.

这时程序就结束了。其实举这个例子是想让大家知道ABAP开发报表的一个常规流程,并不是讲什么技巧之类的,希望能对初学者有点用。抛砖引玉!

abap123入门教材(中文)

1. ABAP/4 Introduction Introduction ABAP/4(Advanced Business Application Programming)是SAP/R3目前唯一的系统发展工具, 属 4GL, 语法比较近似Visual Basic或JAVA, 和传统third-generation 语言, 如C,PASCAL 有很大不同, 在程序模块(Program Structure Module)可分以 下三个部分: 1.Sequential coding within processing block 与一般语言语法近似, 如IF,WHILE等, 但并没有GOTO叙述 2.Reports 呼叫一个独立的事件(Depending Event), 读取database 产生数据列表 3.Dialog 屏幕参数输入的对话框, 专门处理database 读取或异动的tranaction process Basic Languange Overview 1.data element 宣告方式, 如数值, 字符数据变量宣告 2.操作数(operate)使用, 如+ - * / 3.Control element使用, 如Boolean 值 4.特殊数据格式, 如日期与时间 5.字符串字料处理function, 如部分字符串的截取 6.子程序或自定函数的呼叫 7.SQL语法使用 8.数据结构的使用, 如process internal table的宣告与使用 Reports Overview 1.Reports Task, 如报表屏幕预览或打印机打印的选择 2.Reports 模块是一个Stand-along 程序, 3.database读取方式, 如可定义logical database(与磁盘的physical storage对映) 4.报表数据的计算与产生 5.报表的输出 Dialog Overview 1.专处理database 的读取与异动, 如使用SQL 指令 2.Dialog 不是一个Stand-Along Progarm, 使用transaction code来产生屏幕对话框 3.由flow logic 控制, flow logic分成PBO(Process Before Output)与PAI(Process After Input)

SAP ABAP ALV基础知识实例讲解

ALV知识 Xiaogangh 一、ALV相关概念 ALV――ABAP LIST VIEWER,这里我姑且称之为ABAP表单浏览器,用它可以标准化,简单化R/3系统中的表单,它可以提供给用户一个统一的表单格式以及用户接口。 ALV即能显示简单表单(SIMPLE LIST)又能显示有序表单(SEQUENTIAL LIST): ●简单表单(SIMPLE LIST)包含一系列不分层次的(NON-HIERARCHICAL),用户 自定义的列。 ●层次表(即有序表SEQUENTIAL LIST)包含列表头以及它的子行,一个列表头的 关键行能带出它下面的一些列项目(我们自己理解的时候可以想到BOM表的层次结构)。 ●我们还可以在简单表单以及关联表单中显示小计和总计 二、结合一个具体的实例来看ALV的功能 首先我们看下图中的这个ALV的布局(这是一般ALV程序表单的典型布局): 根据上面对ALV的直观形象,下面将屏幕上的区域划分成几块,分别来解释它的作用:1.快捷工具栏(如下图)

细节按钮,你首先必须选中列表中的一行,然后点击它的话,就会弹出一个窗口,显示选中行的细节内容。(另外:你双击你要选择的行,也可以显示细节) 按升序排列,首先选中一列,然后再点击它,就可以看到该列是按照升序重新排列。 按降序排列,首先选中一列,然后再点击它,就可以看到该列是按照降序重新排列。 设置过滤器,通过设置它可以达到筛选的目的,以列名称作为筛选的筛选标准,填入过滤器相应的标准值,然后就可以筛选出满足自己条件的记录。 打印预览,点击它之后,就可以预览一下将要打印内容的布局情况。 Microsoft Excel,调用MS的Excel到当前ALV的列表显示区域。(前提:必须安装了MS的Excel) 字处理,字处理的相关设置。 本地文件,将当前表单存储到本地机器上,有几种供选择的存储格式。 邮件收件人,给系统内用户发邮件 图形,点击它可以根据表单情况绘制相关图表。 更改布局,点击它可以对表单中的列项目排列次序的互换,删减等。 选择布局,从已经保存的布局中选择自己满意的布局。 保存布局,对于自己满意的布局,可以通过点击它来将布局保存起来。 2.表单标题区 这个区域主要是用来显示一些抬头信息(总揽信息),类似于WORD中的页眉。我们在使用的时候根据需要来进行相关填写。 3.表单显示区

abap基本语法汇总

abap 基本语法汇总 数据类型和对象 在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。 在程序中必须声明要使用的全部数据对象。声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。 1.1基本数据类型 对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。 类型P数据允许在小数点后有数字。有效大小可以是从1到 16字节的任何值。将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。在小数点后最多允许14个数字。 1.2系统定义的数据对象

abap 基本语法汇总 1.3确定数据对象的属性 如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRIBE语句。语法如下: DESCRIBEELD [LENGTHS〉] [TYPE [COMPONENTS^] [OUTPUT-LENGTH ] [DECIMALS ] [EDIT MASK ]. 将由语句的参数指定的数据对象的属性写入参数后的变量。 DESCRIBE FIELDS语句具有下列参数: 1.3.1确定字段长度 要确定数据对象的长度,利用DESCRIBFIELD语句使用LENGTH 参数,如下所示: DESCRIBE FIELD LENGTH . 系统读取字段<f>的长度,并将值写入字段<1>

abap 基本语法汇总 1.3.2 确定数据类型 要确定字段的数据类型,利用DESCRIBE FIELD语句使用TYPE 参数,如下所示: DESCRIBE FIELD TYPE [COMPONENTS ]. 系统读取字段的数据类型,然后将值写入字段。 除返回预定义数据类型C、D、F、I 、N、P、T 和X 外,该语句还返回 s 对于带前导符号的两字节整型 b 对于无前导符号的一字节整型 h 对于内表 C 对于组件中没有嵌套结构的结构 C 对于组件中至少有一个嵌套结构的结构 1.3.3 确定输出长度 要确定字段的输出长度,利用DESCRIBE FIELD语句使用OUTPUT-LENGTH数,如下所示: DESCRIBE FIELD OUTPUT-LENGTH . 系统读取字段的输出长度,并将值写入字段<0>。 1.3.4 确定小数位 若要确定类型P字段的小数位的个数,利用DESCRIBE FIELD语句使用DECIMALS参数,如下所示: DESCRIBE FIELD DECIMALS . 系统读取字段的小数个数,并将值写入字段。 1.3.5 确定转换例程 要确定ABAP/4 词典中某字段的转换例程是否存在,如果存在,名称是什

sap ABAP开发入门到进阶

SAP-A BAP 开发入门到进阶 基础篇 - 以简短的篇幅介绍最基本的语法 增强篇 - 介绍了常用的ABAP技术 希望此书对想从事ABAP开发的读者有相当帮助。 一.基础篇 1.什么是ABAP ? 了解一下ABAP的发展历史是必要的,ABAP产生的最初的目的是用以生成简单打印报表程序,我们知道SAP最初是为解决财务实时数据处理问题 的,ABAP(Advanced Business Application Programming->高级业务应用编程语言)现在用于编写SAP AG的几乎全部产品源代码. 严格地讲,ABAP/4不仅仅是一个开发工具,而且是一套完整的client/server开发环境,这很好理解,微软的Visiual Studio是一开发环境,VB,VC++等是开发工 具.ABAP开发环境包含支持程序开发的一些函数和包等. 如图1-1,是SAP开发环境的一个三层架构的例图,三层(多层)的概念也不新鲜,比如在安装SAP时也可将DB instance安在一台server, Central instance在另一台所谓的Application server(我想这应是相关SAP基础系统包括各种应用程序所在),而通常客户端安装的SAP Logon Front End,SAP会话管理器等是所谓的表示层,它通过TCP/IP,SAP演示协议或RFC和应用服务器进行数据传输,用户看到的只是处理后的数据返回. 和Delphi的三层逻辑相近,在应用层包含多个组件象ABAP开发平台,身份验证,系统管理维护等用以处理会话,更新,排队,网关,数据层处理native 和Open SQL等(这是从内部机制方面看),SAP各模块应用的业务逻辑都在应用层被处理(从用户角度)然后结果被返回.

ABAP语法完整版

SAP ABAP / 4 基础知识学习 数据类型 C :字符串 D :日期型格式为 YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变量声明 DATA [] [][decimals] 变量名称 变量类型及长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2,

END OF PERSON. 另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 关键字 声明的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [] [] [] 系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: 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: 画横线 TYPE 关键字 用来指定资料型态或声明自定资料型态 Example: TYPES: BEGIN OF MYLIST,

SAP ABAP OO面向对象入门实例

*& Report Y_TEST_A * *&---------------------------------------------------------------------* *& 简单ABAP对象 * *&---------------------------------------------------------------------* REPORT y_test_a . *&---------------------------------------------------------------------* *& Class simpleobj *&---------------------------------------------------------------------* * Text *----------------------------------------------------------------------* CLASS simpleobj DEFINITION. PUBLIC SECTION. METHODS: show_text. PRIVATE SECTION. DATA text(100) TYPE c VALUE 'This is my first ABAP object.'. ENDCLASS. "simpleobj *&---------------------------------------------------------------------* *& Class (Implementation) SIMPLEOBJ *&---------------------------------------------------------------------* * Text *----------------------------------------------------------------------* CLASS simpleobj IMPLEMENTATION. METHOD show_text. WRITE text. ENDMETHOD. "show_text ENDCLASS. "SIMPLEOBJ * Global Data Declaratioin DATA ob_app TYPE REF TO simpleobj. START-OF-SELECTION. CREATE OBJECT ob_app. CALL METHOD ob_app->show_text.

ABAP基本语法学习关键语句的写法(参考模板)

ABAP基本语法学习关键语句的写法 内表建立过程: 1、声明一个结构体 2、用声明好的结构体作为工作区,声明一个内表 内表名称like standard table of 结构体名称, 内表名称like sorted table of 结构体名称, 内表名称like harshed table of 结构体名称。 后面可以用到with 选项来进行关键字的声明。基本语法如下: DATA itab { {TYPE tabkind OF [REF TO] type} | {LIKE tabkind OF dobj} } [WITH key] [INITIAL SIZE n] [WITH HEADER LINE] [VALUE IS INITIAL] [READ-ONLY]. DATA rtab {TYPE RANGE OF type}|{LIKE RANGE OF dobj} [INITIAL SIZE n] [WITH HEADER LINE] [VALUE IS INITIAL] [READ-ONLY]. 此语句可以定义一个范围表,在操作数据库时可以用来作为判断数据选择的条件描述。3、向内表中插入数据,插入数据可以用insert数据into内表语句或者是 append数据to内表语句。可以插入整个内表到另一内表insert lines of 内表名称 into table 另一内表名称。亦可以进行累加插入:collect 数据into 内表名称。相同的数据进行累积。 4、修改内表数据,利用modify 关键字,modify 内表名称 from 数据(用结构 体表示的数据)。可以修改多行,modify 内表名称 from 数据 transporting 关键字 where 条件。 5、读内表数据的几种操作方法: 用Include来构造一个结构体 INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } [AS name [RENAMING WITH SUFFIX suffix]]. TYPES: BEGIN OF t_day, work TYPE c LENGTH 8, free TYPE c LENGTH 16, END OF t_day. DATA BEGIN OF week. INCLUDE TYPE t_day AS monday RENAMING WITH SUFFIX _mon.

ABAP基础知识(完整版)---自学

ABAP基础知识(完整版)-上 SAP ABAP / 4 基础知识学习 数据类型 C :字符串 D :日期型格式为YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变量声明 DATA [] [][decimals] 变量名称 变量类型及长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. 另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 关键字 声明的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [] [] [] 系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code

ABAP学习方法

sap学习总结信管0911 杨钏 2011-12-2 sap学习总结 立谈之间,来集团参加erp项目已近四个月,通过集团erp项目组精心组织的培训,经 过自己的努力学习,我对erp的认识有了很大程度的转变。从一开始的不了解,带着对很多 专业名词及模块功能的疑问,到现在融入到erp项目组后,被sap庞大的功能所震撼;从一 开始认为sap仅仅是一种应用软件,跟其他公司的erp差不多,到现在深刻的地体会到sap 在企业管理中的重要位置;从一开始对sap可能带来的不便以及人力、财力、时间成本产生 抵触情绪,到现在对sap产生依赖心理。这些对sap认识的转变,让我意识到作为一名关键 用户和信息人员,为确保erp的上线成功,应该如何发挥自身的作用。 5月9日,初步接触到了sap软件。五月份到七月份我初步学习sap中abap语言,起初 感觉这跟平时学校学习的语言差不多,但是接触的越久,我就越深深的震撼abap语言的严 谨性,以及abap编辑语言在sap中的重要的位置,对其他工作模块工作有非常重要的影响。 通过这段时间abap语言的学习后,我进入技术组协助技术组中的各位老师,解决些小问题。 工作一段时间之后,我才发觉,erp前期项目的工作量大大超乎我的想像,它的重要性也让 人感到紧张。在每天的工作中,大家加班加点,热火朝天的讨论业务流程问题,以及程序代 码如何实现业务需求,有时候为了一个观点不同而争论不休,有时候又为达成共识而言欢高 兴。大家良好的沟通交流,让我们这些初识者更积极主动地参与进来。 在技术组组工作了近两周之后,为了让我们全面认识sap,从而更深入地开展工作,erp 项目组办公室组织人员进行了为期一周的sap开发语言abap的培训。对于我们来说,掌握 abap编程语言是深入理解sap软件知识要领的敲门砖。通过对abap的学习,我对sap的后 台有了更进一步的了解,也为下一步深入接触实际操作打下了基础。在basis组织的讲座和 培训中,我对basis有了一定了解,意识到abap对做好sap系统的后台规划、安装、配置、 管理、监控、维护、调优等工作的重要性。通过此次培训,大家对sap有了些许的初步了解, 对应该做好哪些工作有了初步的认识。 接下来说说,近半年我所学到的一些abap知识,报表显示alv alv是系统的一种网格的 显示方式,这种方式带有汇总\排序\筛选等功能,alv格式的数据是以单元格为单位显示,不 象一般的写屏方式拷出来或是导出成文件不同列的内容粘在一块,这种方式便于数据导出来 放在电子表格里进行加工. alv: abap list view / sap list view , 在sap报表数据输出使用最广泛的技术基于gui,在展现层处理 操作简单 较强的标准功能。排序、过滤、计算等 有三个版本的技术实现function ->grid->om bdc技术 首先简单解释一下bdc(batch data conversion): 在sap系统里,由于某种原因,可能需要重复输入数据,(数据不同,但是操作是相同的, 典型的情形就是切换系统的时候,旧系统的数据需要导入sap),大致过程不外乎是这样:输 入一个t-code, 进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的checkbox选项等),点 执行或者确定按钮, 进入另一个屏幕,在某些字段输入值(`也可能是标注checkbox选中或者不选中)或者 修改这些字段里的值。

abap基本语法汇总情况

一数据类型和对象 在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。 在程序中必须声明要使用的全部数据对象。声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。 1.1 基本数据类型 对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。 类型 P 数据允许在小数点后有数字。有效大小可以是从 1 到 16 字节的任何值。将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。在小数点后最多允许14 个数字。 1.2 系统定义的数据对象

1.3 确定数据对象的属性 如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRIBE 语句。语法如下: DESCRIBE FIELD [LENGTH ] [TYPE [COMPONENTS ]] [OUTPUT-LENGTH ] [DECIMALS ] [EDIT MASK ]. 将由语句的参数指定的数据对象的属性写入参数后的变量。 DESCRIBE FIELDS 语句具有下列参数: 1.3.1 确定字段长度 要确定数据对象的长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD LENGTH . 系统读取字段的长度,并将值写入字段。 1.3.2确定数据类型 要确定字段的数据类型,利用DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:DESCRIBE FIELD TYPE [COMPONENTS ]. 系统读取字段的数据类型,然后将值写入字段。 除返回预定义数据类型 C、D、F、I、N、P、T 和 X 外,该语句还返回 XXX s 对于带前导符号的两字节整型 XXX b 对于无前导符号的一字节整型 XXX h 对于表 XXX C 对于组件中没有嵌套结构的结构 XXX C 对于组件中至少有一个嵌套结构的结构 1.3.3确定输出长度 要确定字段的输出长度,利用 DESCRIBE FIELD 语句使用 OUTPUT-LENGTH 参数,如下

ABAP入门

ABAP/4语言入门 郑州三全食品股份有限公司信息部 内部培训教材 作者:强晟 日期:2006年8月2日

1.ABAP/4入门 简介 ABAP/4(AdvancedBusinessApplicationProgramming)是SAP/R3目前唯一的系统开发 工具,属4GL(第四代语言),语法比较近似VisualBasic或JAVA,和传统的第三代语言,如C、PASCAL有很大不同,在程序模块(ProgramStructureModule)可分以下三个部分: 1.过程块内的顺序编码 与一般语言语法近似,如IF,WHILE等,但并没有GOTO语法 2.报表 调用一个独立的事件(Depending Event),读取数据库产生数据列表 3.对话框 屏幕参数输入的对话框,专门处理数据库读取或更改的事务过程 基本语言概览 1.数据元素声明方式,如数值,字符数据变量声明 2.操作符使用,如+-*/ 3.控制元素使用,如Boolean值 4.特殊数据格式,如日期与时间 5.字符处理函数,如部分字符串的截取 6.子程序或自定函数的调用 7.SQL语法使用 8.数据结构的使用,如过程内表的声明与使用 报表概览 1.ReportsTask,如报表屏幕预览或打印机打印的选择 2.Reports模块是一个独立的程序 3.数据库读取方式,如可定义逻辑数据库(与磁盘的物理存储对应) 4.报表数据的计算与产生 5.报表的输出

对话框概览 1.专处理数据库的读取与更改,如使用SQL命令 2.对话框不是一个独立程序,使用事务码来产生屏幕对话框 3.由流程逻辑控制,流程逻辑分成PBO(ProcessBeforeOutput,输出前过程)与 PAI(ProcessAfterInput,输入后过程) 2.开始编程 2.1ABAP/4编辑器 创建ABAP/4程序 使用ABAP工作台撰写程序(选择工具->ABAP/4工作台,事务码S001),屏幕如下: 可分成: 1.ABAP/4编辑器:针对简单的报表或程序,仅使用几个组件或不使用 2.对象浏览器:针对复杂的报表或程序,如对话事务模块(Dialog TransactionModule) 的编写

SAP ABAP_4编程语法汇总(中文版)

SAP ABAP_4编程语法汇总(中文版) 本文是由塞依教育编辑整理,了解更多SAP培训信息,请进入https://www.sodocs.net/doc/2f4145393.html,/news/一、Data Type (数据类型) C: 字符(串), 长度为1, 最大有65535 BYTES, 初始值为: space,例: ‘M’; D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’. F: 浮点数, 长度为8, 例如: 4.285714285714286E-01 I: 整数范围 :-2^31 ~ 2^31-1 N: 数值组成的字符串: 011, ‘302’. P: packed 数,用于小数点数值,例如: 12.00542; T: 时间, 格式为HHMMSS,例如: ’14:03:00’, ’21:30:39’. X: 16进制数, 例如‘1A03’. 二、变量宣告 变量宣告包含name, length, type, structure等,语法如下: DATA [] [] [] 其中: :变量名称,最长30个字符,不可含有 + , . , : ( ) 等字符; :变量类型及长度; :初值 :小数位数 Example 1: DATA: COUNTER TYPE P DECIMALS 3, NAME (10) TYPE C VALUE ‘Delta’, S_DATE TYPE D VALUE ‘19991203’. Example 2: DATA: BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE P DECIMALS 2, END OF PERSON. 另外,有关DATA宣告的指令还有: CONSTANTS(宣告常数)、STATICS(临时变量宣告). 三、系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的字段存放系统变量,常用的系统变量有: 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的总笔数

ABAP4基础

ABAP4基础 一概念: 数据类型: 1 不占用内存空间。 2 描述了数据对象的属性。 3 用户可以自定义。 数据对象: 1占用内存空间。 2 一个特殊的类型。 3 是数据类型的具体实例。 //就是类型和变量ex:int i; 二定义数据对象 通过指定预定义的ABAP类型 DA TA: TYPE 例如:DATA: counter TYPE I. 2 通过指定自定义类型 DA TA: TYPE < user-defined-type> 例如:DATA: splight TYPE my_struc. 3 通过指定词典对象 DA TA: LIKE 例如:DATA: data LIKE sy-datum. 4 通过指定一个已经存在的数据对象 DATA: LIKE 例如:DATA: mycounter LIKE counter. //定义变量的时候要在前面加上DATA:变量的数据类型不同,中间的关键词也不相同 如果数据类型是预定义的或者自定义的,关键词用TYPE 如果数据类型是词典对象或者是已经存在的数据对象,关键词用LIKE 三在ABAP/4中按结构和定义对数据类型分类。数据类型是: 基本的(非结构化的)或结构化的。 预定义的或用户定义的。

因此,有四类数据类型。预定义数据类型的名称是固定的。用户定义的数据类型的名称由程序员在程序中定义。 1 预定义的基本的数据类型: ABAP/4 包含8 个预定义基本数据类型。 注意: 类型I 数据 类型I 数据的数值范围是-2**31 到2**31-1 并且仅包括整数。 对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。 类型I 数据可用于计数器、项目号、索引和时间期段等。

SAP必备基础语法

ABAP基础知识 数据类型 C :字符串 D :日期型格式为YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变数宣告 DATA [] [][decimals] 变数名称变数类型及长度初值小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. 另外,有關DATA宣告的指令還有: CONSTANTS(宣告常數)、STATICS(臨時變數宣告). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 敘述 宣告的變數僅在目前的程式中使用, 結束後會自動釋放 語法: STATICS [] [] []

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: 畫橫線 TYPE 敘述 用來指定資料型態或宣告自定資料型態 Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYLIST. DATA LIST TYPE MYLIST. LIKE 敘述 跟TYPE敘述使用格式相同, 如 DATA TRANSCODE LIKE SY-TCODE. 不同的是LIKE 用在已有值的資料項, 如系統變數, 而TYPE敘述則是用 在指定資料型態。 *-------------------------------------------------------------------------------------* 输出 一. WRITE 語句 ABAP/4用來在屏幕上輸出資料的指令是WRITE指令,例如: WRITE: 'USER NAME IS:', SY-UNAME.

abap开发基础知识总结

1.内表的定义 通过关键字DATA对内表进行创建,内一的定义可以直接参考结构体或者其它内表及透明表,也可以直接定义字段,其中关键字如下: UNIQUE|NON-UNIQUE:指定关键字,只能应用于排序表或者哈希表。 INITIAL SIZE n:指定初始化内表大小。 WITH HEADERLINE:定义内表是否有表头。 具体定义有以下几种方式: DATA <内表名> TYPE <结构类型> WITH[UNIQUE|NON-UNIQUE] [INITIAL SIZE n] [WITH HEADER LINE]。 DATA <内表名> LIKE TABLE OF <内表或者透明表> WITH[UNIQUE|NON-UNIQUE] [INITIAL SIZE n] [WITH HEADER LINE]。 DATA BEGIN OF itab OCCURS n, ...... END OF itab [VALID BETWEEN f1 AND f2]。 2.内表的赋值 上面曾介绍过,内表分为有无HEADER LINE两种。对于有HEADER LINE的内表,可以通过填充HEADER LINE数据后或通过外部的Work Area向内表存储空间中追加数据,相关语法如下: APPEND( into) . 3.内表数据管理 3.1.内表的清空 CLEAR :仅清空HEADER LINE,对内表数据存储空间不影响。 REFRESH :清空内表数据存储空间,对HEADER LINE不影响。

REFRESH FROM TABLE:清空内表存储空间,填充从数据库表所获数据。 FREE :清空内表数据存储空间,对HEADER LINE不影响。 3.2.INSERT(向内表插入数据) 可以按内表的具体字段向表中插入一行或者多行数据,具体语法如下:INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX idx]. INSERT [wa INTO|INITIAL LINE INTO] TABLE itab. INSERT LINES OF itab1 [FROM idx] [TO idx2] INTO itab2 [INDEX idx3]. 3.3.MODIFY(直接修改内表数据) 按内表位置或者具体内表字段值相等条件修改内表数据。 MODIFY itab [FROM wa] [INDEX idx][TRANSPORTING f1...fn] WHERE cond. 3.4.COLLECT(内表数据分类汇总) 将内表中相同的字段合并,若有类型为I的字段,则将其值加总。 COLLECT [wa INTO] itab. 3.5.SORT(内表数据排序) 对内表进行排序,可以指定具体的排序字段、排序方式(升/降),语法如下:SORT itab [BY f2 f2...fn] [ASCENDING/DESCENDING] 3.6.READ(读取) 依据具体行数或字段值等条件读取某一内表的数据。 READ TABLE itab FROM wa. READ TABLE itab WITH [TABLE] KEYk1=v1...kn=vn [BINARY SEARCH]. READ TABLE itab INDEX i.

abap语法

ABAP 1 了解ABAP 2 ABAP语法概述 3 ABAP语言的数据类型 4 ABAP的语法格式 5 结构类型和结构体 6 内表 7 数据库操作 ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。 语法概述 ABAP基本语法特点 由各自独立的语句构成。 每个语句的第一个单词必须是ABAP关键字。 单词之间至少要用一个空格分隔。 每个语句结束必须要用句号。 一个语句可以跨多行,只要不遇到句号,就认为是一个延续的语句。 可以把多个语句放在一行。 ABAP不区分大小写,关键字和用户操作数都一样,为了便于阅读,一般把关键字大写,而操作数小写。 如果连续多行的第一个关键字相同,可以使用链语句方式减少输入 data: id type I. data: name type c. 可写为: data: id type I , name type c. 注释: 注释行由第一列的星号(*)开头,并且必须写在第一列,前面不能有空格。 在行末的注释用双引号(”)作为前导。 data: id type i. “ 定义一个对象num数据类型为I ABAP的命名规则 使用至少1个但不超过8个字符。 不要使用下列字符: 句点(.); 逗号(,);

空格( ); 括号‘(’‘)’; 单引号(‘); 双引号(“); 等号(=); 星号(*); 百分号(%); ABAP数据类型 (八种基本数据类型) D :日期类型,格式为YYYYMMDD,长度为8 T :时间类型,格式为HHMMSS,长度为6 I :整数类型,默认长度为4,初始值为0 F :浮点类型,默认长度为8,初始值为0,常用于计算 C :字符串类型,定义变量时指定字符个数 N :数字字符串类型,定义变量时指定数值字符个数 X :字节序列类型,定义变量时指定字节数 P(压缩号) :允许的长度为1 到16 个字节,系统会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单 位的场合. 定义方法: [f1] type I. [f2] type p decimals [num]. [f3] type f. 如: DATA number(10) type p value '9.876543210' decimals 9. 输出:9.876543210 如果decimals 8 输出: 9.87654321 ABAP运算 数值运算(在ABAP中数学表达式可以任意多层嵌套) 算术运算 ? 二元操作符包括: –+ :加法 – - :减法 –* :乘法 –/ :除法 –** :乘方 –DIV :整除忽略余数 –MOD :取模 ? 需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少 用一个空格分开。 (1+2)*3 应该写成( 1 + 2 ) * 3 注:ABAP中不能使用”&”或”+”做连接(详参见computer语句的关键字文档 数学函数

ABAP_4语法集锦(中文版)

§. ABAP/4 DATA ELEMENT 一.Data Type (数据类型) C: 字符(串), 长度为1, 最大有65535 BYTES, 初始值为: space,例: ‘M’; D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’. F: 浮点数, 长度为8, 例如: 4.285714285714286E-01 I: 整数范围 :-2^31 ~ 2^31-1 N: 数值组成的字符串: 011, ‘302’. P: packed 数,用于小数点数值,例如: 12.00542; T: 时间, 格式为HHMMSS,例如: ’14:03:00’, ’21:30:39’. X: 16进制数, 例如‘1A03’. 二.变量宣告 变量宣告包含name, length, type, structure等,语法如下: DATA [] [] [] 其中: :变量名称,最长30个字符,不可含有 + , . , : ( ) 等字符; :变量类型及长度; :初值 :小数位数 Example 1: DATA: COUNTER TYPE P DECIMALS 3, NAME (10) TYPE C VALUE ‘Delta’, S_DATE TYPE D VALUE ‘19991203’. Example 2: DATA: BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE P DECIMALS 2, END OF PERSON. 另外,有关DATA宣告的指令还有: CONSTANTS(宣告常数)、STATICS(临时变量宣告). 三.系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的字段存放系统变量,常用的系统变量有: SY-SUBRC : 系统执行某指令后,表示执行成功与否的变量,’0’表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间;

相关主题