ABAP基本语法学习关键语句的写法.docx
《ABAP基本语法学习关键语句的写法.docx》由会员分享,可在线阅读,更多相关《ABAP基本语法学习关键语句的写法.docx(13页珍藏版)》请在冰豆网上搜索。
ABAP基本语法学习关键语句的写法
ABAP基本语法学习关键语句的写法
内表建立过程:
1、声明一个结构体
2、用声明好的结构体作为工作区,声明一个内表
内表名称likestandardtableof结构体名称,
内表名称likesortedtableof结构体名称,
内表名称likeharshedtableof结构体名称。
后面可以用到with选项来进行关键字的声明。
基本语法如下:
DATAitab{{TYPEtabkindOF[REFTO]type}
|{LIKEtabkindOFdobj}}
[WITHkey][INITIALSIZEn]
[WITHHEADERLINE]
[VALUEISINITIAL]
[READ-ONLY].
DATArtab{TYPERANGEOFtype}|{LIKERANGEOFdobj}
[INITIALSIZEn]
[WITHHEADERLINE]
[VALUEISINITIAL]
[READ-ONLY].
此语句可以定义一个范围表,在操作数据库时可以用来作为判断数据选择的条件描述。
3、向内表中插入数据,插入数据可以用insert数据into内表语句或者是append数据to内表语句。
可以插入整个内表到另一内表insertlinesof内表名称intotable另一内表名称。
亦可以进行累加插入:
collect数据into内表名称。
相同的数据进行累积。
4、修改内表数据,利用modify关键字,modify内表名称from数据(用结构体表示的数据)。
可以修改多行,modify内表名称from数据transporting关键字where条件。
5、读内表数据的几种操作方法:
用Include来构造一个结构体
INCLUDE{{TYPEstruc_type}|{STRUCTUREstruc}}
[ASname[RENAMINGWITHSUFFIXsuffix]].
TYPES:
BEGINOFt_day,
workTYPEcLENGTH8,
freeTYPEcLENGTH16,
ENDOFt_day.
DATABEGINOFweek.
INCLUDETYPEt_dayASmonday RENAMINGWITHSUFFIX_mon.
INCLUDETYPEt_dayAStuesday RENAMINGWITHSUFFIX_tue.
INCLUDETYPEt_dayASwednesdayRENAMINGWITHSUFFIX_wed.
DATAENDOFweek.
可以用两种方式来访问结构体的内容:
1、直接用结构体的名称来访问:
week-monday-work,week-monday-free,week-tuesday-work
2、用重新命名的后缀名字来访问:
week-work_mon,week-free_mon,week-work_tue
类对象的定义方式:
CLASSclassDEFINITION [class_options].
[PUBLICSECTION.
[components]]
[PROTECTEDSECTION.
[components]]
[PRIVATESECTION.
[components]]
ENDCLASS.
类对象的实现方式:
CLASSclassIMPLEMENTATION.
...
METHOD...
...
ENDMETHOD.
...
ENDCLASS.
类对象的继承:
CLASSclassDEFINITION
LOCALFRIENDSclass1class2...
intf1 intf2 ...
CLASSclassDEFINITION{{DEFERRED[PUBLIC]}|LOAD}.
[PUBLIC]
[INHERITINGFROMsuperclass]
[ABSTRACT]
[FINAL]
[CREATE{PUBLIC|PROTECTED|PRIVATE}]
[SHAREDMEMORYENABLED]
[FORTESTING]
[[GLOBAL]FRIENDSclass1class2...
intf1 intf2 ...].
Deferred关键字可以预先声明一个未被定义的类。
类方法声明语句:
METHODSmeth[ABSTRACT|FINAL]
[IMPORTINGparameters[PREFERREDPARAMETERp]]
[EXPORTINGparameters]
[CHANGINGparameters]
[{RAISING|EXCEPTIONS}exc1exc2...].
METHODSmeth[ABSTRACT|FINAL]
[IMPORTINGparameters[PREFERREDPARAMETERp]]
RETURNINGVALUE(r)typing
[{RAISING|EXCEPTIONS}exc1exc2...].
重载函数的声明方法:
METHODSmeth[FINAL]REDEFINITION。
访问上级类的函数:
super->meth()。
大小写字母转换语句:
TRANSLATEtypTOLOWERCASE.
在ABARP程序中各种报错情况需要的例外类:
CX_ROOT
|
|--CX_STATIC_CHECK
|
|--CX_DYNAMIC_CHECK
| |
| |--CX_SY_ARITHMETIC_ERROR
| | |
| | |--CX_SY_ZERODIVIDE
| | |
| | |--CX_SY_ARITHMETIC_OVERFLOW
| | |
| | |--CX_SY_ARG_OUT_OF_DOMAIN
| | |
| | |--CX_SY_PRECISION_LOSS
| |
| |--CX_SY_ASSIGN_ERROR
| | |
| | |--CX_SY_ASSIGN_CAST_ERROR
| | | |
| | | |--CX_SY_ASSIGN_CAST_ILLEGAL_CAST
| | | |
| | | |--CX_SY_ASSIGN_CAST_UNKNOWN_TYPE
| | |
| | |--CX_SY_ASSIGN_OUT_OF_RANGE
| |
| |--CX_SY_CODEPAGE_CONVERTER_INIT
| |
| |--CX_SY_CONVERSION_ERROR
| | |
| | |--CX_SY_CONVERSION_OVERFLOW
| | |
| | |--CX_SY_CONVERSION_NO_NUMBER
| | |
| | |--CX_SY_CONVERSION_CODEPAGE
| | |
| | |--CX_SY_CONVERSION_BASE64
| | |
| | |--CX_SY_CONV_ILLEGAL_DATE_TIME
| |
| |--CX_SY_CREATE_ERROR
| | |
| | |--CX_SY_CREATE_OBJECT_ERROR
| | |
| | |--CX_SY_CREATE_DATA_ERROR
| |
| |--CX_SY_DATA_ACCESS_ERROR
| | |
| | |--CX_SY_RANGE_OUT_OF_BOUNDS
| | |
| | |--CX_SY_TAB_RANGE_OUT_OF_BOUNDS
| | |
| | |--CX_SY_OFFSET_NOT_ALLOWED
| |
| |--CX_SY_DYN_CALL_ERROR
| | |
| | |--CX_SY_DYN_CALL_ILLEGAL_CLASS
| | |
| | |--CX_SY_DYN_CALL_ILLEGAL_FORM
| | |
| | |--CX_SY_DYN_CALL_ILLEGAL_FUNC
| | |
| | |--CX_SY_DYN_CALL_ILLEGAL_METHOD
| | |
| | |--CX_SY_DYN_CALL_PARAMETER_ERROR
| | |
| | |--CX_SY_DYN_CALL_EXCP_NOT_FOUND
| | |
| | |--CX_SY_DYN_CALL_ILLEGAL_TYPE
| | |
| | |--CX_SY_DYN_CALL_PARAM_MISSING
| | |
| | |--CX_SY_DYN_CALL_PARAM_NOT_FOUND
| |
| |--CX_SY_FILE_ACCESS_ERROR
| | |
| | |--CX_SY_FILE_AUTHORITY
| | |
| | |--CX_SY_FILE_CLOSE
| | |
| | |--CX_SY_FILE_IO
| | |
| | |--CX_SY_FILE_OPEN
| | |
| | |--CX_SY_FILE_OPEN_MODE
| | |
| | |--CX_SY_FILE_POSITION
| | |
| | |--CX_SY_FILE_TRUNCATE
| |
| |--CX_SY_FIND_INFINITE_LOOP
| |
| |--CX_SY_GEN_SOURCE_TOO_WIDE
| |
| |--CX_SY_IMPORT_MISMATCH_ERROR
| | |
| | |--CX_SY_IMPORT_FORMAT_ERROR
| |
| |--CX_SY_INVALID_REGEX
| |
| |--CX_SY_MATCHER
| | |
| | |--CX_SY_REGEX_TOO_COMPLEX
| | |
| | |--CX_SY_INVALID_REGEX
| |
| |--CX_SY_MOVE_CAST_ERROR
| |
| |--CX_SY_PROGRAM_NOT_FOUND
| |
| |--CX_SY_PROVIDE_EXCEPTION
| | |
| | |--CX_SY_PROVIDE_INTERVAL_OVERLAP
| | |
| | |--CX_SY_PROVIDE_TABLE_NOT_SORTED
| |
| |--CX_SY_READ_SRC_LINE_TOO_LONG
| |
| |--CX_SY_REF_IS_INITIAL
| |
| |--CX_SY_REPLACE_INFINITE_LOOP
| |
| |--CX_SY_SCAN_SOURCE_TOO_WIDE
| |
| |--CX_SY_SQL_ERROR
| | |
| | |--CX_SY_OPEN_SQL_ERROR
| | | |
| | | |--CX_SY_OPEN_SQL_DB
| | | |
| | | |--CX_SY_DYNAMIC_OSQL_ERROR
| | | |
| | | |--CX_SY_DYNAMIC_OSQL_SEMANTICS
| | | |
| | | |--CX_SY_DYNAMIC_OSQL_SYNTAX
| | |
| | |--CX_SY_NATIVE_SQL_ERROR
| |
| |--CX_SY_WRITE_SRC_LINE_TOO_LONG
| |
| |--CX_XSLT_EXCEPTION
| |
| |--CX_XSLT_SYSTEM_ERROR
| |
| |--CX_XSLT_ABAP_CALL_ERROR
| |
| |--CX_XSLT_DESERIALIZATION_ERROR
| |
| |--CX_XSLT_FORMAT_ERROR
| |
| |--CX_XSLT_RUNTIME_ERROR
| |
| |--CX_XSLT_SERIALIZATION_ERROR
|
|--CX_NO_CHECK
|
|--CX_SY_EXPORT_NO_SHARED_MEMORY
|
|--CX_SY_EXPORT_BUFFER_NO_MEMORY
|
|--CX_SY_GENERATE_SUBPOOL_FULL
|
|--CX_SY_LOCALIZATION_ERROR
|
|--CX_SY_NO_HANDLER
|
|--CX_SY_PIPES_NOT_SUPPORTED
|
|--CX_SY_PIPE_REOPEN
|
|--CX_SY_REMOTE_CALL_ERROR
| |
| |--CX_SY_RMC_COMM_FAILURE
| |
| |--CX_SY_RMC_INVALID_STATUS
| |
| |--CX_SY_RMC_SYSTEM_FAILURE
|
|--CX_SY_TOO_MANY_FILES
数据分配过程:
1、声明一个数据引用:
data数据引用名typerefto类型名.
2、声明字段符号:
field-symbolstypeany.
3、建立数据引用:
createdate(object)数据引用名type类型名.
4、分配引用到字段:
assign数据引用名->*to.
循环程序中语句的控制级操作语句语法结构:
LOOPATitabresult...
[ATFIRST.
...
ENDAT.]
[ATNEWcomp1.
...
ENDAT.
[ATNEWcomp2.
...
ENDAT.
[...]]]
[...]
[[[...]
ATENDOFcomp2.
...
ENDAT.]
ATENDOFcomp1.
...
ENDAT.]
[ATLAST.
...
ENDAT.]
ENDLOOP.
内表数据插入的语法格式:
INSERTline_specINTOitab_position[result].
读内表的语法:
READTABLEitab{table_key
|free_key
|index}result.
描述字段属性的语句:
DESCRIBEFIELDdobj
[TYPEtyp[COMPONENTScom]]
[LENGTHilenIN{BYTE|CHARACTER}MODE]
[DECIMALSdec]
[OUTPUT-LENGTHolen]
[HELP-IDhlp]
[EDITMASKmask].
Form打印程序中的几个主要函数:
Open_Form,Start_Form,Write_Form,Write_Form_Lines,Control_Form,Close_Form,END_FORM。
function write_form.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(ELEMENT) DEFAULT SPACE
*" VALUE(FUNCTION) DEFAULT 'SET'
*" VALUE(TYPE) DEFAULT 'BODY'
*" VALUE(WINDOW) DEFAULT 'MAIN'
*" EXPORTING
*" VALUE(PENDING_LINES)
*" EXCEPTIONS
*" ELEMENT
*" FUNCTION
*" TYPE
*" UNOPENED
*" UNSTARTED
*" WINDOW
*" BAD_PAGEFORMAT_FOR_PRINT
*" SPOOL_ERROR
*" CODEPAGE
*"----------------------------------------------------------------------
function write_form_lines.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(FUNCTION) DEFAULT 'SET'
*" VALUE(HEADER) LIKE THEAD STRUCTURE THEAD
*" VALUE(TYPE) DEFAULT 'BODY'
*" VALUE(WINDOW) DEFAULT 'MAIN'
*" EXPORTING
*" VALUE(FROMPAGE)
*" VALUE(PENDING_LINES)
*" TABLES
*" LINES STRUCTURE TLINE
*" EXCEPTIONS
*" FUNCTION
*" TYPE
*" UNOPENED
*" UNSTARTED
*" WINDOW
*" BAD_PAGEFORMAT_FOR_PRINT
*" SPOOL_ERROR
*" CODEPAGE
*"----------------------------------------------------------------------
function control_