ABAP学习手册Word文件下载.docx
《ABAP学习手册Word文件下载.docx》由会员分享,可在线阅读,更多相关《ABAP学习手册Word文件下载.docx(51页珍藏版)》请在冰豆网上搜索。
5.1类型5.2结构5.3内表
6,数据定义
6.1直接定义:
Dataint_atypeI.
6.2参照自己定义的数据类型定义
Typechar_six(6)typec.
Datachstypechar_six.
6.3参照T-CODE:
SE11中建立的数据类型定义
6.4直接使用like
Datach4likech3.(其中ch3已经在se11中定义过)
6.5定义常数:
使用constants
基本语法:
Constants:
<
const.name>
type<
type>
value<
literal>
.
Eg:
CONSTANTS
INT
TYPEIVALUE99.
7,Form……Endform
在一个Program中,处于Form和Endform之间的是Subroutines.该程序由Program引导,不能直接运行,需被调用,不能包含自定义的用户屏幕.
8,设置日期的显示分隔符,小数点字符和千位分隔符
在用户主记录里可以设置日期的显示分隔符,小数点字符和千位分隔符,在system->
userprofile->
owndata
或T-code:
su01.
9,Copy程序
Se38->
输入被Copy的程序名称->
Ctrl+F5(快捷键)
或者选择
注意:
客户的程序名称必须要以Z开头
10,两个结构体进行赋值
两个结构体进行赋值操作,如果Source与Destination的组件结构不完全相同,则用
Move-corresponding.
move-correspondingsource-datatodestination-data.
11,关键字表达式
在ABAP数据表达式中,关键字前后必须有空格。
Fault:
:
(a=b+c)true:
a=b+c.
12,如何设置关键字的大小写功能?
在utilities--settings—prettyprinter
13,ABAP的两种动态数据对象
13.1Fieldsymbols
13.2Datareference.
14,模式按钮
作用:
可以callfunction,写write等固定格式,message等功能
操作方法:
将光标放在程序中你要输入的地方,然后按pattern,输入你要输入的参数,回车即可。
工具栏图标:
PS:
旁边的prettyprinter是美化program,即是以标准的缩进和注释对program
15,子程序的定义和调用
子程序的定义和调用分别用Form/Endform和perform来实现,如果想生成子程序的代码框架,则在prefomadd处双击即可
16,内表有三种形式
16.1standardtable
16.2sortedtable
16.3hashedtable(不能进行索引查找,只能通过关键字搜索)
17,进行程序调试
其中F5单步执行
F6执行子程序的时候,不进入子程序,即跳过子程序
F7跳出目前的子程序
F8直接执行
18,Package的命名规则
package的命名规则:
1)beginwithA-SorU-X是SAPstandardobject,
2)beginwithYorZarecustomerobjects,
3)beginwithTareprivatetestpackage,
4)beginwith$arelocalpackage.
19,在窗口上直接输入/h就可以进入程序调试的模式
20,创建事务代码
20.1事务代码:
SE93
20.2,在程序中使用快捷键Ctrl+Shift+F5然后右键->
创建->
transaction
或者点图标
再右键->
21,Write
write:
a,b,c.
其中的冒号是语法链的作用。
22,定义一个结构
22.1直接定义结构
Data:
beginofstru_ztaly,
Name(10)typec,
……
Endofstru_ztaly.
22.2自己在程序里先定义结构类型,再参照类型定义结构对象。
Types:
Data:
stru_ztaly2typestru_ztaly.
22.3在se11定义一个公共的类型,再参照类型定义结构对象。
Data:
stru_italytypeityp_s_ztaly.
22.4使用like
Datastru_italy2likestru_italy(其中stru_italy是已经定义了的结构)
23,建立内表
23.1直接建内表
beginofitab_italyoccurs0,
InotypeI,
…..
Endofitab_italy.
23.2自己先建一个结构类型,再根据这个结构类型建内表
Type:
beginoftyp,
inotypeI,
endoftyp.
Data:
itab_typtypetableoftyp.
其中关键字table不能少,否则还是结构,而不是内表
23.2现在数据字典中建一个内表类型,再参照这个类型
Data:
itab_italystypezty_t_italy.
说明:
对内表的操作必须依靠结构进行。
Forexample:
appendstru_italytoItab_italy.
增加一行到内表中。
23.4内表输出必须依靠于结构,而且要循环输出
Forexample:
Loopatitab_italyintostru_ztaly.
Write:
/……….
Endloop.
23.5特殊情况
Tables:
表名A
说明:
定义了一个和A同样名称的数据结构。
AtypeBoccursN。
定义出来的一格内表
23.6data<
itab>
itabtype>
[withheaderline]
说明:
在定义的时候同时生成一个同名的结构
27,理解ABAP中的流程
注意的是程序是放在数据库中的。
28,数据元素,结构和内表的区别
用一句话说明:
就相当于数学中的点线面
29,opensql与nativesql的流程区别
使用了opensql就不必要理会后台的数据库,只要掌握了opensql就ok
使用nativesql只和后台数据库习习相关
32,ABAP模块流程
33,Append与Insert区别
Append与Insert的区别:
appendwatoitab;
insertwaintotableitab
前者不能用于Hashed表,后者不能用于Sorted表的non-unique.
34,修改内表
modifyitabfromwatransportingcol2where…..
表明根据where条件来更新COL2字段值,表类型为SORTED或HASHED.
这个是sap特有的语句,若该数据在数据库中存在,则update;
若该数据在数据库中不存在,则insert
35,删除内表语法
删除内表语法:
Deletetableitab:
fromwa,withtablekeycol=1.三个标点不可少,with后的为条件关键字.如果用条件的则为:
DELETEITABWHERE(COL>
17ANDCOL<
4).
36,事务代码SE14
主要是调整表的作用,具体功能未知
37,系统得消息类型有几种?
其中warning的类型,可以不必理会,直接回车,就可继续执行
Error的类型,在执行过程中若产生Error类型的,将阻止系统继续往下执行
38,系统参数sy-dbcnt
Sy-dbcnt表示找到的记录的序号,第一条记录为1,第二条记录为2,最后一条记录的序号也是记录数
39,报表分为四类
39.1tools--query
39.2simplelists--简单报表
39.3interactivelists--交互式报表
39.4alvgridControl--alv
40,query的特征
40.1userbasicreports
40.2eachuserdefinesownquickviewswhichonlytheycandisplay
40.3usesexistingdata
40.4noadministrative(管理的)work
40.5可以使用query进行修改
40.6interfacetointernal(EIS,ABC,ALV)andexternalapplication
40.7fewerfunctionsthaninfosetquery
40.8notransports
41,如何产生一个简单的报表?
Reportzrl003.
wa_spflilikespfli.
Selectcarridconnidcityfromcityto
intocorrespondingfieldsofwa_spfli
fromspfli.
/wa_spfli-carrid,wa_spfli-connid,
Wa_spfli-cityfrom,wa_spfli-cityto.
Endselect.
42,settingthelistformat(报表的宽度和高度)?
基本的语法:
Report<
name>
line-size<
s>
line-count<
m[(n)]>
Reportzrl003line-size50
Line-count12.
……
…
产生出来的效果图为:
43,如何在程序中显示图标?
Reportzrl003.
Include<
icon>
Include<
symbol>
*stateoffreeseats
Ifseatsfree<
1.
Writeicon_red_lightasicon.
Elseifseatsfree>
1.
Writeicon_green_lightasicon.
Endif.
*stateofbookedseats
Ifwa_sflight-seatocc<
10.
Writesym_left_handassymbol
44,设置固定列和显示最后一页的语法
具体代码为:
*&
---------------------------------------------------------------------*
ReportSAPBC405_FOLD_SCROLL_BOUNDARY*
*
REPORTsapbc405_fold_scroll_boundaryLINE-SIZE130
NOSTANDARDPAGEHEADING.
*constantsforpositionsofoutputs
CONSTANTS:
line_sizeTYPEiVALUE130,
lsb_columnTYPEiVALUE10.
DATA:
wa_sflightLIKEsflight.
sum_maxTYPEi,
sum_occTYPEi.
SELECT-OPTIONS:
so_carFORwa_sflight-carrid.
TOP-OF-PAGE.
*Settingofleftscrollboundary
SETLEFTSCROLL-BOUNDARYCOLUMNlsb_column."
设置固定列
ULINE.
FORMATCOLORCOL_HEADING.”格式化表头
WRITE:
'
Flight'
(h01),'
Date'
(h02),
Price'
(h03),'
Plane'
(h04),
Maximal'
(h05),'
Occupied'
(h06),
paymentsum'
(h07).
START-OF-SELECTION.
SELECT*FROMsflightINTOwa_sflight
WHEREcarridINso_car
ORDERBYPRIMARYKEY.
ONCHANGEOFwa_sflight-carrid.“当wa_sflight-carrid发生改变的时候,产生新的一页
NEW-PAGE.
ENDON.
FORMATCOLORCOL_KEYINTENSIFIEDON.“格式化,并显示加强
wa_sflight-carrid,
wa_sflight-connid.
FORMATCOLORCOL_NORMALINTENSIFIEDOFF.
wa_sflight-fldate,
wa_sflight-priceCURRENCYwa_sflight-currency,
wa_sflight-currency,
wa_sflight-planetype,
wa_sflight-seatsmax,
wa_sflight-seatsocc,
wa_sflight-paymentsumcurrencywa_sflight-currency,
ATline_sizespace.
sum_max=sum_max+wa_sflight-seatsmax.
sum_occ=sum_occ+wa_sflight-seatsocc.
ENDSELECT.
END-OF-SELECTION.”结束才触发的事件
NEW-PAGENO-HEADINGNO-TITLE.“产生新页没有头也没有标题
SCROLLLISTTOPAGEsy-pagno.”使页面显示到最后一页
FORMATCOLORCOL_TOTAL.
'
Totals'
(001),sum_maxUNDERwa_sflight-seatsmax,
sum_occUNDERwa_sflight-seatsocc,ATline_sizespace.
45,系统参数
sy-vline作用是画竖线
Sy-pagno显示页数
Sy-colno显示列数
Sy-linno显示行数
46,使用checkboxandradiobutton
REPORTSAPBC405_SSCD_CHECKBOX_RADIOB.
INCLUDEBC405_SSCD_CHECKBOX_RADIOBTOP.
INCLUDE<
ICON>
PARAMETERS:
PA_CARRLIKESFLIGHT-CARRIDDEFAULT'
AA'
PA_NAMEASCHECKBOXDEFAULT'
X'
PA_CURRASCHECKBOXDEFAULT'
PA_LIM_1RADIOBUTTONGROUPLIM,"
define一个group组
PA_LIM_2RADIOBUTTONGROUPLIM,
PA_LIM_3RADIOBUTTONGROUPLIM.
CONSTANTSMARKVALUE'
*Check,ifanycheckboxhasbeenselected
IFPA_NAMEEQMARK.
SELECTSINGLECARRNAMEFROMSCARRINTO(SCARR-CARRNAME)
WHERECARRID=PA_CARR.
/TEXT-001,SCARR-CARRNAME.
ENDIF.
IFPA_CURREQMARK.
SELECTSINGLECURRCODEFROMSCARRINTO(SCARR-CURRCODE)
/TEXT-002,SCARR-CURRCODE.
*Check,whichradiobuttonhasbeenselected
CASEMARK.
WHENPA_LIM_1.
SELECTCARRIDCONNIDFLDATEPRICECURRENCYFROMSFLIGHT
INTOTABLEITAB_SFLIGHT
WHERECARRID=PA_CARR
ANDPRICELE'
500'
PERFORMDATA_OUTPUT.
WHENPA_LIM_2.
ANDPRICEBETWEEN'
AND'
1000'
WHENPA_LIM_3.
1500'
ENDCASE.
IFSY-SUBRC<
>
0.
/ICON_RED_LIGHTASICON,TEXT-003.
*---------------------------------------------------------------------*
*FORMDATA_OUTPUT*
FORMDATA_OUTPUT.
LOOPATITAB_SFLIGHTINTOWA_SFLIGHT.
/WA_SFLIGHT-CARRID,
WA_SFLIGHT-CONNID,
WA_SFLIGHT-FLDATE,
(8)WA_SFLIGHT-PRICECURRENCYWA_SFLIGHT-CURRENCY,
WA_SFLIGHT-CURRENCY.
ENDLOOP.
ENDFORM.
**************************************************************************************
*----------------------------------------------------------------------*
*INCLUDEBC405_SSCD_CHECKBOX_RADIOBTOP
TYPES:
BEGINOFLINE_TYPE_SFLIGHT,
CARRIDLIKESCARR-CARRID,
CONNIDLIKESPFLI-CONNID,
FLDATELIKESFLIGHT-FLDATE,
PRICELIKESFLIGHT-PRICE,
CURRENCYLIKESFLIGHT-CURRENCY,
ENDOFLINE_TYPE_SFLIGHT.
WA_SFLIGHTTYPELINE_TYPE_SFLIGHT.
ITAB_SFLIGHTTYPETABLEOFLINE_TYPE_SFLIGHT.
TABLES:
SCARR.
47,如何使用select-options
47.1屏幕输出一个参数为其主要的语法为:
select-options<
seltab>
for<
f>
Default<
value>
value1>
to<
value2>
Memoryid<
pid>
Lowercase
Obligatory“必输
No-ext