SAP基础知识学习整理Word格式.docx
- 文档编号:5799727
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:59
- 大小:32.69KB
SAP基础知识学习整理Word格式.docx
《SAP基础知识学习整理Word格式.docx》由会员分享,可在线阅读,更多相关《SAP基础知识学习整理Word格式.docx(59页珍藏版)》请在冰点文库上搜索。
.
S_DATETYPEDVALUE'
19991203'
BEGINOFPERSON,
NAME(10)TYPEC,
AGETYPEI,
WEIGHTTYPEDECIMALS2,
ENDOFPERSON.
另外,有關DATA宣告的指令還有:
CONSTANTS(宣告常數)、STATICS(臨時變數宣告).
CONSTANTSPITYPEPDECIMALS5VALUE'
3.14159'
STATICS敘述
宣告的變數僅在目前的程式中使用,結束後會自動釋放
語法:
STATICS<
c>
][<
]
系統專用變數說明
系統內部專門創建了SYST這個STRUCTURE,里面的欄位存放系統變數,常用的系統變數有:
SY-SUBRC:
系統執行某指令后,表示執行成功与否的變數,'
0'
表示成功
SY-UNAME:
當前使用者登入SAP的USERNAME;
SY-DATUM:
當前系統日期;
SY-UZEIT:
當前系統時間;
SY-TCODE:
當前執行程式的Transactioncode
SY-INDEX:
當前LOOP循環過的次數
SY-TABIX:
當前處理的是internaltable的第几筆
SY-TMAXL:
Internaltable的總筆數
SY-SROWS:
屏幕總行數;
SY-SCOLS:
屏幕總列數;
SY-MANDT:
CLIENTNUMBER
SY-VLINE:
畫豎線
SY-ULINE:
畫橫線
TYPE敘述
用來指定資料型態或宣告自定資料型態
Example:
TYPES:
BEGINOFMYLIST,
NUMBERTYPEI,
ENDOFMYLIST.
DATALISTTYPEMYLIST.
LIKE敘述
跟TYPE敘述使用格式相同,如
DATATRANSCODELIKESY-TCODE.
不同的是LIKE用在已有值的資料項,如系統變數,而TYPE敘述則是用
在指定資料型態。
输出
一.WRITE語句
ABAP/4用來在屏幕上輸出資料的指令是WRITE指令,例如:
WRITE:
'
USERNAMEIS:
SY-UNAME.
二.指定屏幕輸出位置
指定輸出位置的語句格式為:
[AT][/][<
pos>
][(<
len>
)]資料項[<
par>
其中:
/:
在下一行輸出
:
指定輸出的行號;
(<
):
指定輸出位數(長度)
指定顯示格式參數,參數有:
LEFT-JUSTIFIED資料靠左對齊
CENTERED資料靠中間對齊
RIGHT-JUSTIFIED資料靠右對齊
UNDER<
g>
正對在資料項<
的下面顯示
NO-GAP緊接著顯示,不留空格
USINGEDITMASK<
m>
使用內嵌子元顯示,如12:
20
USINGNOEDITMASK:
不使用內嵌子元
NO-ZERO:
數字前面0的部分不顯示
NO-SIGN:
不顯示正負號
DECIMALS<
d>
顯示<
位小數
EXPOENT<
e>
F(浮點數)指數的值
ROUND<
r>
四舍五入至小數點后<
位
CURRENCY<
幣別顯示
DD/MM/YY:
日期顯示格式
MM/DD/YY:
YY/MM/DD:
YY/DD/MM
MM/DD/YYYY:
DD/MM/YYYY
YYYY/MM/DD:
YYYY/DD/MM:
例如1:
WRITE:
/10(6)'
ABCDEFGHIJK'
輸出結果為:
ABCDEF
例如2:
DATA:
XTYPEIVALUE'
11:
20:
30'
A(5)TYPECVALUE'
ABCDE'
/XUSINGEDITMASK'
__:
__'
$___,___'
/YNO-GAP.
30
$112,030
ABCDEF
例如3:
LENTYPEIVALUE10,
POSTYPEIVALUE11,
TEXT(10)VALUE'
1234567890'
WRITE'
Thetext------------appearsinthetext.'
WRITEATPOS(LEN)TEXT.
WRITETO语句的基本形式
要将值(文字)或源字段内容写入目标字段,可以使用WRITETO语句:
语法
WRITE<
F1>
TO<
F2>
option>
].
DATA:
NUMBERTYPEFVALUE'
4.3'
TEXT(10),
FLOATTYPEF,
PACKTYPEPDECIMALS1.
WRITENUMBER.
WRITENUMBERTOTEXTEXPONENT2.
WRITE/TEXT.
WRITENUMBERTOFLOAT.
WRITE/FLOAT.
WRITENUMBERTOPACK.
WRITE/PACK.
MOVENUMBERTOPACK.
NAME(10)VALUE'
SOURCE'
SOURCE(10)VALUE'
Antony'
TARGET(10).
...
WRITE(NAME)TOTARGET.
TARGET.
exp:
COUNTERTYPEI.
COMPUTECOUNTER=COUNTER+1.
COUNTER=COUNTER+1.
ADD1TOCOUNTER.
在此,三条运算语句进行相同算术运算
输出屏幕上的线和空行
用下列语法,可以在输出屏幕上生成水平线:
ULINE[AT[/][<
][(<
)]].
它等同于
WRITE[AT[/][<
)]]SY-ULINE.
AT后的格式规范,与在在屏幕上定位WRITE输出(页28)中为WRITE语句说明的格式规范完全一样。
如果没有格式规范,系统则开始新的一行,并用水平线填充该行。
否则,只按指定输出水平线。
生成水平线的另一种方法,是在WRITE语句中键入恰当数量的连字符,如下所示:
)]]'
-----...'
垂直线
用下列语法,可以在输出屏幕上生成垂直线:
]]SY-VLINE.
或
]]'
|'
空行
用下列语法,可以在输出屏幕上生成空行:
SKIP[<
n>
该语句从当前行开始,在输出屏幕上生成<
个空行。
如果没有指定<
的值,就输出一个空行。
要将输出定位在屏幕的指定行上,请使用:
SKIPTOLINE<
该语句允许将输出位置向上或向下移动。
四.顯示圖示:
<
symbol-name>
ASSYMBOL.
icon-name>
ASICON.
例如:
INCLUDE<
SYMBOL>
INCLUDE<
ICON>
/'
Phonesymbol:
SYM_PHONEASSYMBOL.
AlarmIcon:
ICON_VOICE_OUTPUTASICON.
要查看系統所提供有那些符號及圖示,可選擇'
EDIT'
下的'
InsertStatement'
選擇'
Write'
接下來選擇要查看的群組,如SYMBOL或ICON,接下來按'
Display'
即可.
一.InternalTable的宣告
ABAP/4中的InternalTable是一种DataStructure,類似于其他語言中的STRUTURE,它可以由几個不同類型的欄位(field)組成,用來表示具有不同屬性的某一事物,單獨一筆資料表示某個事物,多筆資料表示具有相同屬性的多個事物.
Internaltable的定義有以下几种格式:
格式一.DATA:
BEGINOF<
internaltable>
OCCURS<
field1>
TYPE<
type1>
[<
field2>
type2>
field3>
type3>
…]
ENDOF<
f>
[WITHHEADERLINE]
DATAVECTORTYPEIOCCURS10WITHHEADERLINE.
格式二.TYPES:
workarea>
TYPES<
格式三.DATA:
INCLUDESTRUCTURE<
tablename>
ENDOF<
LIKE<
TYPESVECTORTYPEIOCCURS10.
BEGINOFLINE,
COLUMN1TYPEI,
COLUMN2TYPEI,
COLUMN3TYPEI,
ENDOFLINE.
TYPESITABTYPELINEOCCURS10.
BEGINOFDEEPLINE,
TABLE1TYPEVECTOR,
TABLE2TYPEITAB,
ENDOFDEEPLINE.
TYPESDEEPTABLETYPEDEEPLINEOCCURS10.
本示例创建与上例相同的内表数据类型(VECTOR和ITAB)。
然后创建数据类型DEEPLINE作为字段串,包含这些内表作为组件。
通过该字段串,数据类型DEEPTABLE被创建为内表。
因此该内表的元素本身就是内表。
DATATAB1TYPEITAB.
DATATAB2LIKETAB1WITHHEADERLINE.
同创建内表数据类型(页99)中所示,该示例创建数据类型ITAB作为内表。
通过使用DATA语句的TYPE参数引用ITAB,使数据对象TAB1与ITAB结构相同。
通过使用DATA语句的LIKE参数引用TAB1,使数据对象TAB2结构相同。
创建的TAB2带表头行。
因此,可以在程序中使用TAB2-COLUMN1、TAB2-COLUMN2和TAB2-COLUMN3等定位表格工作区域TAB2。
DATAFLIGHT_TABLIKESFLIGHTOCCURS10.
本示例创建数据对象FLIGHT_TAB,其结构与数据库表格SFLIGHT相同。
本示例介绍如何采用两种不同的步骤创建同一内表。
TYPESVECTOR_TYPETYPEIOCCURS10.
DATAVECTORTYPEVECTOR_TYPEWITHHEADERLINE.
在此创建一个内表数据类型VECTOR_TYPE,其行包含首先创建的基本类型I字段。
然后,通过引用VECTOR_TYPE创建数据对象VECTOR。
通过使用WITHHEADERLINE选项还创建表格工作区域VECTOR。
在这种情况下,表格工作区域包含一种类型I字段,可以通过名称VECTOR定位。
在这种情况下,通过直接在DATA语句中使用OCCURS选项创建完全一样的数据类型VECTOR。
1.TYPEStype.
2.TYPEStype(len).
3.TYPES:
BEGINOFstructype...
ENDOFstructype.
4.TYPESitabtype{TYPEtabkindOFlinetypeLIKEtabkindOFlineobj}
[WITH[UNIQUE|NON-UNIQUE]keydef][INITIALSIZEn].
5.TYPESitabtypeTYPERANGEOFtype.
TYPESitabtypeLIKERANGEOFf.
6.TYPESitabtype{TYPElinetype|LIKElineobj}OCCURSn.
APPENDLINE
格式:
APPEND<
举例一:
(使用WORKAREA)
COL1TYPEI,
COL2TYPEI,
DATAITABLIKELINEOCCURS10.
DO2TIMES.
LINE-COL1=SY-INDEX.
LINE-COL2=SY-INDEX**2.
APPENDLINETOITAB.
ENDDO.
LOOPATITABINTOLINE.
WRITE:
/LINE-COL1,LINE-COL2.
ENDLOOP.
举例二(不使用WORKAREA)
BEGINOFITABOCCURS10,
ENDOFITAB.
ITAB-COL1=SY-INDEX.
ITAB-COL2=SY-INDEX**2.
APPENDITAB.
LOOPATITAB.
/ITAB-COL1,ITAB-COL2.
COL1TYPEC,
DO3TIMES.
APPENDINITIALLINETOITAB.
ITAB-COL1=SY-INDEX.ITAB-COL2=SY-INDEX**2.
/ITAB-COL1,ITAB-COL2.
舉例三.(加入另一個Internaltable的元素)
格式:
APPENDLINESOF<
itab1>
[FROM<
n1>
][TO<
n2>
]TO<
itab2>
將<
的元素加入至<
中,可選取自<
至<
的范圍.
APPENDLINESOFITABTOJTAB.
COLLECTLINE
COLLECT指令也是將元素加入Internaltable中,与APPEND的區別是:
COLLECT指令在非數值欄位相同的情況下,將數值欄位匯總.
COLLECT[<
INTO]<
itab>
BEGINOFITABOCCURS3,
COL1(3)TYPEC,
ITAB-COL1='
ABC'
.ITAB-COL2=10.
COLLECTITAB.
XYZ'
.ITAB-COL2=20.
.ITAB-COL2=80.
此時,internaltable中放的是2筆數据,分別為:
ITAB-COL1ITAB-COL2
90
20
INSERTLINE
將元素插入在指定的internaltable位置之前.
INSERT[<
wa>
INTO][INITIALLINEINTO]<
[INDEX<
idx>
或者:
INSERTLINESOF<
]INTO<
INDEX<
即workarea,工作區中的元素.
[INITIALLINEINTO]:
插入一筆初始化的記錄.
internaltable
[INDEX<
]:
internaltable的記錄號.(新加入的元素放在此記錄前面)
LINE-COL1=SY-INDEX*10.
LINE-COL2=SY-INDEX*20.
APPENDLINEINTOITAB.
LINE-COL1=100.
LINE-COL2=200.
INSERTLINEINTOITABINDEX2."
插入在位置2之前
/SY-TABIX,LINE-COL1,LINE-COL2."
SY-TABIX為Table位置
ENDLOOP.
執行結果:
11020
2100200"
插入的元素
32040
43060
插入另一InternalTable元素
INSERTLINESOF<
的元素插入至<
中,位置在<
之前,可選取自<
的範圍
APPENDLINESOFITABTOJTABINDEX3.
將ITAB所有元素插入JTAB中,位置在第三個元素之前
讀取internaltable
格式一:
LOOPAT<
[INTO<
][FROM<
][WHERE<
conditions>
statement>
LOOPATITABINTOLINEWHERECOL1>
100.
/SY-TABIX,LINE-COL1.
僅讀取COL1>
100的元素
格式二:
READTABLE<
][INDEX<
/WITHKEY<
舉例.(格式二)
DO10TIMES.
ITAB-COL2=SY-INDEX*2.
READTABLEITABINDEX3.
(或者:
READTABLEITABWITHKEYCO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAP 基础知识 学习 整理