BW相关ABAP基础知识Final.docx

上传人:b****6 文档编号:3046344 上传时间:2022-11-17 格式:DOCX 页数:16 大小:1.51MB
下载 相关 举报
BW相关ABAP基础知识Final.docx_第1页
第1页 / 共16页
BW相关ABAP基础知识Final.docx_第2页
第2页 / 共16页
BW相关ABAP基础知识Final.docx_第3页
第3页 / 共16页
BW相关ABAP基础知识Final.docx_第4页
第4页 / 共16页
BW相关ABAP基础知识Final.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

BW相关ABAP基础知识Final.docx

《BW相关ABAP基础知识Final.docx》由会员分享,可在线阅读,更多相关《BW相关ABAP基础知识Final.docx(16页珍藏版)》请在冰豆网上搜索。

BW相关ABAP基础知识Final.docx

BW相关ABAP基础知识Final

1.系统内部常用变量:

SY-UZEIT:

 当前系统时间;

SY-INDEX:

 当前LOOP循环过的次数

SY-TABIX:

 当前处理的是internaltable的第几笔

SY-TMAXL:

 Internaltable的总笔数

2.Tables关键字

用来声明TableWorkArea的数据

TABLES:

SPFL.

SELECT*FROMSPFL.

WRITE:

SPFL-MANDT,SPFL-CARRID,SPFL-CONNECTION.

ENDSELECT.

3.InternalTable的声明

3.1内表格式1

TYPES|DATAitab{TYPE|LIKE}tabkindOF{linetype|lineobj}[WITHkey][INITIALSIZEn].

Example:

DATAItab_CompanyLIKEHASHEDTABLEOFCompanyWITHUNIQUEKEYName.

3.2内表格式2

DATA:

BEGINOF OCCURS ,

      TYPE,

     [ TYPE,

       TYPE,

 ENDOF .

3.3内表格式3

DATA   OCCURS  [WITH HEADER LINE].

4.工作区及内表转换

1.工作区.程序对内表的操作不能直接进行,必须通过一种接口来传输,这个接口就是工作区(WorkArea).如果程序需要从关系数据库中取数据到内表各行中,必须先将数据读入工作区,然后把工作区中的数据赋给内表的行.工作区必须具有和内表的行一致或者可相互转换的数据结构.

2.表行头.在创建内表对象的同时可以隐式地定义一个同名工作区.创建了带表头的内表之后,可以认为程序中存在两个数据对象,一个是内表,另一个与内表结构相同的结构体.如果一个语句中,该名称同时代表内表或同名表的工作区,则需要在内表名称之后加“[]”。

内表名称之后有‘[]’

4.1APPEND语句

格式1:

APPENDTO

格式2:

APPENDLINESOF[FROM][TO]TO.

的元素加入至中,可选取自的范围.

4.2COLLECT语句

格式:

COLLECT[INTO]

COLLECT指令也是将元素加入Internaltable中,与APPEND的区别是:

COLLECT指令在非数值栏位相同的情况下,将数值栏位汇总

4.3INSERT语句

格式:

INSERT[INTO][INITIALLINEINTO][INDEX]

INSERTLINESOF[FROMTO]INTOINDEX

其中[INDEX]:

为internaltable的记录号.(新加入的元素放在此记录前面)

4.4DELETE语句

DELETEitabINDEXidx.

DELETETABLEitabFROMwa.

DELETETABLEitabWITHKEYk1=f1…ki=fi.

DELETETABLE[FROMn1][TOn2][WHERE].

DELETEADJACENTDUPLICATESFROMitab删除重复数据

5.内表操作

5.1LOOP语句

格式一:

LOOPAT[INTO][FROMTO][WHERE]

ENDLOOP.

Example:

LOOP AT ITAB INTO LINE WHERE COL1>100.

WRITE:

 / SY-TABIX,LINE-COL1.

ENDLOOP.

仅读取COL1>100的元素

5.2READ语句

READTABLE[INTO][INDEX/WITHKEY]

Example:

DATA:

BEGINOFITABOCCURS10,

      COL1TYPEI,

      COL2TYPEI,

ENDOFITAB.

 DO10TIMES.

 ITAB-COL1=SY-INDEX.

 ITAB-COL2=SY-INDEX*2.

 APPENDITAB.

ENDDO.

READTABLEITABINDEX3.

(或者:

READTABLE ITABWITHKEYCOL1=3.)

WRITE:

/'ITAB-COL1=',ITAB-COL1,'ITAB-COL2=',ITAB-COL2.

执行结果同样是:

ITAB-COL1=3

ITAB-COL2=6.

Example:

READ TABLE ITAB INTO LINE INDEX 5

读取ITAB的第5个元素资料,放入LINE的栏位中根据栏位内容寻找

语法2:

READ TABLE  INTO 

Example:

ITAB-COL1='ABC'.

READ TABLE ITAB INTO LINE.

找出ITAB中COL1栏位内容是ABC的元素,找到的值放入LINE中

若找到SY-SUBRC传回0,找不到则传回4,必须声明有workarea.

5.2.1BinarySearch

二分查找将会代替线性查找,这将减少对大型表的搜索时间(至少在100以上的数据)。

对于二分查找,表必须根据特殊的搜索关键字来升序排列,否则这个搜索不会找到正确的行。

5.3MODIFY语句

修改internaltable中的值

格式:

MODIFY[FROM][INDEX][TRANSPORTING…][WHERE]

如果只希望更新部分字段的值,可以使用TRANSPORTING选项.MODIFYitabFROMwaTRANSPORTINGf1,f2…WHEREcond.使用WHERE选项修改多行.

Example:

READTABLEITABINDEX3.

LINE-COL1=29.

MODIFYITABFROMLINETRANSPORTINGCOL1.

将第三笔记录的COL1栏位的值修改为29.

5.4MOVE语句

整体复制内表.如果想将内表的全部内容复制到另一个内表中,可以进行整体赋值操作,使用MOVE或”=”.MOVEitab1TOitab2.Itab1=itab2.

6.OPENSQL

6.1SELECT…ENDSELECT语句

SELECT[INTO][FROM][WHERE]

              [GROUPBY][ORDERBY]

其中:

指定要抓取的栏位

     将读取的记录存放在workarea中

     指定从那个TABLE中读取资料

     抓取资料的条件

     指定按那些栏位分组

     排序的栏位及方式

相关的系统变量:

    SY-SUBRC=0 表示读取数据成功

         <>0表示未找到符合条件的记录

    SY-DBLNT:

被处理过的记录的笔数.

相关的命令:

    EXIT.退出循环.

    CHECK.如果逻辑表达式成立,则继续执行,否则,开始下一次循环。

SELECT….ENDSELECT.是循环方式读取记录的。

Example:

TABLESMARD.

SELECT[DISTINCT]*FROMMARDWHEREMATNR='3520421700'.

   .

ENDSELECT.

(从MARD中抓取所有料号=3520421700的资料)

6.1.1SELECTSINGLE语句(单行全部数据)

selectsingle*fromspfliintowa_spfliwherecityform=’singapore’andinto cityto=’beijing’. 

6.1.2SELECTSINGLE语句(单行指定字段)

selectsinglecarridconnidfromspfliinto(wa_carrid,wa_connid)wherecityform=’singapore’ andintocityto=’beijing’.

6.1.3SELECTSINGLE语句(选择相关字段)

selectsinglecarridconnid*fromspfliintocorrespondingfieldsof 

wa_spfliwherecityform=’singapore’andintocityto=’beijing’.

6.2SELECTINTO语句

◆将读取的记录放在workarea中,并且加入Internaltable中.

格式有:

  ...INTO

  ...INTOCORRESPONDINGFIELDSOF

  ...INTO(f1,...,fn)变量组.

  ...INTOTABLE

  ...INTOCORRESPONDINGFIELDSOFTABLE

  ...APPENDINGTABLE

  ...APPENDINGCORRESPONDINGFIELDSOFTABLE

SELECT ...INTO TABLE  PACKAGE SIZE

一次读取笔记录至

Example:

TABLES SPFLI.

DATA ITAB LIKE SPFLI OCCURS 10 WITH HEADER LINE.

SELECT * FROM SPFLI INTO ITAB PACKAGE SIZE 5. 一次读取5笔记录

6.3WHERE关系语句:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1